Python学习笔记十一_函数返回多值列表生成式循环多变量入参格式声明

Posted 忻冉然

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习笔记十一_函数返回多值列表生成式循环多变量入参格式声明相关的知识,希望对你有一定的参考价值。

一、函数返回多个值

1、函数如果返回多个值的话,它会把这几个值放到一个元组里面
2、函数如果返回多个值的话,也可以用多个变量来接收

def say():
    num1 = 1
    num2 = 2
    num3 = 3
    return num1,num2,num3
print(say()) #函数如果返回多个值的话,它会把这几个值放到一个元组里面,(1, 2, 3)
res1,res2,res3 = say()#返回多个值时,可以用多个变量接收
print(res1) #1
print(res2) #2
print(res3) #3

二、列表生成式

l = [i for i in range(1,101,2)]

列表生成式,只能用在列表中

先写循环,再把循环里的i拿出来,可以做一些简单的操作(补零、转换为字符串等)

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)
new_num = [str(num).zfill(2) for num in red_num]#列表生成式
print(new_num)#[‘16‘, ‘20‘, ‘07‘, ‘18‘, ‘13‘, ‘01‘]

生成100以内的奇数

l = [i for i in range(1,101,2)]#外面是[]就是一个list
print(l)

三、生成器

l1 = (i for i in range(1,11,2))

将列表生成式中的[ ]换成( ),打印生成器本身会显示generator而不是列表

l = [i for i in range(1,11,2)]#外面是[]就是一个list
#以空间换时间,内存占用大,但是不用再计算省cpu
#list它是把所有的元素都放在内存里面的,这里就会申请5块内存空间
print(l)#[1, 3, 5, 7, 9]
l1 = (i for i in range(1,11,2))#外面是()的话,就是生成器
#generator生成器比list要节省内存,它是每次循环的时候,会根据规则计算一个元素,放到内存里面
#generator性能比list好一些,只申请一块内存空间,每次调用再去根据规则算
print(l1) #<generator object <genexpr> at 0x00000000030FE4C0>
for i in l1:
    print(i) #1 3 5 7 9

四、三元表达式

c = a if a > b else b

a = 5
b = 3
# if a > b:
#     c = a
# else:
#     c = b
c = a if a > b else b #如果a大于b的话,a = c,否则 c =b
print(c)

五、循环二维数组

l = [
    [1,2,3,4],
    [a,b,c,d]
]
for a,b,c,d in l:#二维数组里有多个元素,可以这么循环
    print(a) #1,a
    print(b) #2,b

六、声明入参格式

仅仅是为了代码易读,并不会强制转换类型

def my(name:str):#告诉别人name是str,但不会强制转化,l:list告诉别人传入是list
   print(name)
my(hello)
my([123,123])#入参是list也可以,[‘123‘, 123]

 


以上是关于Python学习笔记十一_函数返回多值列表生成式循环多变量入参格式声明的主要内容,如果未能解决你的问题,请参考以下文章

Python学习笔记__4.3章 匿名函数(简洁函数)

python学习笔记011——内置函数dir()

python学习第十一天,函数,闭包函数,函数名,可迭代对象与迭代器globas()l与locals()

Python学习笔记__3.3章 列表生成式

python学习笔记第十一节(迭代和其他)

python学习笔记第十一节(迭代和其他)