python学习笔记(七)- 递归、python内置函数、random模块

1、函数的不固定参数:

  #参数不是必填的、没有限制参数的个数、返回参数组的元组

def syz(*args):  #参数组,不限制参数个数 #‘args’参数的名字可以随便命名
    print(args)
    #username = args[0] #返回的参数放在元组中,通过下标来取值
    #pwd = args[1]
syz()
syz('niuhan','sdfsdf',122)

>>> ()
>>> ('niuhan', 'sdfsdf', 122)  #元组

 

2、关键字参数

#不限制传参的个数,但是传的格式必须是k-v的形式,传进来的参数放在字典里

    def syz(**kwargs):  #关键字参数
    print(kwargs)
syz()   #>>>{}
syz(name='',age=20)  #>>>{'name': '', 'age': 20}
syz(name='nny',age=38,add='北京',home='河南')
syz('nhy')   #报错

 

3、递归:函数自己调用自己

#少用递归,递归效率不高,递归最多循环999

def test():
    num = int(input("please enter a number:"))
    if num%2==0:  #判断是不是偶数
        return True #如果是偶数,退出程序,返回True
    print('不是偶数请重新输入!')
    return test()
print(test())  #调用test函数

4、内置函数:pyhton自带的一些函数,可以直接拿来用的

常用的内置函数有:

 1 print(all([1,2,3,4]))  #判断可迭代的对象里面的值是否都为真
 2 print(any([0,1,2,3,4])) #判断可迭代的对象里面的值是否有一个为真
 3 print(bin(10)) #十进制转二进制
 4 print(bool(None)) #把一个对象转换成布尔类型
 5 print(chr(69)) #打印数字对应的ascii
 6 print(ord('E')) #打印字符串对应的ascii码
 7 print(dir(d)) #打印传入对象的可调用方法
 8 exec('def a():print("我是a")') #执行python代码
 9 a = eval('1+2')  #也是用来执行python代码的,只能执行一些简单的代码,比如运算,[]  {}
10 print(a)
11 print(filter(lambda x:x>5,[12,3,12,2,1,2,35]))#把后面的迭代对象根据前面的方法筛选
12 print(map(lambda x:x>5,[1,2,3,4,5,6]))
13 print(max(111,12))#取最大值
14 print(min((1,2,3)))#取最小值
15 print(abs(-1))#取绝对值的
16 print(round(11.119999,3))#取几位小数
17 print(sorted([2,31,34,6,1,23,4]))#排序

较为常用的:

 1 id() #看内存地址
 2 type() #看数据类型
 3 print() #打印
 4 input() #输入
 5 list()  #转list
 6 set()# 转集合
 7 str()#转字符串
 8 dict()#转字典
 9 int()#转int
10 float()#转float类型
11 len()#取长度
12 max()
13 min()
14 dir() #帮助你的
15 sorted()#排序
16 round(11.00011,2)#保留几位小数
17 map()     
18 filter()  
19 zip()     

5、random模块的方法

 1 import random,string
 2 print(string.printable) #代表所有的 数字+字母+特殊字符
 3 
 4 print(random.randint(1,10))  #从1-10随机取一个整数
 5 print(random.uniform(1,99))  #随机取一个小数 #>>>73.5928709012442
 6 print(round(random.uniform(1,99),2)) #配合round(),表示随机取小数点后2位的小数  #>>>59.22
 7 print(random.choice([1,2,3,4])) #只能随机取1个元素(列表或字符串)
   print(random.choice('abcde'))
 9 print(random.sample(string.printable,5)) #随机取N个元素,返回的是list  #>>>['A', 'x', ',', ')', 'E']
10 
11 # random.shuffle([xxx])洗牌(打乱顺序
12 pickts = ['A','J','Q','K',2,3,4,5,6]
13 random.shuffle(pickts) #只能传list(因为字符串不能修改)
14 print(pickts)

xx

原文地址:https://www.cnblogs.com/chenhongl/p/8874855.html