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格式处理

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是三个关于Python循环语句练习题,每个练习题都有相应的代码示例: 练习题1: 代码如下: num = int(input("请你输入一个数:")) i = 2 while True: if num % i == 0: print(i, end="") num /= i else: i = 1 if num == 1: break 这段代码用来找出一个数的所有公因数。通过一个while循环,不断将该数除以最小的质数,直到该数变为1为止。 练习题2: 代码如下: # 这层for循环找到该数的所有公因数 for j in range(2, 1001): k = [] # n的作用是统计列表元素个数 n = -1 s = j for i in range(1, j): if j % i == 0: n = 1 s -= i k.append(i) # s==0时,刚好满足题目条件 if s == 0: print(j) # n=len(k)-1 for i in range(n): print(str(k[i]), end="") print(' ', end="") print(k[n]) 这段代码用来找出所有在2到1000之间的数中,满足其所有公因数之和等于该数本身的数。通过两层循环的嵌套,找出所有公因数并计算它们的和。 练习题3: 代码如下: num = int(input("请输入要分解的数:")) s = str(num) i = 2 while i <= num: if num % i == 0: if i == num: s = s + str(i) else: s = s + str(i) + " * " num = num // i else: i = i + 1 print(s) 这段代码用来将一个数分解为质因数的乘积。通过一个while循环,不断将该数除以最小的质因数,并将质因数拼接成一个字符串。最后输出这个字符串。 希望以上练习题能帮助你提高对Python循环语句的理解和应用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python编程习题(循环语句)](https://blog.csdn.net/qq_64227183/article/details/124388391)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Python循环经典练习题10例](https://blog.csdn.net/zemuerqi/article/details/106435269)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大师兄6668

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值