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

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


python 学习专栏推荐

python基础知识(0基础入门)

【python基础知识】0.print()函数
【python基础知识】1.数据类型、数据应用、数据转换
【python基础知识】2.if条件判断与条件嵌套
【python基础知识】3.input()函数
【python基础知识】4.列表和字典
【python基础知识】5.for循环和while循环
【python基础知识】6.布尔值和四种语句(break、continue、pass、else)
【python基础知识】7.实操-用Python实现“文字PK”小游戏(一)
【python基础知识】7.实操-用Python实现“文字PK”小游戏(二)
【python基础知识】8.编程思维:如何解决问题-思维篇
【python基础知识】9.函数的定义和调用
【python基础知识】10.用函数编写程序 - 实操篇
【python基础知识】10.用Python实现石头剪刀布小游戏-函数实操篇
【python基础知识】11.如何debug -常见报错原因及排查思路 - 思维篇
【python基础知识】12.类与对象(一)
【python基础知识】12.类与对象(二)
【python基础知识】13.类与对象(三)
【python基础知识】13.类与对象(四)
【python基础知识】14.图书管理系统的搭建(类与对象实操)
【python基础知识】15.编码基础知识
【python基础知识】16.文件读写基础及操作
【python基础知识】16.“古诗默写题”的python实现(文件读写和编码-实操篇)
【python基础知识】17.模块的概念以及如何引入
【python基础知识】18.实操-使用python自动群发邮件
【python基础知识】19.产品思维以及流程图的使用 - 思维篇
【python基础知识】20.“午饭吃什么”的python实现(产品思维-实操篇)
【python基础知识】21.高效偷懒的正确打开方式-毕业篇
【python文件处理】CSV文件的读取、处理、写入
【python文件处理】Excel自动处理(使用 openpyxl)
【python文件处理】-excel格式处理

猜你喜欢

转载自blog.csdn.net/qq_41308872/article/details/132732131