1、函数返回多个值
1)函数返回多个值,它会把这几个值放到一个元组里
def say(): num1=1 num2=2 num3=3 return num1,num2,num3 res=say() print(res)
输出结果为:
(1, 2, 3)
2)函数返回多个值,可以用多个变量接收,则每个变量与返回值对应
def say(): num1=1 num2=2 num3=3 return num1,num2,num3 res1,res2,res3=say() print(res1) print(res2) print(res3)
输出结果为:
1 2 3
2、匿名函数
这个函数功能很简单,只用一次
res=lambda x:x+1 # 冒号后面的是函数体,冒号前面的是返回值 print(res(1))
3、列表生成式
1)从1-36中随机取6个数,不够两位补零,可以用以下方式写:
import random red_num=random.sample(range(1,34),6) new_num=[] for num in red_num: tmp = str(num).zfill(2) new_num.append(tmp) print(new_num)
但该方式不够简洁,以下这种方式,一句代码相当于上面四行代码,更简洁
import random red_num=random.sample(range(1,34),6) new_num=[str(num).zfill(2)for num in red_num]#列表生成式 print(new_num)
2)取100以内的奇数
l=[i for i in range(1,101,2)]#列表生成式每隔两位取一次值 print(l)
输出结果是一个列表,包含所有100以内的奇数,list是把所有元素都放到内存里,以空间换时间
下面这种方式,外面是小括号,不是一个list,是一个生成器,生成器比list节省内存,每次循环的时候根据规则计算一个元素,放到内存里
l=(i for i in range(1,101,2)) for i in range(50): print(l.__next__())
4、三元表达式
将a,b中值大的一个赋给c
a=5 b=4 if a>b: c=a else: c=b print(c)
下面还有种更简便的方式:
a=5 b=4 c= a if a>b else b print(c)
5、字典排序
字典本身是无序的,直接对字典排序是不行的,要转成其他类型。
sorted方法循环 每一次传一个元组给lambda,然后lambad取元组第一个值,根据这个值进行排序
d={'a':4,'c':2,'b':6} res=sorted(d.items(),key=lambda x:x[0]) #根据key排序 print(res) for k ,v in res: print(k,v)
6、二维数组循环每一行
l=[[1,2,3,2],[1,4,3,3],[1,6,3,4],[1,8,3,5]] for a,b,c,d in l: print(a,b,c,d) #二维数组循环每一行
7、函数定义参数类型
以下该种方式定义参数类型,并没有用
def my(name:str): #这种方式定义参数类型并没有什么用 print(name) my(['测试','23']) #传的不是str也是可以的