python基礎五
- 2019 年 10 月 6 日
- 筆記
無論是風裡,還是在雨里,我都在這裡守候著你~
匿名函數
例如:
add = lambda x : x+1
add(5) # 6
add:函數名
lambda:定義匿名函數的關鍵字
x:參數
:格式吧
x+1:返回值
當需要多個參數時:在x後加上,加參數即可。
存在的意義:有些函數很簡單,避免我們麻煩的去定義。
內置函數
常用print()#輸出,input()#交互輸入,open()#文件操作等都不說了。
len()#返回長度,dir()#查看方法,help()#查看幫助,當不知道調用該函數的參數時,可以help()一下。
callable()
查看該名字是否可以被調用。同時可以被調用也就是函數,同理可以檢測是否是函數,返回bool類型。
id()
返回該對象的記憶體地址。
hash()
可哈希就是不可變對象,不可哈希就是可變對象。返回計算出的一個哈希值。
思考:字典取值快的原因?
我們都知道字典的key值是不可變對象,也就是可哈希對象,內部可以使用hash計算key的哈希值,將value存儲在這個哈希值的內置地址,當取數據的時候,直接拿記憶體地址,這樣就很快。
exec()、eval()
將字元串轉化為python程式碼執行。exec常用於處理流程內程式碼,eval常用於處理計算類。
示例:
exec("print(name)") #name
eval("print(name)") #name
區別:exec沒有返回值,eval有返回值。
示例:
print(exec('1+2+3+4+5')) #輸出為空
print(eval('1+2+3+4+5')) #15
compile()
編譯成exec執行或eval執行,參數1:如果是在本地讀取文本就填寫該文本,參數2:如果是在文件中讀取內容,就填寫文件名,不是就填'',參數3:編譯成eval或exec執行。
示例:
code = 'print(123456789)'
com = compile(code,'','exec')
exec(com)
另:當code中存在交互類程式碼時,寫成:
code = 'name = input("輸入你的姓名:")'
com = compile(code,'','single')
exec(com)
print(name)
雖然修改成single,但是執行還是使用exec。
進位轉換
bin()#轉換為二進位。oce()轉換為八進位。
hex()轉換為十六進位。
abs()
絕對值。
divmod()
print(divmod(10,3))
#(3,1)也就是10除以3,得到的第一個值是商,第二個值為餘數。
round()
round(5.213123,3)#5.213會四捨五入。
pow()
冪運算:pow(2,3)#8,pow(2,2,3)#1,2的2次方除以3取余。
sum()
求和。mix()#求最小值。max()#求最大值。
reversed()
反轉(倒敘),返回一個新的對象變成迭代器。
all()
print([0,'123456'])#False,0返回False,一假必假。
any()
print([0,'123456'])#True,一真必真。
sorter()
排序:
list1 = [5,3,7,9,4]
list2 = sorted(list1)
print(list1)
print(list2)
結果:
#[5,3,7,9,4]
#[3,4,5,7,9]
返回一個新的列表,不改變原列表內容。
zip()
示例:
name = ['張三','小花','李四']
sex = ['男','女','男']
生成一一對應的關係,zip返回的是一個迭代器。我們需要for循環取出。
for iter in zip(name,sex):
print(i)
結果:
#('張三','男')
#('小花','女')
#('李四','男')
如果兩個數量不統一,以少的為準。如果我的name多了一個王五,而沒有sex,就不會輸出王五。
另:zip中的參數還可以是多個。
filter()
def test(x):
return x % 2 ==1
ret = filter(test,[1,2,3,4])
# ret 同樣返回的是迭代器。
for i in ret:
print(i)
結果:1,3
也就是將[1,2,3,4]中的值一個一個帶入到test中。但返回的值依然是[1,2,3,4]中的值,起到篩選的作用。
map()
示例:
ret = map(abs,[1,2,3,-4,-5])
for i in ret:
print(i)
結果:1,2,3,4,5
另:filter和map很相似,區別就是filter並沒有改變原來的值,返回的是原本就有的值,map是修改了原來的值。
