-
要調用一個函數,需要知道函數的名稱和參數,比如求絕對值的函數 abs(),它接收一個參數。
對于abs()函數,abs就是函數的名稱,括號()內,就是函數的參數,當函數沒有參數時,默認就是一個空括號。abs接收一個參數,這個參數就是需要求絕對值的數,這個參數可以是整數,也可以是浮點數abs(-100)?#?==>?100 abs(20)?#?==>?20 abs(-3.14159)?#?==>?3.14159
需要注意的是,傳遞的參數數量一定要和函數要求的一致,不然將會引起錯誤,比如,如果在abs()函數中傳入兩個參數。
abs(1,?2) #?報錯 Traceback?(most?recent?call?last): ??File?"<stdin>",?line?1,?in?<module> TypeError:?abs()?takes?exactly?one?argument?(2?given)
在錯誤提示中,清晰的說明了abs()函數只接收一個參數,但是卻傳遞了兩個參數,所以引起了錯誤。
其次,如果傳入的參數數量是對的,但是參數的類型不能被函數所接受,也會引起錯誤,比如:求絕對值的函數abs(),只有數字才擁有絕對值,如果傳遞一個字符串進去,將會引起錯誤。abs('3.1415926') #?報錯 Traceback?(most?recent?call?last): ??File?"<stdin>",?line?1,?in?<module> TypeError:?bad?operand?type?for?abs():?'str'
這里錯誤提示說,str類型是錯誤的參數類型。
除了abs()函數,還有很多常見的函數,比如cmp()函數,可以比較兩個數的大小,這個時候,cmp()函數就接收兩個參數。
對于cmp(x, y),如果x < y 返回 -1,如果x == y 函數返回0,如果x > y函數返回1。cmp(1,?2)?#?==>?-1 cmp(2,?1)?#?==>?1 cmp(3,?3)?#?==>?0
函數abs()和函數cmp()書上沒有
查看全部 -
1,不會報錯的刪除方法discard()#書上沒有
2,
集合的子集和超集
set提供方法判斷兩個set之間的關系,比如兩個集合set,判斷其中一個set是否為另外一個set的子集或者超集。
s1?=?set([1,?2,?3,?4,?5]) s2?=?set([1,?2,?3,?4,?5,?6,?7,?8,?9]) #?判斷s1是否為s2的子集 s1.issubset(s2)?#?==>?True #?判斷s2是否為s1的超集 s2.issuperset(s1)?#?==>?True
判斷集合是否重合
有時候需要判斷兩個集合是否有重合的地方,如果使用傳統的方法,需要使用for循環一個一個的去判斷,非常麻煩,set提供
isdisjoint()
方法,可以快速判斷兩個集合是否有重合,如果有重合,返回False,否則返回True。s1?=?set([1,?2,?3,?4,?5]) s2?=?set([1,?2,?3,?4,?5,?6,?7,?8,?9]) s1.isdisjoint(s2)?#?==>?False,因為有重復元素1、2、3、4、5
書上沒有
查看全部 -
update()括號中是列表
查看全部 -
d = {'Alice': [50, 61, 66], 'Bob': [80, 61, 66], 'Candy': [88, 75, 90]}
for key, value in d.items():
? ? print(key, value)
? ? for score in value:
? ? ? ? print(key, score)
#for key, value in d.items():? ?把字典里面的項迭代出來
查看全部 -
d['Alice'].extend([50, 61, 66])
#注意上面的中括號
查看全部 -
d = {
? ? 'Alice': 45,
? ? 'Bob': 60,
? ? 'Candy': 75,
? ? 'David': 86,
? ? 'Ellena': 49
}
name1 = ['Alice', 'Bob','Candy',' Mimi', 'David']
for name in name1:
? ? if name in d.keys():
? ? ? ? print(d.get(name))
? ? else:
? ? ? ? print(d.get(name))
#?if name in?d.keys():可以改成>>>if name in d
效果相同
查看全部 -
T?=?(1,?'CH',?[3,?4]) L?=?T[2] print(L)?#?==>?[3,?4] #?嘗試替換L中的元素 L[1]?=?40 print(L)?#?==>?[3,?40] print(T)?#?==>?(1,?'CH',?[3,?40])
#書上沒有的方法
查看全部 -
要表示字符串
Bob said "I'm OK"
由于'
和"
會引起歧義,因此,我們在它前面插入一個\
表示這是一個普通字符,不代表字符串的起始,因此,這個字符串又可以表示為'Bob?said?\"I\'m?OK\".'
注意:轉義字符?
\
不計入字符串的內容中常用的轉義字符還有:
\n
表示換行\t
?表示一個制表符\\
表示?\
?字符本身查看全部 -
與運算
只有兩個布爾值都為 True 時,計算結果才為 True。
或運算
只要有一個布爾值為 True,計算結果就是 True。
非運算
把True變為False,或者把False變為True
在Python中,布爾類型還可以與其他數據類型(字符串,數字等)做 and、or和not運算,因為Python把0、空字符串和None看成False,其他數值和非空字符串都看成True
not計算的優先級是高于and和or的
a?=?True print(a?and?0?or?99)?#?==>?99
True and 0
計算結果是0?
繼續計算0 or 99
計算結果是 99?短路計算
在計算
a and b
時,如果 a 是 False,則根據與運算法則,整個結果必定為 False,因此返回 a;如果 a 是 True,則整個計算結果必定取決與 b,因此返回 b。在計算
a or b
時,如果 a 是 True,則根據或運算法則,整個計算結果必定為 True,因此返回 a;如果 a 是 False,則整個計算結果必定取決于 b,因此返回 b。
查看全部 -
四則運算? + - * /
取模運算? %? 即取余數
地板除??
得到的結果會忽略純小數的部分,得到整數的部分,地板除使用//進行
小數點位數
round(),例如round(a,2) 即數據a保留兩位小數
查看全部 -
合法的變量名
變量名由大小寫英文字母、數字和下劃線
_
組成變量不能用數字開頭
變量盡量不要和Python關鍵字重合(比如前面學習過的:and、or、not,否則可能導致Python原有關鍵字發揮不出作用)
定義變量
定義變量的方式很簡單,通過
變量名
?=?數據
,即可定義一個變量。查看全部 -
Python基礎數據類型:整數,浮點數,字符串,布爾值,空值。
二進制0b ,十六進制0x ,
浮點數即小數 ,10用e替代
字符串對應生活中的就是非數字類型的內容,比如一個句子,一段話
一個布爾值只有True、False兩種值,要么是True,要么是False
布爾值可以用
and
、or
和not
運算(注意and
,or
,not
都是Python語言本身的關鍵字)。空值是Python里一個特殊的值,用
None
表示。注意,None和0是不一樣的,None不能理解為0
查看全部 -
字符串前面加r,可以避免整段字符串里需要過多轉義的麻煩,查看全部
-
round,2 保留小數點后兩位查看全部
-
round, 2 保留小數點后兩位查看全部
舉報