文章目录
- 1.while循环
- 1.1while循环格式
- 1.2实例
- 1.死循环
- 2.指定次数循环
- 3.指定输入结束循环
- 4.模拟登入功能
- 1.3break语句
- 1.4break实例
- 1.模拟登入功能
- 2.嵌套实例
- 3.标志位实例
- 4.猜数字游戏
- 1.5continue
- 1.6while+else
- 2.练习
1.while循环
1.1while循环格式
while语句通过后面的条件选择是否执行子代码块。
条件为真:则执行代码块内的语句,执行完后会再次放回到while语句的开始处,
再次对条件进行判断,为真则继续执行子代码块之后又回到条件判断···,为假才会跳过子代码块往后执行。
* 死循环:while的条件永远为真,一直执行子代码块。设计程序的时候不要出现没有阻塞状态的死循环。
格式:
1.while 关键字
2.条件+:
3.代码块
1.2实例
1.死循环
终端不停的输出···打开计算机的控制面板可以看到计算机CPU的使用率直接起飞↑。
while True:
print(1)
2.指定次数循环
循环5次停止程序的运行。
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.模拟登入功能
*许多网站上登入账户都是给三次机会,三次机会过后被限制一段时间内不能登入。*
模拟账户登入,账户密码输入正确,打印登入成功,结束程序,
否则打印账户或密码错误,之后再次获取用户的输入,三次都出错退出程序。
# 定义两个变量存储设置的账户与密码
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时,立刻跳出本层循环。
# 打印数字 0-9
num = 0
while True:
print(num)
num += 1
if num == 10: # num == 10进入循环
break # 执行到这就跳出循环
print('程序结束')
1.4break实例
1.模拟登入功能
模拟账户登入,账户密码输入正确,打印登入成功,结束程序。
否则要求不再次输入,直到输入正确才停止。
使用break。
# 定义两个变量存储设置的账户与密码
username = 'kid'
password = '123' # 注意是字符串
# 循环获取用户输入,设置条件
while True:
input_username = input('输入用户名>>>>>:')
input_password = input('输入用户密码>>>>:')
# 判断用户名于密码
if input_username == username and input_password == password:
print('登入成功')
# 跳出循环
break
print('请继续输入!!!')
2.嵌套实例
模拟账户登入,要求输入用户名,判断用户是否正确
不正确打印:用户不存在,要求继续输入用户名。
存在则要求输入密码,再判断密码是否正确,正确则打印:登入成功,退出程序,
否则打印密码错误,要求继续输入密码。
# 定义两个变量存储设置的账户与密码
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('用户不存在!')
3.标志位实例
* 不能使用break
模拟账户登入,y要求输入用户名,判断用户是否正确
不正确打印:用户不存在,要求继续输入用户名。
存在则要求输入密码,再判断密码是否正确,正确则打印:登入成功,退出程序,
否则打印密码错误,要求继续输入密码。
# 定义两个变量存储设置的账户与密码
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('用户不存在!')
4.猜数字游戏
用户可以有三次猜错的机会,错了提示 猜大了 还是 猜小了,如果过程中猜对了直接退出。
三次机会使用完后询问是否继续玩,输入q退出游戏,否则继续。
# 定义一个变量存储需要猜的数字
age = 21
# 定义一个存储值的计数器,并初始化值
num = 0
is_out = True
# 设置循环的条件
while is_out:
# 获取用户输入的值 int((input()) 将纯数字字符串转换为整型。不要输入非数字否则会报错。
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时,立刻结束本次循环。
# 打印数字 0-9 跳过4
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')
# continue 结束某次循环
x = 0
while x < 6:
if x == 4:
x += 1
continue
print(x, end='')
x += 1
else:
print('x')
# break中断循环
x = 0
while x < 6:
if x == 4:
x += 1
break
print(x, end='')
x += 1
else:
print('x')
"""
01234x
01235x
0123
"""
2.练习
1. 使用while循环输出1 2 3 4 5 6 8 9 10
2. 求1-100的所有数的和
3. 输出 1-100 内的所有奇数
4. 输出 1-100 内的所有偶数
5. 求1-2+3-4+5 ... 99的所有数的和
6. 用户登陆(三次机会重试)
7:猜年龄游戏
要求:
允许用户最多尝试3次,3次都没猜对的话,就直接退出,如果猜对了,打印恭喜信息并退出
8:猜年龄游戏升级版(选做题)
要求:
允许用户最多尝试3次
每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y或y,
就继续让其猜3次,以此往复,如果回答N或n,就退出程序
如何猜对了,就直接退出