def func1(seq1): dic={ 'num':0, 'string':0, 'space':0, 'other':0 } for line in seq1: if line.isdigit(): dic['num'] += 1 elif line.isalpha(): dic['stri ...
1、寫函數,計算傳入字元串中【數字】、【字母】、【空格] 以及 【其他】的個數
def func1(seq1): dic={ 'num':0, 'string':0, 'space':0, 'other':0 } for line in seq1: if line.isdigit(): dic['num'] += 1 elif line.isalpha(): dic['string'] += 1 elif line.isspace(): dic['space'] += 1 else: dic['other'] += 1 return dic print(func1('dfasfdaslfkjl 12312 @@!#!@#'))View Code
2、寫函數,判斷用戶傳入的對象(字元串、列表、元組)長度是否大於5。
def func2(seq2): if len(seq2) > 5: return True return False print(func2([1,2,3,4,5,6]))View Code
3、寫函數,檢查傳入列表的長度,如果大於2,那麼僅保留前兩個長度的內容,並將新內容返回給調用者。
def func3(seq3): if len(seq3) > 2: return seq3[:2] print(func3([1,2,3,4,5]))View Code
4、寫函數,檢查獲取傳入列表或元組對象的所有奇數位索引對應的元素,並將其作為新列表返回給調用者。
def func4(seq4): return seq4[::2] print(func4([1,2,3,4,5,6]))View Code
5、寫函數,檢查字典的每一個value的長度,如果大於2,那麼僅保留前兩個長度的內容,並將新內容返回給調用者。
dic = {"k1": "v1v1", "k2": [11,22,33,44]}
PS:字典中的value只能是字元串或列表
def func(seq): for k,v in seq.items(): if len(v) > 2: seq[k] = v[:2] return seq dic = {"k1": "v1v1", "k2": [11, 22, 33, 44]} print(func(dic))View Code
6.寫出上述代碼的執行流程
x=1 def f1(): def f2(): print(x) return f2 x=100 def f3(func): x=2 func() x=10000 f3(f1())View Code
調用f3,先執行f1返回f2記憶體地址當參數傳給f3,執行f3,調用f2,輸出x 因為調用時x=10000 所以輸出10000
比較: a = [1,2,3] 和 b = [(1),(2),(3) ] 以及 b = [(1,),(2,),(3,) ] 的區別?
a和b值相等,id不同 c是元組 a = [1,2,3] b = [(1),(2),(3) ] print(a == b) print(a is b)View Code
如何實現[‘1’,’2’,’3’]變成[1,2,3] ?
l = ['1','2','3'] new_l = [] for line in l: new_l.append(int(line)) print(new_l) l = ['1','2','3'] for k,v in enumerate(l): l[k] = int(v) print(l)View Code
如何實現 “1,2,3” 變成 [‘1’,’2’,’3’] ?
str1 = '1,2,3' l = str1.split(',') print(l)View Code