作業一: 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 4 #先定義一個函數 5 def func(args): 6 #定義一個計算數字的變數 7 digit_num = 0 8 # 定義一個計算字母的變數 9 al_num = 0 10 # ...
作業一:
需求:寫函數,計算傳入字元串中的【數字】、【字母】、【空格】以及【其他】的個數
1 #!/usr/bin/env python
2 # -*- coding:utf-8 -*-
3
4 #先定義一個函數
5 def func(args):
6 #定義一個計算數字的變數
7 digit_num = 0
8 # 定義一個計算字母的變數
9 al_num = 0
10 # 定義一個計算空格的變數
11 spance_num = 0
12 # 定義一個計算其他的變數
13 other_num = 0
14
15 for i in args:
16 if i.isdigit(): #判斷是否為數字
17 digit_num += 1
18 elif i.isalpha(): #判斷是否為字母
19 al_num += 1
20 elif i.isspace(): #判斷是否為空格
21 spance_num += 1
22 else: #判斷是否為其他
23 other_num += 1
24 return ("您輸入的字元串中包含" + str(digit_num) + "個數字,包含" + str(al_num) + "個字母,包含" + str(spance_num) +"個空格,包含" + str(other_num) + "個其他字元。")
25 #提示用戶輸入字元串信息
26 enter = input("請您輸入字元串信息進行計算:")
27 ret = func(enter)
28 print(ret)
View Code
作業二:
需求:寫函數,判斷用戶傳入的對象(字元串、列表、元組)長度是否大於5.
1 #!/usr/bin/env python
2 # -*- coding:utf-8 -*-
3
4 def obj_len(arg):
5 #在這裡先對用戶輸入的內容進行判斷,是否為字元串、列表、元組
6 if isinstance(arg, str) or isinstance(arg, list) or isinstance(arg, tuple):
7 if len(arg) > 5:
8 return"您輸入的內容長度大於5."
9 else:
10 return"您輸入的內容長度小於5."
11 return"您輸入的內容不符合要求。"
12
13 enter = "kljdsah" #輸入字元串
14 #enter = [11,22,33] 輸入列表
15 #enter = (897,658,9879) 輸入元組
16 #enter = 123 輸入的數字,輸出結果為您輸入的內容不符合要求。
17 ret = obj_len(enter)
18 print(ret)
View Code
作業三:
需求:寫函數,檢查用戶傳入的對象(字元串、列表、元組)的每一個元素是否包含有空內容。
1 def has_space(args):
2 for i in args:
3 if i.isspace():
4 return "您輸入的內容中包含有空格!"
5 break
6 return args
7 result = str(input("請輸入檢查的內容:"))
8 ret = has_space(result)
9 print(ret)
View Code
作業四:
需求:寫函數,檢查傳入列表的長度,如果大於2,那麼僅保留前兩個長度的內容,並將新內容返回給調用者
1 def function4(args):
2 if len(args) > 2:
3 return args[0:2] #採用切片的方式給用戶返回前兩個長度的內容
4 return args
5 result = [11,22,33]
6 ret = function4(result)
7 print(ret)
View Code
函數參數傳遞引用特例一:在ptyhon中,對於列表、字典以及集合,在傳遞函數參數時,實際是傳遞一個引用
1 def func1(args):
2 args.append(123)
3
4 li = [11,22]
5 func1(li)
6 print(li) ==》結果為[11,22,123]
7 #說明:在記憶體中,已存在li = args = [11,22],函數中,args.append(123)
8 #所以最終的返回的結果為[11,22,123]
View Code
函數參數傳遞引用特例一:一旦遇到等於號,就會在記憶體中新創建並重新指向這個內容
1 def func2(args):
2 args = 123
3
4 li = [11,22,33,44]
5 func2(li)
6 print(li) #結果為[11,22,33,44],不會受到args的影響,因為args已重新指向新的內容
View Code
作業五:
需求:寫函數,檢查獲取傳入列表或元組對象的所有奇數位索引對應的元素,並將其作為新列表返回給調用者
1 def function5(args):
2 ret = [] #定義一個新的列表
3 for i in range(len(args)):
4 if i % 2 == 1:
5 ret.append(args[i])
6 else:
7 pass
8 return ret
9
10 li = [11,22,33,44,55]
11 result = function5(li)
12 print(result)
View Code
作業六:
需求:寫函數,檢查傳入字典的每一個value的長度,如果大於2, 那麼僅保留前兩個長度的內容,並將其作為新內容返回給調用者
方式一:創建一個變數,把遍歷符合條件的內容返回
1 def function6(args):
2 ret = {}
3 for key, value in args.items():
4 if len(value) > 2:
5 ret[key] = value[0:2]
6 else:
7 ret[key] = value
8 return ret
9
10 dic = {"k1":"vdah", "k2": [11,22,33], "k3": "qw"}
11
12 result = function6(dic)
13 print(result)
View Code
方式二:在原來的字典中修改值,並返回給調用者
1 def function(args):
2 for key, value in args.items():
3 if len(value) > 2:
4 args[key] = value[0:2]
5 else:
6 args[key] = value
7
8 dic = {"k1":"vdah", "k2": [11,22,33], "k3": "qw"}
9 function(dic)
10 print(dic) #列印原來的字典
View Code