day 5 while 循环
while循环
1.语法
while 条件语句:
循环体
2.执行过程
先判断条件是否成立,成立就执行循环体,执行完循环体再判断条件是否成立,成立就再执行循环体
直到判断条件时条件不成立则结束循环
3.两个极端
a. 死循环 — 条件一直成立如while 10>5 ; while True
b. 无法循环 ---- 一开始条件就不成立则不会执行循环体
4. for 与 while 的选择
遇到循环问题的时候优先考虑for循环,for 循环解决不了的问题才使用while循环。
for循环无法解决的问题:
1)死循环
while True:
循环体
2)循环次数不确定(循环次数不由程序员决定,而是由使用这个程序用户的行为决定)
例如:提示输入密码,直到输入正确为止
# 循环次数不确定
# 提示程序用户输入密码,直到输入的密码与系统保存的密码一致为止
pwd = '123456'
p = input('请输入密码:')
while p != pwd:
p = input('密码错误,请重新输入密码:')
continue 和 break
continue 和 break 都是循环关键字,只能在循环体之中使用
1. continue — 结束一次循环
执行循环体的时候如果遇到了continue, 当次循环结束,直接进入下一次循环
for i in range(5):
print('======')
continue
print('------')
for i in range(1, 11):
if i % 2 == 1:
continue
print(i)
2. break — 结束整个循环
执行循环体的时候如果遇到了break,整个循环直接结束(循环体剩下的不再执行,也不会再进入下一次循环)
3. break的应用 — 当while遇到break
while True:
需要重复执行的操作
if 循环结束的条件:
break
提示程序用户输入密码,直到输入的密码与系统保存的密码一致为止
pwd =s '123456'
p = input('请输入密码:')
while True:
p = input('密码错误,请重新输入密码:')
if p == pwd:
break
练习:猜数游戏
from random import randint
num = randint(0, 100) # 产生0到100的随机数
print('猜数游戏现在开始!')
num1 = int(input('请输入您猜的数字:'))
n = 0
while True:
n += 1
if num1 < num:
if n > 4:
print('又猜错了')
print('很遗憾,5次机会已用完!游戏结束。')
break
num1 = int(input('猜小了,请再次输入您猜的数字:'))
elif num1 > num:
if n > 4:
print('很遗憾,5次机会已用完!游戏结束。')
break
num1 = int(input('猜大了,请再次输入您猜的数字:'))
else:
print('恭喜你,猜对啦!')
break
循环else
1. 完整的循环结构
1) 完整的for循环 --- 经常使用
for 变量 in 序列:
循环体
else:
代码段
2) 完整的while循环
while 条件语句:
循环体
else:
代码段
2. 循环else的使用
1) else的存在并不影响原来循环的使用
2) else后面的代码段会在循环正常结束后执行,若是循环因遇到break而结束则不会执行else后面的代码段。
循环正常结束:for 把序列中数据取完而导致循环结束
while 因条件语句不成立而导致循环结束
3)使用案例
for i in range(5):
print('hello world!')
else:
print(100)
# pass
# 不知道写什么的时候可以写pass
for i in range(5):
print('hello world!')
if i == 2:
break # 遇到break结束循环,故不会执行else后的print(100)
else:
print(100)
# 判断字符串是否是纯字母字符串
str1 = 'hgskwinh'
for i in str1:
if not ('a' <= i <= 'z' or 'A' <= i <= 'Z'):
print(str1, '不是纯字母字符串')
break
else:
print(str1, '是纯字母字符串')