条件语句、循环语句
1. 条件语句
- 在判断语句的结果不是不是 0 或者 False 或者 ‘’ 或者 None 时,那么都视为真
- Python 语言中,使用 缩进 来判断代码的层级
- 可以使用
input() 函数来接收键盘输入。
1.1 if…else 语句
使用 if...else 进行判断,满足条件则执行 if 下的代码,不满足则执行 else 下的代码
Python 中,if 语句的基本形式如下:
1 2 3 4
| if 判断条件: 执行语句... else: 执行语句...
|
if 语句的判断条件可以用>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)来表示其关系
1 2 3 4 5 6
| results = 59
if results >= 60: print('恭喜你,考试通过') else: print('很遗憾,考试未通过')
|
非零数值、非空字符串、非空 list 等,判断为 True,否则为 False
1 2 3
| num = 6 if num: print('num 不为空')
|
1.2 if…elif 语句多个判断条件
如果需要多次判断时,则可以使用 if...elif...else 语句
elif 的数量可以是 无限 的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
def registerUser(): phone = input('请输入你的手机号码(不超过11个字符):') if len(phone) > 11: print('输入错误!手机号码超过了11个字符') elif not phone.isdigit() : print('输入错误!手机号码必须全是数字') elif not phone.startswith('1') : print('输入错误!手机号码必须以数字1开头') else: print('手机号码输入正确')
print('函数结束')
|
1.3 if 语句多条件同时判断
or: 表示两个条件中的任意一个满足条件,则条件成立
and: 表示两个条件都满足条件,则条件成立
1 2 3 4 5 6 7 8 9 10 11 12
| java = 86 python = 68
if java > 80 or python > 80: print('优秀') else: print('不优秀')
if (java >= 80 and java < 90) or (python >= 80 and python < 90): print('良好')
输出结果: 不优秀 良好
|
1.4 多层语句判断

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| def charge(miles, duration): if miles <= 3 : if duration <= 1: print('20 元/每公里') return miles*20 else: print('22 元/每公里') return miles*22 elif miles > 3 : if duration <= 1: print('15 元/每公里') return miles*15 else: print('18 元/每公里') return miles*18
|
2. 循环语句
2.1 for 循环
for 循环一般用于从 字符串、 列表 、 元组 等中依次取出每个元素进行操作。
1 2 3 4 5 6
| studentAges = ['小王:17', '小赵:16', '小李:17', '小孙:16', '小徐:18']
for student in studentAges: print(student)
|
2.2 while 循环
while 循环:检查一个条件表达式,只要条件表达式结果为 True ,就执行下面缩进的代码,直到条件表达式结果为 False 时,结束循环。
1 2 3 4 5 6 7 8 9
| i=1 while i<=10: if i==10: print(i) else: print(i, end=',') i+=1
|
1 2 3
| i = 1 while i <= 100: print(i)
|
2.3 for 循环和 while 循环的区别
- for 循环主要用在
迭代可迭代对象的情况。
- while 循环主要用在需要
满足一定条件为真,反复执行的情况。 (死循环+break 退出等情况。)
- 部分情况下,for 循环和 while 循环可以互换使用。
1 2 3 4 5 6 7
| for i in range(1, 10): print(i)
i = 0 while i < 10: print(i) i += 1
|
3. 循环语句控制
| 循环控制语句 |
描述 |
| break |
终止循环, 并且跳出整个循环 |
| continue |
跳出本次循环,继续下一次循环 |
| pass |
空语句,为了保持程序结构的完整性 |
3.1 break 终止循环
break :在循环中,如果遇到 break ,则该循环体立即终止
- 在函数中 ,
break 必须在 return 的上方,负责无效。
- 多个
break 必须位于不同的分支。
break 和 return 都可以让 循环结束 。
1 2 3 4 5 6 7 8 9 10 11
| def inputCommand(): while True: command = input("请输入命令:") if command == 'exit': break print(f'输入的命令是{command}')
return print('末尾语句')
inputCommand()
|
3.2 continue 跳过循环
continue :在循环中,如果满足某种条件,可以 跳过当前循环而不退出循环体,继续执行后面的循环。
1 2 3 4 5 6 7 8 9
| while True: command = input("请输入命令:") if command == 'exit': break if command == 'cont': continue print(f'输入的命令是{command}')
print('程序结束')
|
3.3 range() 函数
range 函数:根据输入的 int 数字,会生成一个可以被 for 循环遍历的列表。
range 函数参数:(开始值 = 0,结束值,步长)
当 range 函数 只有一个参数时,生成的列表从 0 开始,到 参数值 -1 结束。
1 2 3 4
| for n in range(10, 20, 5): print(n, end=',')
|
3.4 enumerate 函数
enumerate 函数:在 for 循环时可以同时返回 列表中的元素 和它的 下标 。
1 2 3 4 5 6 7 8
| studentAges = ['小王:17', '小赵:16', '小李:17', '小孙:16', '小徐:18']
for idx, student in enumerate(studentAges): print(idx,student) if int(student.split(':')[-1]) > 17: print(idx)
|
4. 列表推导式
列表推导式:将列表中的元素依次经过 相同的处理 得到新的列表。
格式:[ 循环体 for 局部变量 in 原列表]
1 2 3 4
| list1 = [1,2,3,4,5,6]
list2 = [num**3 for num in list1] print(list2)
|
5. 循环案例
多个循环可以嵌套使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| for i in range(1, 10): for j in range(1, 10): if i >= j: print(f"{j} * {i} = {i*j:2}", end=' ') else: continue print()
1*1= 1 1*2= 2 2*2= 4 1*3= 3 2*3= 6 3*3= 9 1*4= 4 2*4= 8 3*4=12 4*4=16 1*5= 5 2*5=10 3*5=15 4*5=20 5*5=25 1*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
|
6. 冒泡排序
冒泡排序:通过依次取出数据,两两进行比较后排序
1 2 3 4 5 6 7 8 9
| def dataSort(data): for i in range(len(data)): for j in range(i): if i != j and data[i] < data[j]: data[i], data[j] = data[j], data[i] return data
arr = [23, 41, 25, 54, 18, 14] print(dataSort(arr))
|