# 字典代替 switch 語句 # switch () # { # case 0 : # dayName= 'a'; # break; # case 1 : # dayName= 'b'; # break; # case 2 : # dayName= 'c'; # break; # ... # default : # dayName= 'none'; # break; # } def get_a(): return 'a' def get_b(): return 'b' def get_c(): return 'c' def get_default(): return 'none' day=2 switcher = { 0:get_a, 1:get_b, 2:get_c } day_name=switcher.get(day, get_default)() print(day_name) day_name=switcher.get(6, get_default)() print(day_name) 結果: c none
# 列表推導式(根據一個列表推到一個新的列表)list set dict 均可以被推導 a = [1,2,3,4,5,6,7,8] b = [i**3 for i in a] print(b) # [1, 8, 27, 64, 125, 216, 343, 512] b = [i**3 for i in a if i>=5] print(b) # [125, 216, 343, 512]
list =[y for x in range(5) for y in range(2)]
print(list) # [0, 1, 0, 1, 0, 1, 0, 1, 0, 1]
a = {1,2,3,4,5,6,7,8} b = {i**3 for i in a} print(b) # {64, 1, 512, 8, 343, 216, 27, 125}
students = { '一號':100, '二號':90, '三號':80 } b = [key for key, value in students.items()] print(b) # ['一號', '二號', '三號'] b = {value:key for key, value in students.items()} print(b) # {100: '一號', 90: '二號', 80: '三號'} b = (key for key, value in students.items()) print(b) # <generator object <genexpr> at 0x00000187AB059410> for x in b: print(x) # 一號 # 二號 # 三號
# None 空 不等於 空字符串 空列表 0 False a = '' b = False c = [] print(a==None) print(b==None) print(c==None) print(type(None)) # False # False # False # <class 'NoneType'> 判斷空 a=[] /func() / '' if a: if not a:
class Test(): def __len__(self): return 0 t = Test() print(bool(t)) # False class Test1(): pass t = Test1() print(bool(t)) # True
class Test(): def __len__(self): return 8 # def __bool__(self): # return 0 print(len(Test())) # 8 print(bool(Test())) # True
class Test(): def __len__(self): print('len func') return 8 def __bool__(self): print('bool func') return False print(bool(Test())) # bool func # False