函数Ⅰ(基础)
# 三目运算
基本结构
v = 前面 if 条件 else 后面 #条件为真v=前面,条件为假v=后面. #等同于 if 条件: v = '前面' else: v = '后面' #示例: # 让用户输入值,如果值是整数,则转换成整数,否则赋值为None data = input('>>>') value = int(data) if data.isdecimal() else None
1
2
3
4
5
6
7
8
9
10
11
12
13
# 函数基础
- 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。
# 1.基本结构:
def 函数名():
# 函数内容
pass #pass占位符,没有任何操作
# 函数的执行
函数名()
1
2
3
4
5
6
2
3
4
5
6
函数如果不被调用,内部代码将不被执行.
运行示例
def get_list_first_data(): v = [11,22,33,44] print(v[0]) get_list_first_data()
1
2
3
4
# 2.参数
参数分为动态参数和静态参数,又叫动参和形参.
def get_list_first_data(aaa): # aaa叫形式参数(形参) v = [11,22,33,44] print(v[aaa]) get_list_first_data(1) # 2/2/1调用函数时传递叫:实际参数(实参)
1
2
3
4小练习
# 1. 请写一个函数,函数计算列表 info = [11,22,33,44,55] 中所有元素的和。 def get_sum(): info = [11,22,33,44,55] data = 0 for item in info: data += item print(data) get_sum() # 2. 请写一个函数,函数计算列表中所有元素的和。 def get_list_sum(a1): data = 0 for item in a1: data += item print(data) get_list_sum([11,22,33]) get_list_sum([99,77,66]) v1 = [8712,123,123] get_list_sum(v1) # 3. 请写一个函数,函数将两个列表拼接起来。 def join_list(a1,a2): result = [] result.extend(a1) result.extend(a2) print(result) join_list([11,22,33],[55,66,77] # 4. 计算一个列表的长度 def my_len(arg): count = 0 for item in arg: count += 1 print(count) v = [11,22,33] my_len(v) len(v)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# 2.3 返回值return
return后续代码不会被执行
只能返回一次
如果要返回多个数据,可先把多个数据包装成一个整体。整体返回(列表、元组、字典.......)
def caculate(a, b): he = a + b cha = a - b return (he, cha)
1
2
3
4小练习
# 1. 让用户输入一段字符串,计算字符串中有多少A字符的个数。有多少个就在文件a.txt中写多少个“李邵奇”。 def get_char_count(data): sum_counter = 0 for i in data: if i == 'A': sum_counter += 1 return sum_counter def write_file(line): if len(line) == 0: return False # 函数执行过程中,一旦遇到return,则停止函数的执行。 with open('a.txt',mode='w',encoding='utf-8') as f: f.write(line) return True content = input('请输入:') counter = get_char_count(content) write_data = "李邵奇" * counter status = write_file(write_data) if status: print('写入成功') else: print('写入失败') # 2. 写函数,计算一个列表中有多少个数字,打印: 列表中有%s个数字。 # 提示:type('x') == int 判断是否是数字。 """ # 方式一: def get_list_counter1(data_list): count = 0 for item in data_list: if type(item) == int: count += 1 msg = "列表中有%s个数字" %(count,) print(msg) get_list_counter1([1,22,3,'alex',8]) # 方式二: def get_list_counter2(data_list): count = 0 for item in data_list: if type(item) == int: count += 1 return count v = get_list_counter1([1,22,3,'alex',8]) msg = "列表中有%s个数字" %(v,) print(msg) """ # 2. 写函数,计算一个列表中偶数索引位置的数据构造成另外一个列表,并返回。 """ # 方式一: def get_data_list1(arg): v = arg[::2] return v data = get_data_list1([11,22,33,44,55,66]) # 方式二: def get_data_list2(arg): v = [] for i in range(0,len(arg)): if i % 2 == 0: v.append(arg[i]) return v data = get_data_list2([11,22,33,44,55,66]) """ # 3. 读取文件,将文件的内容构造成指定格式的数据,并返回。 """ a.log文件 alex|123|18 eric|uiuf|19 ... 目标结构: a. ["alex|123|18","eric|uiuf|19"] 并返回。 b. [['alex','123','18'],['eric','uiuf','19']] c. [ {'name':'alex','pwd':'123','age':'18'}, {'name':'eric','pwd':'uiuf','age':'19'}, ] """ #c问答案: def read_log(txt):#定义函数 l=['name','age','job'] l1 = [] with open(txt, mode='r', encoding='utf-8') as f: for mes in f:#取f行,'alex|123|18','eric|uiuf|19' count=0 dic={} for v in mes.strip().split('|'):#mes.split()切割字符串['alex','123','18'] dic[l[count]]=v #取键赋值 count +=1 l1.append(dic) print(l1) read_log('a.log')
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
上次更新: 2023/04/16, 18:35:33