目录
一:什么是python流程控制
二:常用的python流程控制
1,if语句
1,if语句的使用
2,条件表达式与关系运算符
3,if-else条件语句
4,多重if语句
2,while循环
1,while循环语句
2,python的注释
3,字符串的格式化输出
4,while循环嵌套
3,for循环
1,for循环的几种方式
2,for循环示例
3,逻辑运算符
4,for循环嵌套
三:循环控制
1,break语句
2,contine语句
Python 流程控制是 Python 编程中非常重要的一部分,它用于控制程序的执行流程。Python 提供了多种流程控制语句,包括 if 语句、while 循环、for 循环、break 和 continue 语句等。这种流程控制在各个语言中都是大同小异的。常用的主要分为三种:if语句,while循环,for循环。
作用:根据条件判断执行不同的代码分支
语法结构:
if 条件1:
# 条件1成立时执行
elif 条件2:
# 条件2成立时执行
else:
# 其他情况执行
应用场景:
示例
# 温度分级系统
temperature = 28
if temperature > 35:
print("高温预警")
elif 30 < temperature <= 35:
print("注意防暑")
elif 15 <= temperature <= 30:
print("适宜温度")
else:
print("低温注意保暖")
if 语句用于根据条件执行不同的代码块。condition 是一个布尔表达式,后面一定要加冒号,这是python 语法规定。if语句后面的条件表达式是可以加括号的,但并不是必须的。使用括号可以使代码更加清晰易读,特别是在复杂的条件表达式中。然而,括号并不是语法要求,可以根据个人编码习惯进行选择。
if 语句用于判断某个条件是否成立。如果成立,则执行语句内的程序;否则跳过 if 语句, 执行后面的内容,语法格式如下:
if condition:
#代码块
else:
#代码块
示例一:编写一个代码演示如何使用if语句来判断一个数是否为正数。
num = int(input("请输入你的整数: "))
if num >0
print("输入的数字是正数") ##print前必须有空格
else:
print("输入的数字是负数")
##执行结果
请输入你的整数:10
输入的数字是正数
示例二:使用if语句来判断学生考试成绩。
print ('请输入学生考试成绩')
score = int(input()) ##将字符串转换为数字
if score >= 90:
print ('成绩优秀')
##执行结果
请输入学生考试成绩
90
成绩优秀
通过变量 score 保存键盘输入的成绩 80。当 if 语句判断当成绩大于等于 60 时,输出“合格”。在 Python3 中,input 方法默认返回为 str 类型。如果想要输出 int 类型就要改变输出类型为 int。
使用 if 语句时,后面要用到条件表示式和关系运算符,它们可以经过运算得到布尔值。如前面示例的 score>=90就是一个使用关系运算符“>=”的条件表达式,表示:如果 score 大于等于 90,则表达式的结果是 True(真);否则为 False(假)。条件表达式的语法如下。
操作数 关系运算符 操作数
常用的关系运算符如下:
关系运算符 | 作用 |
== | 等于 |
!= | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
示例:关系运算符的运算结果
if 语句还可以加上 else 关键字,根据条件判断,决定执行不同的语句块。当条件为真时,执行语句块 1。当条件为假时,执行语句块 2,语法如下:
if条件表达式
语句快1 else:
语句快2
示例:接收学生的考试成绩,使用if语句判断,如果考试成绩大于等于60分,输出”合格“ 否则输出”需要努力“
print ('请输入学生考试成绩:')
score = int(input())
if score >= 60:
print ('合格')
else:
print ('需要努力')
##执行结果
请输入学生考试成绩:
60
合格
请输入学生考试成绩:
50
需要努力
使用 if-else 语句通过条件判断使程序能够有 2 条执行路径,但有时还需要更多条路径进行处理,这时可以加入 elif 关键字处理。语法:
if 条件表达式1:
语句快1
elif条件表达式2:
语句快2
elif条件表达式3:
语句快3
......
else:
语句快
示例:接收学生的考试成绩,如果考试成绩大于等于90,则输出”优秀“,如果考试成绩小于90但大于等于80分,则输出”良好“,如果考试成绩小于70分但大于等于70分,则输出”中等“,如果成绩小于60,则输出”需要努力“。
print('请输入你的成绩: ')
score = int(input()) ##使用int将输出的类型改变为数字
if score >= 90:
print('成绩优秀')
elif score >= 80:
print('成绩良好')
elif score >= 70:
print('成绩中等')
else:
print('成绩不及格')
##执行结果
请输入你的成绩
90
成绩优秀
请输入你的成绩
80
成绩良好
请输入你的成绩
70
成绩中等
请输入你的成绩
60
成绩不及格
whlie循环语句的作用:在条件为真时重复执行代码块
while循环语句的特点:适合不确定循环次数的场景
while循环的应用示例:
# 密码验证系统
max_attempts = 3
attempts = 0
while attempts < max_attempts:
password = input("请输入密码:")
if password == "secret123":
print("登录成功!")
break
else:
attempts += 1
print(f"剩余尝试次数:{max_attempts - attempts}")
else:
print("账户已锁定")
while循环的应用场景:
编写程序时经常有一些代码块需要重复运行,Python 提供了 while 和 for 语句实现循环操作。while 语句是先判断后执行。即:先判断条件表达式是否成立,如果条件表达式的值为 True,则执行循环操作语句。如果其值为 False,则跳出循环,执行 while 语句后面的语句。
示例:当 count 值小于正整数 5 时,执行加 1 操作。当 count 小于 5 时,输出 count 的值。
count = 0
while (count < 5):
count = count + 1
print (count)
##执行结果 这种模式属于遍历显示
1
2
3
4
5
示例:输入 5 门课程的考试成绩,计算平均分并输出。
i = 1
sum = 0
while i <= 5:
print ('请输入第%d门课的考试成绩' % i)
sum = sum + int(input())
i = i+1
avg = sum / (i - 1)
print ('我的平均成绩是%d' % avg)
##执行结果
请输入第1门的考试成绩
10
我的平均成绩是10
请输入第2门的考试成绩
20
我的平均成绩是15
请输入第3门的考试成绩
30
我的平均成绩是20
请输入第4门的考试成绩
40
我的平均成绩是25
请输入第5门的考试成绩
50
我的平均成绩是30
对于编写好的代码,经过一段时间之后,有可能会忘记代码的具体作用,所以代码中要写一些注释文字,以便于日后阅读和修改代码。Python 中使用“#”开头表示注释,可以在代码中添加注释。
#输入5门课程的考试成绩,计算平均成绩
i = 1 #初始化循环计数器i
sum = 0 #初始化总成绩变量sum
while i <= 5: #重复执行5次接收考试成绩,求和的操作
print ('请输入第%d门课的考试成绩' % i)
sum = sum + int(input()) #每门课程计入总成绩
i = i+1 #计数器i增加1
avg = sum / (i - 1) #计算平均成绩
print ('我的平均成绩是%d' % avg) #输出平均成绩
字符串中的”%d”,表示插入的是一个整型数据,%s 格式化字符串,%f 格式化浮点数字字符串后面的“% i”表示获取变量 i 的值。
示例:常用替代符的使用情况
字符串中使用对应的替代符,把相应的变量插入到了相应的位置字符串中还可以使用多个替代符,对应的变量使用元组即可,示例代码如下:
在 while 语句中,可以包含另一个 while 语句,即:使用 while 语句可以实现嵌套循环。
示例:使用 while 语句分别接收 2 名学生的 5 门课程考试成绩,计算并输出每个人的平均成绩。
j = 1
prompt = '请输入学生名字:'
while j <= 2: #外层循环
sum = 0
i = 1
name = input(prompt)
while i <= 5: #内层循环
print('请输入第%d门课程的考试成绩:' % i)
sum = sum + int(input())
i = i + 1
avg = sum / (i+1)
print('%s的平均成绩是:%d' % (name,avg))
j = j+1
print ('学生成绩输入完成')
##执行结果
请输入学生名字:zhangsan
请输入第1门课程的考试成绩:
79
zhangsan的平均成绩是:23
请输入第2门课程的考试成绩:
89
zhangsan的平均成绩是:37
请输入第3门课程的考试成绩:
99
zhangsan的平均成绩是:48
请输入第4门课程的考试成绩:
50
zhangsan的平均成绩是:48
请输入第5门课程的考试成绩:
49
zhangsan的平均成绩是:47
学生成绩输入完成
请输入学生名字:1isi请
输入第1门课程的考试成绩:
10
lisi的平均成绩是:3
请输入第2门课程的考试成绩:
20
1isi的平均成绩是:7
请输入第3门课程的考试成绩:
30
1isi的平均成绩是:12
请输入第4门课程的考试成绩:
40
1isi的平均成绩是:16
请输入第5门课程的考试成绩:
50
1isi的平均成绩是:21
学生成绩输入完成
外层的 while 语句用于输入学生名字,用变量 j控制循环次数,共 2 次。
内层的 while 语句用于输入 5 门成绩,用变量 i 控制。也就是在外层循环输入一个名字后,需要输入 5 门成绩,然后输出这名学生的成绩平均值,一共可以输入2名学生。
for循环作用:遍历可迭代对象(列表、字符串、字典等)
for循环特点:明确循环次数,适合集合数据处理
for循环的应用示例:
# 数据处理示例
sales_data = [1200, 2350, 870, 4300]
# 计算季度总销售额
total = 0
for amount in sales_data:
total += amount
# 找出销售额>2000的月份
high_sales = [i+1 for i, amt in enumerate(sales_data) if amt > 2000]
print(f"季度总额:{total}万")
print(f"高销售额月份:{high_sales}")
for循环的应用场景:
for 语句是另一种用于控制循环结构的方式。Python 的 while 是使用条件判断执行循环,而 for是使用遍历元素的方式进行循环。
示例:for 循环可以对字符串进行遍历,逐个获得字符串的每个字符,
示例:for 循环可以对列表和元组进行遍历,(取值列表也可以用元组)
示例:需要循环操作相同的内容时,可以用 for 循环和 range()函数结合使用,先看看 range()
函数的作用。
接收某个学生三门课程的考试成绩,计算输出平均成绩。
subjects = ('python','mysql','linux')
sum = 0
for i in subjects:
print ('请输入%s考试成绩:' % i )
score = int(input())
sum = sum+score
avg = sum / 3
print ('三门平均成绩为%d:' % avg)
##执行结果
请输入python考试成绩:10
请输入mysql考试成绩:20
请输入linux考试成绩:30
平均成绩是20
Python 的逻辑运算符。
与 while 循环一样,for 语句也可以使用嵌套的方式。
示例:使用 for 语句分别接收 2 名学生的 5 门课程考试成绩,计算并输出每个人的平均成绩。
students = ['zhangsan','lisi']
subjects = ['python','mysql','linux']
for student in students:
total_score = 0 # 避免使用sum作为变量名
for subject in subjects:
print('请输入%s的%s考试成绩:' % (student,subject))
score = int(input())
total_score += score
# 科目循环结束后再计算平均
avg = total_score / len(subjects) # 使用科目数量动态计算
print('%s的平均成绩为%.2f' % (student, avg)) # 保留两位小数更合理
##执行结果
请输入zhangsan的python考试成绩
10
请输入zhangsan的mysql考试成绩
20
请输入zhangsan的linux考试成绩
30
zhangsan的平均成绩为20.00
请输入lisi的python考试成绩
10
请输入lisi的mysql考试成绩
20
请输入lisi的linux考试成绩
30
lisi的平均成绩为20.00
使用 while 和 for 语句执行循环操作时,有可能需要改变循环的正常执行顺序,这时就需要用循环控制语句实现,循环控制语句有 break和 continue。
在循环语句块中使用 break 语句,可以跳出整个循环,
对输出平均成绩的代码进行修改,当成绩无效时,使用break 退出循环。
students = ['zhangsan','lisi']
subjects = ['python','mysql','linux']
for student in students:
total_score = 0 # 避免使用sum作为变量名
for subject in subjects:
print('请输入%s的%s考试成绩:' % (student,subject))
score = int(input())
if(score < 0 or score > 100): ##判断用户输入的数字,大于100小于0则跳出zhangsan整个循环
print('输入的成绩有误,请重新输入') ##直接进行lisi循环
break
total_score += score
# 科目循环结束后再计算平均
avg = total_score / len(subjects) # 使用科目数量动态计算
print('%s的平均成绩为%.2f' % (student, avg)) # 保留两位小数更合理200
##执行结果
请输入zhangsan的python考试成绩
200
输入的成绩有误,请重新输入
在 Python 中,continue 语句用于跳过当前循环中的剩余代码,并继续执行下一次循环。当 continue语句被执行时,程序将立即跳转到循环的开头,而不执行 continue 语句之后的代码。它通常用于条件判断内部,用来控制循环的执行流程。
示例:分别接收 2 个学生 3 门课程('Python','MySQL','Linux')的考试成绩,要求成绩的取值范围是于等于 8 且小于等于 100;计算并输出每个学生的平均成绩:
students = ['zhangsan','lisi']
subjects = ['python','mysql','linux']
for student in students:
total_score = 0 # 避免使用sum作为变量名
for subject in subjects:
print('请输入%s的%s考试成绩:' % (student,subject))
score = int(input())
if(score < 0 or score > 100):
print('输入的成绩有误,请重新输入')
continue ##不会跳过整个循环,只跳过单个循环
total_score += score
# 科目循环结束后再计算平均
avg = total_score / len(subjects) # 使用科目数量动态计算
print('%s的平均成绩为%.2f' % (student, avg)) # 保留两位小数更合理200
##执行结果
请输入zhangsan的python考试成绩
10
请输入zahngsan的mysql考试成绩 ##可以看到只把zhangsan的mysql成绩跳过了
200
输入成绩有误,请重新输入
请输入zhangsan的linux考试成绩
30
zhangsan的平均成绩为13.33