什麼是內建函式? 就是python給你提供的. 拿來直接⽤的函式, 比如print., input等等.
字串型別**的執⾏
eval() 執⾏字串型別的**. 並返回最終結果(當執行大量資料的時候會有問題)
print(eval("2+2")) # 4exec() 執⾏字串型別的**n = 8
print(eval("2+n")) # 10
def func():
print(666)
eval("func()") # 666
exec("""compile() 將字串型別的**變異. **物件能夠通過exec語句來執⾏或者eval()進⾏求值.for i in range(10):
print(i)
""")
exec("""
def func():
print("我是周杰倫")
func()
""")
'''有返回值的字串形式的**⽤eval(). 沒有返回值的字串形式的**⽤exec(). ⼀般很少⽤到compile()引數說明:
1. resource 要執⾏的**, 動態**⽚段
2. ⽂件名, **存放的⽂件名, 當傳⼊了第⼀個引數的時候, 這個引數給空就可以了
3. 模式, 取值有3個,
1. exec: ⼀般放⼀些流程語句的時候
2. eval: resource只存放⼀個求值表示式.
3. single: resource存放的**有互動的時候. mode應為single
'''
code1 = "for i in range(10): print(i)"
c1 = compile(code1, "", mode="exec")
exec(c1)
code2 = "1+2+3"
c2 = compile(code2, "", mode="eval")
a = eval(c2)
print(a)
code3 = "name = input('請輸⼊你的名字:')"
c3 = compile(code3, "", mode="single")
exec(c3)
print(name)
為了解決一些簡單的需求而設計的一句話函式
# 計算n的n次⽅lambda表⽰的是匿名函式. 不需要⽤def來宣告, ⼀句話就可以宣告出⼀個函式def func(n):
return n**n
print(func(10))
f = lambda n: n**n
print(f(10))
語法:函式名 = lambda 引數: 返回值
注意:
1. 函式的引數可以有多個. 多個引數之間⽤逗號隔開
2. 匿名函式不管多複雜. 只能寫⼀⾏, 且邏輯結束後直接返回資料
3. 返回值和正常的函式⼀樣, 可以是任意資料型別
sorted()
語法: sorted(iterable, key=none, reverse=false)
iterable: 可迭代物件
key: 排序規則(排序函式), 在sorted內部會將可迭代物件中的每⼀個元素傳遞給這個函式的引數. 根據函式運算的結果進⾏排序
reverse: 是否是倒敘. true: 倒敘, false: 正序
lst = [1,5,3,4,6]和函式組合使⽤lst2 = sorted(lst)
print(lst) # 原列表不會改變
print(lst2) # 返回的新列表是經過排序的
dic =
print(sorted(dic)) # 如果是字典. 則返回排序過後的key
# 根據字串⻓度進⾏排序和lambda組合使用lst = ["麻花藤", "岡本次郎", "**情報局", "狐仙"]
# 計算字串⻓度
def func(s):
return len(s)
print(sorted(lst, key=func))
# 根據字串⻓度進⾏排序filter()lst = ["麻花藤", "岡本次郎", "**情報局", "狐仙"]
# 計算字串⻓度
def func(s):
return len(s)
print(sorted(lst, key=lambda s: len(s)))
lst = [,,]
# 按照年齡對學⽣資訊進⾏排序
print(sorted(lst, key=lambda e: e['age'])) # e 就是for i in sorted後面的可迭代引數中的 i
語法: filter(function. iterable)
function: ⽤來篩選的函式. 在filter中會⾃動的把iterable中的元素傳遞給function. 然後
根據function返回的true或者false來判斷是否保留此項資料
iterable: 可迭代物件
lst = [1,2,3,4,5,6,7]map()ll = filter(lambda x: x%2==0, lst) # 篩選所有的偶數
print(ll)
print(list(ll))
lst = [,
,]
fl = filter(lambda e: e['age'] > 16, lst) # 篩選年齡⼤於16的資料
print(list(fl))
語法: map(function, iterable) 可以對可迭代物件中的每⼀個元素進⾏對映. 分別取執⾏
function
計算列表中每個元素的平⽅ ,返回新列表
def func(e):改寫成lambdareturn e*e
mp = map(func, [1, 2, 3, 4, 5])
print(mp)
print(list(mp))
print(list(map(lambda x: x * x, [1, 2, 3, 4, 5])))計算兩個列表中相同位置的資料的和
# 計算兩個列表相同位置的資料的和lst1 = [1, 2, 3, 4, 5]
lst2 = [2, 4, 6, 8, 10]
print(list(map(lambda x, y: x+y, lst1, lst2)))
Python 內建函式補充匿名函式
python3 匿名函式 定義乙個函式與變數的定義非常相似,對於有名函式,必須通過變數名訪問 def func x,y,z 1 return x y z print func 1,2,3 匿名函式定義 使用 lambda 來建立匿名函式 匿名函式1.沒有名字 2 函式體自帶return 匿名函式 d...
Python中內建函式 匿名函式
1 內建函式常用方法 print bin 10 十進位制轉二進位制 print chr 10 列印數字對應的ascii print ord b 列印字串對應的ascii碼 print dir 1 列印傳入物件的可呼叫方法 print eval 執行python 只能執行簡單的,定義資料型別和運算 p...
Python 內建函式補充匿名函式
python3 匿名函式 定義乙個函式與變數的定義非常相似,對於有名函式,必須通過變數名訪問 def func x,y,z 1 return x y z print func 1,2,3 匿名函式定義 使用 lambda 來建立匿名函式 匿名函式1.沒有名字 2 函式體自帶return 匿名函式 d...