-
原來Bob的成績是60,現在變成75了,因為
d['Bob'] = 75
的緣故。
因此我們發現這個賦值語句其實有兩個功能:當key不存在時,往dict中添加對應的key: value元素。
當key存在時,會更新dict,用新的value替換原來的value。
因此,在使用賦值語句往dict中添加元素時,為了避免不必要的覆蓋問題,我們需要先判斷key是否存在,然后再做更新。
查看全部 -
value可以是任意類型的元素,可以是list、tuple等,假如Mimi近兩次成績分別是72,73,Dodo近兩次的成績分別是88,90,則可以使用賦值語句往dict中添加list元素。
d['Mimi']?=?[72,?73] d['Dodo']?=?[88,?90] print(d) d['Dodo'].append(90) print(d)
查看全部 -
d[key]
的形式,就可以得到對應的value。d?=?{ ????'Alice':?45, ????'Bob':?60, ????'Candy':?75, ????'David':?86, ????'Ellena':?49, ????'Gaven':?86 } print(d['Bob'])?#?==>?60 print(d['Alice'])?#?==>?45 dict本身提供get方法,把key當作參數傳遞給get方法,就可以獲取對應的value,當key不存在時,也不會報錯,而是返回None
print(d.get('Alice'))?#?==>?45
查看全部 -
二進制:0b ·······
十六進制:0x······
查看全部 -
如果年齡達到18歲,則是成年人,咚咚嗆的年齡是19歲,請使用if語句判斷咚咚嗆是否成年,如果成年,輸出'adult',并把咚咚嗆的年齡打印出來。
? ? ? ? ? ? ? ?
參考答案:
age?=?19 if?age?>=?18: ????print('your?age?=?{}'.format(age)) ????print('adult')
查看全部 -
小數點位數
使用Python計算小數的時候,經常需要保留小數點后若干位,可以使用round()函數來處理,這里先了解round的調用方式,使用兩個參數,第一個是需要保留小數點位數的數值,第二個是保留的位數。
num?=?10?/?3 print(num)?#?==>?3.3333333333333335 #?使用round保留兩位小數 round(num,?2)?#?==>?3.33 地板除,得到的結果會忽略純小數的部分,得到整數的部分,地板除使用//進行。10//4?#?==>?2 10//2.5?#?==>?4.0 10//3?#?==>?3
查看全部 -
template='life is {0},you need {1}.'
result=template.format('short ','python')
print(result)查看全部 -
python的dict就是專門保存這種映射的,使用dict可以方便的保存“名字”->“成績”的映射。
在dict中,每一項包含一個key和一個value,key和value是一一對應的,在解決上面的問題中,我們可以使用名字作為key,成績作為value,那么dict的定義如下:d?=?{ ????'Alice':?45, ????'Bob':?60, ????'Candy':?75, ????'David':?86, ????'Ellena':?49 } 用花括號{}表示這是一個dict,然后key和value之間使用冒號:分割,并且每一組key:value的最后,以逗號,表示這一組的結束
查看全部 -
add
update
clear
remove
discard
isdisjoint
issuperset
issubset
查看全部 -
set 數據不重復,無序
查看全部 -
函數參數是需要傳遞給函數內部的數據,在前面,我們已經簡單接觸了函數的參數,現在我們正式來認識它。
函數參數可以是任意的數據類型,只要函數內部邏輯可以處理即可。保證函數的正常運行,有時候需要對函數入參進行類型的校驗,Python提供isinstance()函數,可以判斷參數類型,它接收兩個參數,第一個是需要判斷的參數,第二個是類型。
isinstance(100,?int)?#?==>?True isinstance(100.0,?int)?#?==>?False isinstance('3.1415926',?str)?#?==>?True
查看全部 -
遞歸函數的優點是定義簡單,邏輯清晰。理論上,所有的遞歸函數都可以寫成循環的方式,但循環的邏輯不如遞歸清晰。
使用遞歸函數需要注意防止棧溢出。在計算機中,函數調用是通過棧(stack)這種數據結構實現的,每當進入一個函數調用,棧就會加一層棧幀,每當函數返回,棧就會減一層棧幀。由于棧的大小不是無限的,所以,遞歸調用的次數過多,會導致棧溢出??梢栽囋囉嬎?fact(10000)。查看全部 -
有時候函數是沒有返回結果的,這個時候從函數獲取到的是一個空值None。
除了返回None、一個值以外,函數也可以返回多個值,在函數中,如果需要返回多個值,多個值之間使用逗號分隔即可,但是需要注意順序。
也可以使用一個值存儲函數返回的多值結果。
查看全部 -
使用discard()方法刪除元素,和remove()不同的是,當元素不存在時,使用discard()并不會引發錯誤,所以使用discard()是更加高效的一個方法。
和dict一樣,set也提供了clear()方法,可以快速清除set中的所有元素。
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
et提供
isdisjoint()
方法,可以快速判斷兩個集合是否有重合,如果有重合,返回False,否則返回True。查看全部 -
set提供了remove()方法允許我們刪除set中的元素。如果remove的元素不在set里面的話,那么將會引發錯誤。因此,使用remove()方法,我們需要格外小心,需要提前判斷要remove()的元素是否在set里面,確保存在后,再進行remove。
查看全部
舉報