Python基础教程:条件判断与循环控制详解

半杯拿铁
半杯拿铁
发布时间:2026-10-12| 1人浏览过
原创

本文系统讲解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条件语句或循环语句相关内容,请搜索本站历史文章或继续浏览后续文章。感谢大家的支持!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。