DAY04 while循环和循环关键字
一. while循环
1.1 while
-
语法:
while 条件语句:
循环体
-
说明:
while - 关键字:固定写法
条件语句 - 和if中的条件语句要求一样
: (冒号) - 固定写法
循环体 - 结构上,和while保持一个缩进的一条或者多条语句;逻辑上,需要重复执行的代码 -
执行过程:
不断判断条件语句是否为True,如果是就执行循环体,否则循环结束
# 练习1:打印1~100所有的整数
num = 1
while num < 101:
print(num)
num += 1
# 练习2:打印100以内所有偶数
num = 2
while num <= 100:
print(num)
num += 2
# 练习3:打印100,98,96,94..... 0
num = 100
while num >= 0:
print(num)
num -= 2
1.2 for循环和while循环的选择
-
关系:
for能解决的问题,while循环都能解决;
但是for循环比起while循环,控制次数更简单容易
-
使用建议:
能用for循环解决的问题都用for循环,解决不了的才考虑while;
循环次数确定使用for,循环次数不确定只能使用while循环
# 练习:提示用户不断输入密码,直到密码正确
pw = '123456'
input_pw = input('请输入密码:')
while pw != input_pw:
input_pw = input('密码错误,请重新输入密码:')
print('密码正确')
# 练习1:猜数字游戏
'''
系统随机产生一个0~100的随机数
用户不断输入数字,直到输入的数字和产生的数字相等,游戏结束
如果猜错了,给出打了或者小了的提示信息
'''
from random import randint
num = randint(0, 100)
# print(num)
# g_num = int(input('请猜数字(0~100):'))
g_num = -1
count = 1
while num != g_num and count < 10:
g_num = int(input('请猜数字(0~100):'))
if num > g_num:
print('猜小了,你还有', 10 - count, '次机会')
# g_num = int(input('请重新猜数字:'))
count += 1
else:
print('猜大了,你还有', 10 - count, '次机会')
# g_num = int(input('请重新猜数字:'))
count += 1
if count >= 10:
print('猜错了,游戏失败T_T')
else:
print('恭喜你,猜对了!')
补充:Python创建随机数
from random import randint
x = randint(10, 20) # 产生一个10到20的随机数,并保存到变量X中
二. 循环关键字
2.1 continue和break
continue和break都只能出现在循环体中
- continue - 结束一次循环。每次在执行循环体的时候,如果遇到continue,那么结束本次循环
- break - 结束整个循环。在执行循环体的时候,如果遇到break,那么整个循环直接结束
for x in range(5):
print(x)
print('======')
continue
print('++++++')
'''
0
======
1
======
2
======
3
======
4
======
'''
for x in range(10):
if x % 2:
continue
print(x)
'''
0
2
4
6
8
'''
print('=========')
x = 0
while x <= 10:
print(x)
if x % 2 == 0:
x += 3
continue
x += 1
print('========')
for x in range(5):
print(x)
print('======')
break
print('++++++')
for x in range(5):
if x % 2:
break
print(x)
2.2 while和break
while循环使用的通用格式:
while True:
需要重复执行的代码
if 循环结束的条件:
break
# 输入密码直到正确
pw = '123456'
while True:
i_pw = input('请输入密码:')
if i_pw == pw:
break
# 练习:输出任意正整数的位数
num = input('请输入一个任意正整数:')
# 方法一
print(len(num))
# 方法二
count = 0
for x in num:
count += 1
print(count)
# 方法三
num = int(num)
count = 1
while True:
if num % (10 ** count) == num:
break
count += 1
print(count)
# 方法四
count = 0
while True:
num //= 10
count += 1
if num == 0:
break
print(count)
2.3 else
- 完整的循环结构:
-
完整的for循环
for 变量 in 序列:
循环体
else:
代码段 -
完整的while循环
while条件语句:
循环体
else:
代码段
- else的作用:
else的存在,不会影响原来循环的执行;
如果循环不是因为遇到break而结束的,else后的代码段就会在循环结束后执行,否则不执行
for x in range(5):
if x == 3:
break
print(x, '=======')
else:
print('+++++++')SSS
print('--------')