day04-while循环和循环关键字
回顾
顺序结构
分支结构 – if
""" # 单分支结构 if 条件语句: 代码段 # 双分支结构 if 条件语句: 代码段1 else: 代码段2 # 多分支结构 if 条件语句1: 代码段1 elif 条件语句2: 代码段2 elif 条件语句3: 代码段3 ... else: 代码段N """
- 循环结构 – for, while
""" 语法: for 变量 in 序列: 循环体 range函数:创建等差数列 range(N):[0, N), 差为1 range(M, N): [M, N), 差为1 range(M, N, step): [M, N),差为step 若step为负数,M比N大 """
while循环
- while
""" 语法: while 条件语句: 循环体 说明: while - 关键字, 固定写法 条件语句 - 和if中的条件语句要求一样 : - 固定写法 循环体 - 结构上和while保持一个缩进的一条或多条语句; 逻辑上,需要重复执行的代码 执行过程:不断判断条件语句是否为True, 如果是就执行循环体,否则循环结束 """
练习1:打印1~100所有的整数
x = 1
while x <= 100:
print(x, end='\t')
x += 1
print()
练习2:打印100以内所有偶数:2, 4, 6, 8, …, 100
x = 2
while x <= 100:
print(x, end='\t')
x += 2
print()
练习3:打印:100, 98, …, 4, 2, 0
x = 100
while x >= 0:
print(x, end='\t')
x -= 2
print()
- for循环和while循环的选择
"""
for能解决的问题,while都能解决; while能解决的问题,for不一定能解决
for比while控制次数更简单
优先用for,其次while
循环次数确定 - for
循环次数不确定 - while
"""
练习1:提示用户不断输入密码,直到输入正确为止
pw = '11029'
while True:
i_pw = input('请输入密码:')
if i_pw == pw:
print('密码正确')
break
else:
print('密码错误,请重新输入')
# 方法2:
pw = '11029'
i_pw = input('请输入密码:')
while i_pw != pw:
i_pw = input('密码错误,请重新输入密码:')
print('密码正确')
练习2:猜数字游戏
from random import randit
sys_num = randint(0, 100)
count = 1
while True:
if count <= 10:
i_num = int(input('请猜数(0~100)整数:'))
if i_num > sys_num:
print('大了,再小一点')
elif i_num < sys_num:
print('小了,再大一点')
else:
print(f'恭喜你,猜数正确!!!共猜数{ count}次')
else:
print('次数用尽, 猜数失败...')
break
count += 1
# 方法2:
from random import randit
sys_num = randint(0, 100)
count = 1
i_num = int(input('请猜数(0~100)整数:'))
while i_num != sys_num and count < 10:
if i_num > sys_num:
print('大了,再小一点')
elif i_num < sys_num:
print('小了,再大一点')
i_num = int(input('请猜数(0~100)整数:'))
count += 1
if i_num == sys_num:
print(f'恭喜你,猜数正确!!!共猜数{ count}次')
else:
print('次数用尽, 猜数失败...')
循环关键字
- continue和break
""" continue和break都只能出现在循环中 continue - 每次在执行循环体的时候,如果遇到continue,该次循环直接结束,进入下一次循环 break - 在执行循环体的时候,如果遇到break,那么整个循环直接结束,不会进入下次循环 """
- continue
x = 0
while x <= 10:
print(x, end='\t')
if x % 2 == 0:
x += 3
continue
x += 1
print()
- break
for i in range(5):
if i % 2:
break
print(i)
- while循环和break
""" while True: 需要重复执行的代码 if 循环结束条件: break """
练习:输入任意一个正整数,求他是几位数?
num = int(input('请输入任意一个正整数:'))
count = 0
while num:
num //= 10
count += 1
print(count)
- else
""" 完整循环结构 1)完整for循环 for 变量 in 序列: 循环体 else: 代码段 2)完整的while循环 while 条件语句: 循环体 else: 代码段 else的作用: else的存在不会影响原来循环的执行; 如果循环是自然结束(由while后面条件不成立而结束循环), 则顺序执行else后面代码段,否则不执行else后面代码段 """
for x in range(5):
print(x, end='\t')
break
else:
print('+++++++')
练习:判断指定的数是否是素数(质数)
num = 6
if num <= 1:
print('不是素数')
elif num == 2 or num == 3:
print('素数')
else:
for i in range(int(num ** 0.5), num - 1):
if not (num % i):
print('不是素数')
break
else:
print('素数')