Python循环语句实战练习和循环嵌套详解

简介: Python循环语句实战练习和循环嵌套详解

循环语句


循环语句可以使指定的代码块重复执行指定的次数。在Python中,常见的循环语句有while循环和for循环。


while循环


while循环的基本语法如下:

while 条件表达式:
    代码块
else:
    代码块

执行流程:

1.执行while后的条件表达式,如果结果为True,则执行循环体(代码块);


2.执行完循环体后,再次对条件表达式进行判断;


3.如果条件表达式仍然为True,则继续执行循环体,以此类推,直到条件表达式为False;


4.如果循环有对应的else语句,则执行else后的代码块。


示例代码:

以下是一个使用while循环打印数字的示例代码:

i = 0
while i < 10:
    i += 1
    print(i, "hello")
else:
    print("else中的代码块")

在上述示例中,我们首先初始化变量i为0,然后通过i < 10作为条件表达式来控制循环的执行。在循环体中,我们对i进行自增操作,并打印出当前的值和"hello"。当i达到10时,条件表达式为False,循环终止。最后,由于循环有对应的else语句,所以会执行else中的代码块,打印出"else中的代码块"。

循环可以根据条件表达式的不同而具有灵活性。通过控制条件表达式和循环体内的代码,你可以实现各种不同的循环逻辑。在编写循环时,一定要注意循环的终止条件,避免出现死循环。同时,利用循环的特性可以简化重复的操作,提高代码的效率。

实战练习


练习1:求100以内所有的奇数之和


示例代码:

# 初始化变量sum,用于存储奇数之和
sum = 0
# 使用循环遍历100以内的所有数
for i in range(1, 101):
    # 判断当前数是否为奇数
    if i % 2 != 0:
        # 是奇数,则累加到sum中
        sum += i
print("100以内所有的奇数之和为:", sum)

练习2:求100以内所有7的倍数之和,以及个数


示例代码:

# 初始化变量sum和count,用于存储倍数之和和个数
sum = 0
count = 0
# 使用循环遍历100以内的所有数
for i in range(1, 101):
    # 判断当前数是否为7的倍数
    if i % 7 == 0:
        # 是7的倍数,则累加到sum中,并增加count的值
        sum += i
        count += 1
print("100以内所有的7的倍数之和为:", sum)
print("100以内所有的7的倍数个数为:", count)

练习3:求1000以内所有的水仙花数


水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身(例如:13 + 53 + 3**3 = 153)。


求1000以内所有的水仙花数


示例代码:

# 使用循环遍历1000以内的所有数
for num in range(100, 1000):
    # 获取百位、十位、个位数字
    hundreds_digit = num // 100
    tens_digit = (num // 10) % 10
    ones_digit = num % 10
    # 判断当前数是否为水仙花数
    if num == hundreds_digit ** 3 + tens_digit ** 3 + ones_digit ** 3:
        print(num)

练习4:获取用户输入的任意数,判断其是否是质数

# 获取用户输入的数字
num = int(input("请输入一个数字:"))
# 定义变量is_prime,用于判断是否为质数,默认为True
is_prime = True
# 判断是否为质数
if num > 1:
    for i in range(2, num):
        if num % i == 0:
            is_prime = False
            break
else:
    is_prime = False
# 输出结果
if is_prime:
    print(num, "是质数")
else:
    print(num, "不是质数")

循环嵌套


练习1:打印99乘法表

# 使用两层循环实现乘法表的打印
for i in range(1, 10):  # 控制行数
    for j in range(1, i + 1):  # 控制列数
        print(j, "*", i, "=", i * j, end=" ")
    print()

练习2:求100以内所有的质数

# 初始化变量count,用于计数质数的个数
count = 0
# 使用循环遍历100以内的所有数
for num in range(2, 101):
    # 判断是否为质数
    is_prime = True
    for i in range(2, int(num ** 0.5) + 1):
        if num % i == 0:
            is_prime = False
            break
    # 如果是质数,则打印输出并增加计数器的值
    if is_prime:
        print(num, end=" ")
        count += 1
# 输出质数的个数
print("\n100以内所有的质数个数为:", count)

小游戏《唐僧大战白骨精》

1、身份选择
    ① 显示提示信息
        欢迎光临 xxx 游戏!
        请选择你的身份:
            1.xxx
            2.xxx
        请选择:x
    ② 根据用户选择来分配身份(显示不同的提示消息)  
        1.---
        2.---
        3.---  
2、游戏进行
    ① 显示玩家的基本信息(攻击力 生命值)
    ② 显示玩家可以进行的操作:
        1、练级
            - 提升玩家的攻击力和生命值
        2、打BOSS
            - 玩家对BOSS进行攻击,玩家要攻击BOSS,BOSS对玩家进行反击
            - 计算BOSS是否被玩家消灭,玩家是否被BOSS消灭
            - 游戏结束
        3、逃跑
            - 退出游戏,显示提示信息,游戏结束!

示例代码:

import random
# 显示身份选择提示信息
print("欢迎光临《唐僧大战白骨精》游戏!")
print("请选择你的身份:")
print("1. 唐僧")
print("2. 白骨精")
# 获取用户选择的身份
choice = input("请选择(输入数字序号):")
if choice == "1":
    # 唐僧身份
    print("你选择了唐僧身份,祝你成功取经!")
    # 初始化玩家的攻击力和生命值
    player_attack = 10
    player_hp = 100
    while True:
        # 显示玩家的基本信息
        print("【玩家信息】")
        print("攻击力:", player_attack)
        print("生命值:", player_hp)
        # 显示玩家可以进行的操作
        print("请选择你要进行的操作:")
        print("1. 练级")
        print("2. 打BOSS")
        print("3. 逃跑")
        # 获取用户选择的操作
        choice = input("请选择(输入数字序号):")
        if choice == "1":
            # 练级操作,提升玩家的攻击力和生命值
            player_attack += 5
            player_hp += 20
            print("恭喜你,成功练级!")
        elif choice == "2":
            # 打BOSS操作
            boss_attack = random.randint(10, 30)
            boss_hp = random.randint(100, 200)
            print("【BOSS信息】")
            print("攻击力:", boss_attack)
            print("生命值:", boss_hp)
            print("战斗开始!")
            while True:
                # 玩家攻击BOSS
                boss_hp -= player_attack
                print("你对BOSS造成了", player_attack, "点伤害")
                # 判断是否击败BOSS
                if boss_hp <= 0:
                    print("恭喜你,成功击败BOSS!")
                    break
                # BOSS反击玩家
                player_hp -= boss_attack
                print("BOSS对你造成了", boss_attack, "点伤害")
                # 判断是否被BOSS消灭
                if player_hp <= 0:
                    print("很遗憾,你被BOSS消灭了!")
                    break
        elif choice == "3":
            # 逃跑操作,退出游戏
            print("你选择了逃跑,游戏结束!")
            break
        else:
            print("无效操作,请重新选择!")
elif choice == "2":
    # 白骨精身份
    print("你选择了白骨精身份,准备吃唐僧肉!")
    # 初始化玩家的攻击力和生命值
    player_attack = 20
    player_hp = 80
    while True:
        # 显示玩家的基本信息
        print("【玩家信息】")
        print("攻击力:", player_attack)
        print("生命值:", player_hp)
        # 显示玩家可以进行的操作
        print("请选择你要进行的操作:")
        print("1. 练级")
        print("2. 打唐僧")
        print("3. 逃跑")
        # 获取用户选择的操作
        choice = input("请选择(输入数字序号):")
        if choice == "1":
            # 练级操作,提升玩家的攻击力和生命值
            player_attack += 10
            player_hp += 10
            print("恭喜你,成功练级!")
        elif choice == "2":
            # 打唐僧操作
            tangseng_attack = random.randint(5, 15)
            tangseng_hp = random.randint(50, 150)
            print("【唐僧信息】")
            print("攻击力:", tangseng_attack)
            print("生命值:", tangseng_hp)
            print("战斗开始!")
            while True:
                # 玩家攻击唐僧
                tangseng_hp -= player_attack
                print("你对唐僧造成了", player_attack, "点伤害")
                # 判断是否击败唐僧
                if tangseng_hp <= 0:
                    print("恭喜你,成功吃到了唐僧肉!")
                    break
                # 唐僧反击玩家
                player_hp -= tangseng_attack
                print("唐僧对你造成了", tangseng_attack, "点伤害")
                # 判断是否被唐僧消灭
                if player_hp <= 0:
                    print("很遗憾,你被唐僧打败了!")
                    break
        elif choice == "3":
            # 逃跑操作,退出游戏
            print("你选择了逃跑,游戏结束!")
            break
        else:
            print("无效操作,请重新选择!")
else:
    print("无效选择,游戏结束!")

总结


循环语句是编程中一种重要的控制结构,可以使指定的代码块重复执行多次。在Python中,常见的循环语句有while循环和for循环。


while循环

while循环的基本语法为:

while 条件表达式:
    代码块
else:
    代码块

执行流程:

1.执行while后的条件表达式,如果结果为True,则执行循环体(代码块);


2.执行完循环体后,再次对条件表达式进行判断;


3.如果条件表达式仍然为True,则继续执行循环体,以此类推,直到条件表达式为False;


4.如果循环有对应的else语句,则执行else后的代码块。


循环的注意事项:

 ▪避免死循环:确保在循环内部有能够改变条件表达式的代码,否则会陷入无限循环。


 ▪初始化和更新表达式:需要在循环外部先初始化变量,并在循环体内部对变量进行更新操     作,以控制循环的执行。


利用break语句:可以在循环内部使用break语句来提前终止循环。


示例代码:

i = 0
while i < 10:
    i += 1
    print(i, "hello")
else:
    print("else中的代码块")

在上述示例中,我们使用while循环打印数字1到10,并在每个数字后面输出"hello"。当i达到10时,条件表达式i < 10为False,循环终止。最后,由于循环有对应的else语句,所以会执行else中的代码块。

while循环的灵活性:可以通过控制条件表达式和循环体内的代码,实现不同的循环逻辑。利用循环的特性可以简化重复的操作,提高代码的效率。

循环是编程中常用的控制结构之一,掌握循环语句的使用可以让代码更加灵活和高效。但也要注意循环的终止条件和避免死循环的情况,以确保程序的正确执行。

相关文章
|
2月前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
410 7
|
2月前
|
数据采集 Web App开发 数据安全/隐私保护
实战:Python爬虫如何模拟登录与维持会话状态
实战:Python爬虫如何模拟登录与维持会话状态
|
2月前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
342 1
|
2月前
|
传感器 运维 前端开发
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
本文解析异常(anomaly)与新颖性(novelty)检测的本质差异,结合distfit库演示基于概率密度拟合的单变量无监督异常检测方法,涵盖全局、上下文与集体离群值识别,助力构建高可解释性模型。
352 10
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
|
2月前
|
数据采集 监控 数据库
Python异步编程实战:爬虫案例
🌟 蒋星熠Jaxonic,代码为舟的星际旅人。从回调地狱到async/await协程天堂,亲历Python异步编程演进。分享高性能爬虫、数据库异步操作、限流监控等实战经验,助你驾驭并发,在二进制星河中谱写极客诗篇。
Python异步编程实战:爬虫案例
|
2月前
|
Cloud Native 算法 API
Python API接口实战指南:从入门到精通
🌟蒋星熠Jaxonic,技术宇宙的星际旅人。深耕API开发,以Python为舟,探索RESTful、GraphQL等接口奥秘。擅长requests、aiohttp实战,专注性能优化与架构设计,用代码连接万物,谱写极客诗篇。
Python API接口实战指南:从入门到精通
|
2月前
|
存储 分布式计算 测试技术
Python学习之旅:从基础到实战第三章
总体来说,第三章是Python学习路程中的一个重要里程碑,它不仅加深了对基础概念的理解,还引入了更多高级特性,为后续的深入学习和实际应用打下坚实的基础。通过这一章的学习,读者应该能够更好地理解Python编程的核心概念,并准备好应对更复杂的编程挑战。
132 12
|
2月前
|
存储 数据采集 监控
Python文件操作全攻略:从基础到高级实战
本文系统讲解Python文件操作核心技巧,涵盖基础读写、指针控制、异常处理及大文件分块处理等实战场景。结合日志分析、CSV清洗等案例,助你高效掌握文本与二进制文件处理,提升程序健壮性与开发效率。(238字)
367 1
|
2月前
|
存储 Java 调度
Python定时任务实战:APScheduler从入门到精通
APScheduler是Python强大的定时任务框架,通过触发器、执行器、任务存储和调度器四大组件,灵活实现各类周期性任务。支持内存、数据库、Redis等持久化存储,适用于Web集成、数据抓取、邮件发送等场景,解决传统sleep循环的诸多缺陷,助力构建稳定可靠的自动化系统。(238字)
617 1
|
2月前
|
Java 调度 数据库
Python threading模块:多线程编程的实战指南
本文深入讲解Python多线程编程,涵盖threading模块的核心用法:线程创建、生命周期、同步机制(锁、信号量、条件变量)、线程通信(队列)、守护线程与线程池应用。结合实战案例,如多线程下载器,帮助开发者提升程序并发性能,适用于I/O密集型任务处理。
328 0

推荐镜像

更多