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]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM