python基礎知識(十三)

2021-09-12 13:28:30 字數 4326 閱讀 3897

函式

全域性變數呼叫

eg:

a = 100

def hanshu():

global a #使用全域性變數a

a = 2000

print(a) #函式不執行,全域性變數a不變

hanshu()

print(a)

結果為:100 2000

nonlocal修飾外部非全域性變數

eg:

def hanshu():

x = 100

def neibu():

nonlocal x #修飾x,說明x是外部非全域性變數

x = 1000

print(x)

neibu()

print(x)

hanshu()

結果為: 100 1000

乙個值接收多個值,返回乙個元組

多個值接收多個值,返回各個值

eg:

def qiuhe(a,b):

c = a+b

d = a*b

e = a-b

f = a/b

return c,d,e,f

s = qiuhe(8,4) #乙個值接收多個值,會返回乙個元組

print(s)

x,y,z,w=qiuhe(8,4) #多個值接收多個值,返回各個的值

print(x,y,z,w)

結果為:

如果形參沒有對應的實參,則預設輸出形參

eg:

def hanshu(name,age,***="男"):

print("我叫",name,end=" ")

print("今年",age,end=" ")

print("性別",***)

hanshu("雷克頓",34)

hanshu("莫甘娜",28,"女")

hanshu("嘉文四世",30,"男")

結果為:

函式裡的可變引數改變了,下次呼叫時會使用之前改變後的值

eg:

def hanshu(b,a=):     #a是可變引數,函式裡改變了,下次呼叫時會使用之前改變後的值

print(a,b)

hanshu(10)

hanshu(12)

結果為:

lambda(小型函式)

eg:

a=lambda x,y:x*2+y             #lambda為小型函式,簡便def函式,:前面是引數,後面是要返回的值

print(a(3,4))

# 解析

def hanshu(x,y):

return x*2+y

print(hanshu(3,4))

結果為:10 10

eg:

b = 

def geta(a):

return a["age"]

print(geta(b))

# 簡化

c = lambda a:a["age"] #:前面是引數,後面是要返回的值

x=c(b)

print(x)

結果為:18 18

列表排序(絕對值排序)

a = [1,3,-5,6]

a.sort() #a中的元素排序

print(a)

a.sort(key=abs) #呼叫ads絕對值函式,以a中元素的絕對值進行排序,且a的元素不變

print(a)

結果為:

key呼叫

eg:

def hanshu(a):

return a["age"]

a = [,,]

b = max(a,key=hanshu) #,呼叫hanshu(),以hanshu為比較物件,返回了每個元素的age值,求最大

print(b)

# 簡化

c = max(a,key=lambda x:x["age"])

print(c)

結果為:

簡化迴圈

eg:

a = [i for i in range(1,10)]

print(a)

b = [i*2 for i in range(1,50) if i%3==0]

print(b)

c = [i*3 for i in range(1,20) if i%5==0 or i%7==0]

print(c)

結果為:

二維列表的簡單迴圈

eg:

a = [[1,2,3],[4,5,6],[7,8,9]]       #二維列表

print(a[0][0])

print(a[1][2])

b = [a[0][i] for i in range(3)]

print(b)

c = [a[i][0] for i in range(3)]

print(c)

d = [a[i][i] for i in range(3)]

print(d)

e = [a[x][y] for x in range(3) for y in range(3) if x+y==2]

print(e)

f = [a[i][2-i] for i in range(3)]

print(f)

結果為:

左右置換

eg:

a = 

b =

print(b)

結果為:

zip打包

eg:

a = [1,2,3,4]

b = ["a","b","c"]

c = zip(a,b) #打包成乙個zip,內部是元組型別,兩個引數以短的決定其長度

for x in c:

print(x)

結果為:

map物件

eg:

def hanshu(x):

return x*x

a = [1,2,3,4]

d = map(hanshu,a) #map物件。對每個a中的元素進行函式加工,返回乙個新的序列

print(d)

for x in d:

print(x)

結果為:

filter過濾函式

eg:

def hanshu(a):

if a%2==0:

return true

a = [1,2,3,4,6]

b = filter(hanshu,a) #過濾資料,符合hanshu內部條件的留下

print(b)

for x in b:

print(x)

Python 基礎知識

來自 一 識別符號 1.python 中的識別符號是區分大小寫的。2.標示符以字母或下劃線開頭,可包括字母,下劃線和數字。3.以下劃線開頭的識別符號是有特殊意義的。以單下劃線開頭 foo 的代表不能直接訪問的類屬性,需通過類提供的介面進行訪問,不能用 from import 而匯入 以雙下劃線開頭的...

python基礎知識

一.隨機數的生成 都需要 import random 1.用於生成乙個指定範圍內的隨機浮點數。print random.uniform 10,20 print random.uniform 20,10 2.生成乙個指定範圍內的整數。下限必須小於上限制 print random.randint 12,...

python基礎知識

py基礎學習 1.命令列輸入python命令式,例如python test.py c m install sys.argv test.py c m install 2.切片,str 0 5 1 含頭不含尾,表示倒序切 3.unicode和encode unicode str,utf 8 將utf 8...