Cris 复习Python日记(三):循环语句
一、while 循环
# while 循环
# while 循环:
# 语法:while 条件表达式:
# 代码块
# while True 将会造成死循环!
# 循环的三个要点:1.变量初始化表达式;2.变量条件表达式;3.变量更新表达式
# 创建一个执行10次的循环
# num = 0
# while num<10:
# num +=1
# print(num)
# 练习1:
# 求100以内所有的奇数之和
# num = 0
# result = 0
# while num < 100:
# num += 1
# if num % 2 != 0:
# result += num
# print(result) # 52500
# 练习2:
# 求100以内所有7的倍数之和,以及个数
num = 7
result = 0
count = 0
while num < 100:
result += num
count += 1
num += 7
print(f'100以内所有7的倍数之和为:{result},个数是:{count}')
# 练习3:
# 水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身(例如:1**3 + 5**3 + 3**3 = 153)。
# 求1000以内所有的水仙花数
# 注意,和java 不同的是,Python具有 // 整除,以及/ 得到都是浮点数
num = 100
while num < 1000:
if ((num % 10)**3) + ((num // 100)**3) + ((num % 100 // 10)**3) == num:
print(num)
num += 1
# 练习4:
# 获取用户输入的任意数,判断其是否是质数。质数是只能被1和它自身整除的数,1不是质数也不是合数。
# 开放得到的结果都是小数
# print(17**0.5) # 4.1232312
num = int(input('请输入任意大于1的整数'))
if num <= 1:
print('输入错误!')
else:
count = 1
flag = True
while count <= int(num**0.5):
count += 1
if num % count == 0:
print(num, '不是质数')
flag = False
break
if flag:
print(num, '是质数')
二、嵌套循环
from time import *
# 循环的嵌套
# 练习1:
# 打印99乘法表
# 1*1=1
# 1*2=2 2*2=4
# 1*3=3 2*3=6 3*3=9
# ... 9*9=81
hang = 1
while hang <= 9:
num = 1
while num <= hang:
# 可以通过命令参数(end)的形式对print()函数的结束符进行设置
print(f'{num}*{hang}={num * hang}', end=' ')
num += 1
print()
hang += 1
# 练习2:
# 求1000以内所有的质数
def isPrime(num):
if num <= 1:
print('输入错误!')
else:
count = 1
while count <= int(num**0.5):
count += 1
if num % count == 0:
return False
return True
start = time()
num = 2
while num < 10000:
if isPrime(num):
print(num, '是质数')
num += 1
print('程序执行了', time() - start, "秒")
# break 用于立即退出循环语句(包括else);continue 用于跳过当次循环
# break 和 continue 默认只对最近的循环起作用
# pass 用于代码占位,没有任何实际意义
i = 1
while i < 5:
if i == 3:
break
print(i)
i += 1
# else: # break 影响到这条else 语句不执行
# print('james')
print("cris") # 这条普通语句执行
三、小 case:唐僧和白骨精的爱情故事
要求如下:
1、身份选择
① 显示提示信息
欢迎光临 xxx 游戏!
请选择你的身份:
1.xxx
2.xxx
请选择:x
② 根据用户选择来分配身份(显示不同的提示消息)
1.---
2.---
3.---
2、游戏进行
① 显示玩家的基本信息(攻击力 生命值)
② 显示玩家可以进行的操作:
1、练级
- 提升玩家的攻击力和生命值
2、打BOSS
- 玩家对BOSS进行攻击,玩家要攻击BOSS,BOSS对玩家进行反击
- 计算BOSS是否被玩家消灭,玩家是否被BOSS消灭
- 游戏结束
3、逃跑
- 退出游戏,显示提示信息,游戏结束!
代码如下:
print('===================欢迎来到游戏:《唐僧大战白骨精》=================')
print('''请选择你的身份:
1. 唐僧
2. 白骨精''')
num = int(input('请选择(1-2):'))
if num == 1:
print('你已经选择了唐僧,开始游戏吧!')
elif num == 2:
print('卧槽~要不要脸,还选白骨精,不行不行,还是给你分配个唐僧')
else:
print('没有眼睛?乱选还是给你分配个唐僧')
life = 2
attack = 2
monster_life = 10
monster_attack = 6
print(f'你的身份现在是唐僧,你的生命值是:{life},你的攻击力是:{attack}')
print('-------------------------------')
def printMessage():
return int(input('''请选择你要做的操作:
1. 练级
2. 打Boss
3. 逃跑
请选择:'''))
while True:
num = printMessage()
if num == 1:
life += 2
attack += 2
print(f'恭喜你,唐僧!升级了!你当前的生命值是:{life},你的攻击力是:{attack}')
elif num == 2:
monster_life -= attack
if monster_life <= 0:
print('唐僧真牛逼,砍死了白骨精!game over')
break
life -= monster_attack
if life <= 0:
print('白骨精干死了唐僧,game over')
break
print(f'当前唐僧还剩下{life} 点血,白骨精还剩下{monster_life} 点血,激战正酣~')
elif num == 3:
print('退出游戏成功')
break
else:
print('请重新输入')
四、for循环
for 循环普遍和后面的Python 数据结构搭配使用,等到后面整理到Python 数据结构再写~