1.while循环
1.1while循环格式
while语句通过后面的条件选择是否执行子代码块。
条件为真:则执行代码块内的语句,执行完后会再次放回到while语句的开始处,
再次对条件进行判断,为真则继续执行子代码块之后又回到条件判断···,为假才会跳过子代码块往后执行。
* 死循环:while的条件永远为真,一直执行子代码块。设计程序的时候不要出现没有阻塞状态的死循环。
格式:
1.while 关键字
2.条件+:
3.代码块
1.2实例
1.死循环
终端不停的输出···打开计算机的控制面板可以看到计算机CPU的使用率直接起飞↑。
Created with Rapha?l 2.3.0
开始
while True
print(1)
结束
yes
no
while True:
print(1)
2.指定次数循环
循环5次停止程序的运行。
Created with Rapha?l 2.3.0
开始
x=0
判断x<5
x的值
x += 1
结束
yes
no
x = 0
while x < 5:
print(x)
x += 1
"""
0
1
2
3
4
"""
3.指定输入结束循环
获取用户输入,输入'q'结束循环。
input 会阻塞程序的运行,要求输入,不然一直阻塞。
while input("请输入执行的代码(按下q退出):") != 'q':
print('代码执行完毕!')
"""
请输入执行的代码(按下q退出):das
代码执行完毕!
请输入执行的代码(按下q退出):asd
代码执行完毕!
请输入执行的代码(按下q退出):q
Process finished with exit code 0
"""
4.模拟登入功能
*许多网站上登入账户都是给三次机会,三次机会过后被限制一段时间内不能登入。*
模拟账户登入,账户密码输入正确,打印登入成功,结束程序,
否则打印账户或密码错误,之后再次获取用户的输入,三次都出错退出程序。
Created with Rapha?l 2.3.0
开始
num=0
num < 3
用户输入
账户&密码核对
登入成功
结束
num += 1
错误信息
yes
no
yes
no
username = 'kid'
password = '123'
num = 0
while num < 3:
input_username = input('输入用户名>>>>>:')
input_password = input('输入用户密码>>>>:')
if input_username == username and input_password == password:
print('登入成功')
num = 3
else:
num += 1
print('账户或密码错误,近期还可以尝试%s次' % (3-num))
1.3break语句
关键字break,用于while代码块内,当程序执行break时,立刻跳出本层循环。
Created with Rapha?l 2.3.0
开始
num = 0
while True
print(num)
num += 1
num == 10
break
程序结束
结束框
yes
yes
no
num = 0
while True:
print(num)
num += 1
if num == 10:
break
print('程序结束')
1.4break实例
1.模拟登入功能
模拟账户登入,账户密码输入正确,打印登入成功,结束程序。
否则要求不再次输入,直到输入正确才停止。
使用break。
Created with Rapha?l 2.3.0
开始
while True
获取账户密码
账户&密码正确
登入成功
break
结束
yes
yes
no
username = 'kid'
password = '123'
while True:
input_username = input('输入用户名>>>>>:')
input_password = input('输入用户密码>>>>:')
if input_username == username and input_password == password:
print('登入成功')
break
print('请继续输入!!!')
2.2嵌套实例
模拟账户登入,要求输入用户名,判断用户是否正确
不正确打印:用户不存在,要求继续输入用户名。
存在则要求输入密码,再判断密码是否正确,正确则打印:登入成功,退出程序,
否则打印密码错误,要求继续输入密码。
Created with Rapha?l 2.3.0
开始
while True
获取账户名
账户名是否正确
获取账户密码
账户密码是否正确
break
登入成功
结束
密码不正确
用户不存在
yes
yes
no
yes
no
username = 'kid'
password = '123'
while True:
input_username = input('输入用户名>>>>>:')
if input_username == username:
while True:
input_password = input('输入用户密码>>>>:')
if input_password == password:
print('登入成功')
break
else:
print('密码错误!')
break
else:
print('用户不存在!')
2.3标志位实例
* 不能使用break
模拟账户登入,y要求输入用户名,判断用户是否正确
不正确打印:用户不存在,要求继续输入用户名。
存在则要求输入密码,再判断密码是否正确,正确则打印:登入成功,退出程序,
否则打印密码错误,要求继续输入密码。
Created with Rapha?l 2.3.0
开始
is_out = True
is_out
获取用户名
用户是否存在
获取用户密码
密码是否正确
登入成功
is_out = False
结束
密码错误
用户不存在
yes
no
yes
no
yes
no
username = 'kid'
password = '123'
is_out = True
while is_out:
input_username = input('输入用户名>>>>>:')
if input_username == username:
while is_out:
input_password = input('输入用户密码>>>>:')
if input_password == password:
print('登入成功')
is_out = False
else:
print('密码错误!')
else:
print('用户不存在!')
2.4猜数字游戏
用户可以有三次猜错的机会,错了提示 猜大了 还是 猜小了,如果过程中猜对了直接退出。
三次机会使用完后询问是否继续玩,输入q退出游戏,否则继续。
Created with Rapha?l 2.3.0
开始
num=0 | is_out = True
is_out
获取输入
判断输入值
猜对了
break
结束
比实际值 大
猜大了
num += 1
剩下3-num次机会
num == 3
q退出,否则继续
判断是否为q
is_out = False
flowchat就是垃圾操
结束
num = 0
猜小了
yes
no
yes
no
yes
no
yes
no
yes
no
age = 21
num = 0
is_out = True
while is_out:
guess_age = int(input('输出你猜的数字:'))
if guess_age == age:
print('回到正确')
break
else:
if guess_age > age:
print('猜大了')
else:
print('猜小了')
num += 1
print('猜错了,你还有%s次机会' % (3-num))
if num == 3:
if input('回复q退出否则继续') == 'q':
is_out = False
num = 0
1.5continue
关键字continue,用于while代码块内,当程序执行continue时,立刻结束本次循环。
x = 0
while x < 10:
if x == 4:
x += 1
continue
print(x)
x += 1
很多情况下可以使用方法不执行某处循环。
x = 0
while x < 10:
if x != 4:
print(x)
x += 1
1.6while+else
当while循环正确执行执行完毕后接着执行else,如果,被break语句中断循环则不执行。
标准位退出循环,continue 结束某次循环不影响。
is_out = True
x = 0
while is_out:
if x == 4:
is_out = False
print(x, end='')
x += 1
else:
print('x')
x = 0
while x < 6:
if x == 4:
x += 1
continue
print(x, end='')
x += 1
else:
print('x')
x = 0
while x < 6:
if x == 4:
x += 1
break
print(x, end='')
x += 1
else:
print('x')
"""
01234x
01235x
0123
"""
|