循环语句
循环语句可以使指定的代码块重复执行指定的次数。在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循环的灵活性:可以通过控制条件表达式和循环体内的代码,实现不同的循环逻辑。利用循环的特性可以简化重复的操作,提高代码的效率。
循环是编程中常用的控制结构之一,掌握循环语句的使用可以让代码更加灵活和高效。但也要注意循环的终止条件和避免死循环的情况,以确保程序的正确执行。