1 条件结构


1.1 if 条件结构

结构
python if 条件1: 执行语句1 ... elif 条件2: 执行语句2 ... else: 执行语句3 ...
示例
python def BMI计算(体重, 身高): bmi = 体重 / (身高 ** 2) if bmi >= 28: return '肥胖' elif bmi >= 24: return '超重' elif bmi >= 18.5: return '正常' else: return '过轻' print(BMI计算(65.5, 1.83)) python 正常
+ 条件语句要使用 比较运算符,故不要使用=,要使用==;两个条件语句之间用 逻辑运算符 连接;注意:比较运算符 的优先级高于 逻辑运算符
+ elif部分和(或)else部分可以省略。
条件语句的书写可以参照下篇
Python 布朗值(boolean)

1.2 三目运算式

三目运算
python def pmax(a, b): return a if a > b else b print(pmax(5, 9)) print('哈哈' if 1 == 1 else '嘿嘿') python 数据1 if 条件1 else 数据2 9 哈哈

2 循环结构


2.1 for 循环结构

标准结构
python # 基本写法 for 变量 in 列表/序列/字符串: 执行语句1 ... # <break> 提前退出循环 for 变量 in 列表/序列: 执行语句1 if 条件2: break ... # <continue> 提前进入下次循环 for 变量 in 列表/序列: 执行语句1 if 条件2: continue # 若满足“条件2”,则不执行“执行语句2”,跳转至下次循环 执行语句2 ... # <else> 非break退出条件下,可再循环后执行 for 变量 in 列表/序列: 执行语句1 if 条件2: break ... else: 执行语句2 ...
简单结构
python for i in range(10): print(i, end = ' ') python 0 1 2 3 4 5 6 7 8 9 # 写一行即可
for - break - else 演示
python # for - break - else 演示 def 找Peter(list1): for i in range(len(list1)): if list1[i] == 'Peter': print(f'发现Peter,他在第{i + 1}个座位上') break else: print('没找着Peter呢') 找Peter(['Peter', 'Joey', 'Bill']) 找Peter(['Joey', 'Bill', 'Janet']) python 发现Peter,他在第1个座位上 没找着Peter呢
历遍数据结构N种方式
python # 按次数循环 list1 = list() for a in range(9): list1.append(a ** 3) print(list1) # 通过元素 遍历 复杂数据类型 staffs = ['Peter', 'Joey', 'Bill'] for staff in staffs: print(staff, end = ' ') print() # 通过索引 遍历 复杂数据类型 for index in range(len(staffs)): print(f'第{index+1}位学生为\ {staffs[index]}同学') python [0, 1, 8, 27, 64, 125, 216, 343, 512] Peter Joey Bill # 适用于带索引号的 第1位学生为Peter同学 第2位学生为Joey同学 第3位学生为Bill同学
+ 条件语句要使用 比较运算符,故不要使用=,要使用==;两个条件语句之间用 逻辑运算符 连接;注意:比较运算符 的优先级高于 逻辑运算符
+ elif部分和(或)else部分可以省略。

2.2 while 循环结构

标准结构
python # 基本写法 while 条件: # 也可写成 while(条件): 执行语句 ... # <break> 提前退出循环 while 条件: 执行语句 if 条件2: break ... # <continue> 提前进入下次循环 while 条件: 执行语句 if 条件2: continue # 若满足“条件2”,则不执行“执行语句2”,跳转至下次循环 执行语句2 ... # <else> 非break退出条件下,可再循环后执行 while 条件: 执行语句 if 条件2: break ... else: 执行语句2 ...
无限循环
python # 简单结构 仅限单句 while 1: print('Peter nb') # 标准结构 while 1: print('Peter nb') python Peter nb Peter nb Peter nb Peter nb ...
break 用途
python i = 0 while (i % 33 != 0) and (i ** 3 <= 500): i += 1 print(i, end = ' ') python i = 0 while 1: i += 1 print(i, end = ' ') if i % 33 == 0: break if i ** 3 > 1000: break

2.3 用于循环的数据类型

2.3.1 range

range 类型
python # range 的数据类型 print(type(range(9))) # 从 0 到 9 共 9+1 个 int for ran in range(9 + 1): print(ran, end = ' ') print() # 从 1 到 10 共 10 个 int for ran in range(1, 10 + 1): print(ran, end = ' ') print() # 从 1 到 10 步长为 2 共 9+1/5 个 int for ran in range(1, 10 + 1, 2): print(ran, end = ' ') python <class 'range'> # 同其他数据类型中的切片 0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 10 1 3 5 7 9

2.3.1 enumerate

enumerate 类型
```python # enumerate 的数据类型 print(type(enumerate([1, 2, 3]))) # 列表中使用 lis = [‘a’, ‘b’, ‘c’, ‘d’] for index, value in enumerate(lis): print(f’{index},{value}’, end=’ ‘) print() # 元祖中使用 tup = (‘a’, ‘b’, ‘c’, ‘d’) for index, value in enumerate(tup): print(f’{index},{value}’, end=’ ‘) print() # 字典中使用 dic = {‘a’: 1, ‘b’: 2, ‘c’: 3, ‘d’: 4} for index, value in enumerate(dic): print(f’{index},{value}’, end=’ ‘) print() # 集合中使用 s = {‘a’, ‘b’, ‘c’, ‘d’} for index, value in enumerate(s): print(f’{index},{value}’, end=’ ‘) print() # 指定起点 s = {‘a’, ‘b’, ‘c’, ‘d’} for index, value in enumerate(s, 2): print(f’{index},{value}’, end=’ ‘) ``` ```python 0,a 1,b 2,c 3,d 0,a 1,b 2,c 3,d 0,a 1,b 2,c 3,d 0,d 1,a 2,c 3,b 2,d 3,a 4,c 5,b ```
应用
python count = 0 for index, line in enumerate(open(filepath,'r')): count += 1