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

时间:2023-03-08 22:04:37
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自带的一些函数,可以直接拿来用的

常用的内置函数有:

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

较为常用的:

 id() #看内存地址
type() #看数据类型
print() #打印
input() #输入
list() #转list
set()# 转集合
str()#转字符串
dict()#转字典
int()#转int
float()#转float类型
len()#取长度
max()
min()
dir() #帮助你的
sorted()#排序
round(11.00011,2)#保留几位小数
map()
filter()
zip()

5、random模块的方法

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

xx