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 |
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 |