Python基础教程:条件判断与循环控制详解
本文系统讲解Python中的条件语句与循环语句。详细解析if、elif、else分支结构的用法及嵌套逻辑,涵盖英制公制换算与成绩等级转换案例。深入介绍for-in遍历、range()函数参数及while循环机制,并通过break与continue控制流程,最后展示猜数字游戏与九九乘法表的嵌套循环实战。
1、条件语句
条件语句的核心机制在于依据特定表达式的运算结果,决定程序执行路径。具体而言,若表达式计算结果为true,则执行对应的代码块;若结果为false,则跳过该代码块或转向执行其他分支逻辑。
具体实现代码如下:
# 通过input键入用户名和密码
user = input("请输入用户名:")
passwd = input("请输入密码:")
# 将默认的用户名设置为admin 密码123456
user_d = "admin"
passwd_d = "123456"
# 通过if,elif else梳理流程
if user == user_d and passwd == passwd_d:
print("登陆成功")
elif user != user_d:
print("用户名不存在")
else:
print("密码错误")
1.1 if语句
在Python语言中,构建分支结构需依赖if、elif以及else这三个关键字。关键字是语言中具有特殊语义的保留字,例如if和else专门用于定义分支逻辑,因此严禁将其用作变量名或其他标识符。
上述代码的逻辑解析如下:
- 每个条件判断语句末尾必须跟随冒号:,用以标识后续缩进代码块为条件满足时的执行内容。
- 以登录系统为例,存在三种主要场景:1. 用户名与密码均正确,登录成功;2. 用户名不存在,登录失败;3. 密码错误,登录失败。
- 当用户名与密码完全匹配时,系统输出“登录成功”。
- 若用户名不匹配,则输出“用户名不存在”。
- 若前两种情况均不成立,则判定为密码错误。
需要特别注意的是,Python通过缩进量来界定代码块结构。在if语句中,所有属于该分支的语句必须保持相同的缩进级别。虽然缩进可以使用任意数量的空格,但业界惯例是使用4个空格作为标准缩进单位。
2、嵌套的分支语句
嵌套分支的实现示例如下:
user_key = int(input("输入1进入登陆系统,输入0退出系统"))
# 通过if,elif else梳理流程
if user_key == 1: # 只要用户输入1才能进入登陆系统界面
# 通过input键入用户名和密码
user = input("请输入用户名:")
passwd = input("请输入密码:")
# 将默认的用户名设置为admin 密码123456
user_d = "admin"
passwd_d = "123456"
if user == user_d and passwd == passwd_d:
print("登陆成功")
elif user != user_d:
print("用户名不存在")
else:
print("密码错误")
elif user_key == 0:
print("已退出")
else:
print("输入错误")
当逻辑结构变得复杂时,外层分支内部可能需要包含新的分支结构。同样地,在elif和else内部也可以构建新的分支,这被称为嵌套分支结构。然而,从代码维护角度考虑,若能用非嵌套方式实现逻辑,应尽量避免使用嵌套结构,因为过深的嵌套会显著降低代码的可读性。
3、案例练习
英制单位英寸与公制单位厘米的相互转换(换算关系:1英寸(in)=2.54厘米(cm))。
value = float(input("请输入数值:"))
unit = input("请输入单位(英寸或in和厘米或cm):")
if unit == "in" or unit == "英寸":
print("%.2f英寸=%.2f厘米" % (value, value * 2.54))
elif unit == "cm" or unit == "厘米":
print("%.2f厘米=%.2f英寸" % (value, value / 2.54))
else:
print("单位错误")
将百分制成绩转换为等级制成绩。
具体转换规则如下:若输入成绩大于等于90分,输出等级A;成绩在80分至90分之间(不含90分),输出等级B;成绩在70分至80分之间(不含80分),输出等级C;成绩在60分至70分之间(不含70分),输出等级D;低于60分,输出等级E。
score = float(input('请输入成绩: '))
if score >= 90:
grade = 'A'
elif score >= 80:
grade = 'B'
elif score >= 70:
grade = 'C'
elif score >= 60:
grade = 'D'
else:
grade = 'E'
print('对应的等级是:', grade)
4、循环语句
循环语句用于重复执行特定代码块,其执行次数由控制表达式决定。简言之,当指定表达式转换为boolean类型的值且结果为true时,循环体内的语句将反复执行;直到该表达式转换为boolean类型的值且结果为false时,循环才会终止。
4.1 for-in循环
for循环主要用于遍历序列对象,包括列表、元组、字典、集合或字符串。其基本语法结构如下所示:
for <variable> in <sequence>:
<statements>
4.2 range()函数
range()函数用于生成整数序列,常见用法包括以下几种:
range(101):可用于生成从0到100的整数序列,需注意该区间为左闭右开,即不包含101。range(1, 101):可用于生成从1到100的整数序列,其区间特性为前闭后开。range(1, 101, 2):可用于生成从1到100的奇数序列,其中参数2表示步长,即每次递增的数值。range(100, 0, -2):可用于生成从100到1的偶数序列,其中参数-2表示步长,即每次递减的数值。
4.3 实例1:计算1-100的和
# 用来存储每次计算的结果
sum = 0
for i in range(101):
sum += i # 这里等同于sum=sum+1
print(sum)
4.4 实例2:计算1-100偶数的和
# 用来存储每次计算的结果
sum = 0
for i in range(0, 101, 2):
sum += i
print(sum)
通过设置起始值为0且步长为2,循环自然跳过所有奇数。
4.5 实例3:计算1-100奇数的和
可以通过设置起始值为1且步长为2来直接跳过偶数;此外,也可以利用嵌套分支结构来实现奇数筛选,例如:
# 用来存储每次计算的结果
sum = 0
for i in range(101):
if i % 2 == 1: # 因为单数除2余1,所以只有满足这个条件,才可以进行累加计算
sum += i
print(sum)
5、while循环
while循环通过一个能产生或转换为bool值的表达式来控制迭代过程。当表达式的值为True时,循环继续执行;当表达式的值为False时,循环结束。
其语法结构如下所示:
while 判断条件: 执行语句……
利用while语句可以实现1-100范围内数值的累加计算。
# 用来存储每次计算的结果
sum = 0
# 设置开始的值
i = 1
# 设置允许循环的最大值
n = 100
while i <= n:
sum += i
i += 1
print(sum)
6、break 和 continue 语句
break 语句用于跳出for 和while 定义的循环体。如果希望从for 或while 循环中提前终止,可以使用该语句。
continue 语句用于指示Python 跳过当前循环块中剩余的语句,并直接进入下一轮循环迭代。
代码执行流程如下:

6.1 实例:猜字游戏
游戏规则:计算机随机生成1到100之间的整数,玩家输入猜测的数字,计算机反馈“大一点”、“小一点”或“猜对了”。若猜中,计算机显示猜测总次数并结束游戏;若未猜中,游戏继续;若猜测次数超过5次,则强制退出循环。
import random # 导入随机数模块
answer = random.randint(1, 100) # 生成1-100的随机数
counter = 0 # 将次数初始为0
while True:
number = int(input('请输入: '))
if number < answer:
print('大一点')
counter += 1
elif number > answer:
print('小一点')
counter += 1
else:
print('恭喜你猜对了!')
break # 如果猜对了 就跳出循环
if counter >= 5: # 次数大于5则退出这个系统
print('你的智商余额明显不足')
break
print('你总共猜了%d次' % counter)
7、循环嵌套
与分支结构类似,循环结构支持嵌套,即在循环内部可以包含另一个循环结构。
7.1 实例1:通过for...in语句打印99乘法表
for x in range(1, 10):
for y in range(1, x+1):
print("%d * %d = %d" % (y, x, x*y), end=" ")
print()
7.2 实例2:通过while语句打印99乘法表
x = 1
y = 1
while x <= 9:
y = 1 # 每执行完一次子循环,y重置为1
while y <= x:
print("%d * %d = %d" % (y, x, x*y), end=" ")
y += 1
x += 1
print() # 每一句结束一个换行
本文关于Python条件语句与循环语句的介绍到此结束。如需了解更多Python条件语句或循环语句相关内容,请搜索本站历史文章或继续浏览后续文章。感谢大家的支持!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













