1. while循环
1.1while
1.1.1 语法
'''
while 条件语句:
循环体
'''
1.1.2 说明
1)while:关键字;固定写法;
2)条件语句:和if中的条件语句的要求一样;
3)冒号 : 固定写法;
4)循环体:
结构上和while保持一个缩进的一条或者多条语句;
逻辑上,需要重复执行的代码。
1.1.3 执行过程
判断条件语句是否为True,如果是就执行循环体,否则循环就结束。
流程图:
x = 0
while x < 5:
print('======')
x += 1
1.1.4 练习
练习1:打印1~100所有的数
x = 1
while x <= 100:
print(x)
x += 1
练习2:打印100以内所有的偶数:2,4,6,8,10,…,100
x = 2
while 2 <= x <= 100:
print(x)
x += 2
练习3:打印:100,98,96,94,92,…,4,2,0
x = 100
while 0 <= x <= 100: # while x >= 0:
print(x)
x -= 2
1.2 for循环和while循环的选择
1.2.1 关系
1)for能解决的问题,while循环都可以解决;
2)while循环能解决的问题,for循环不一定可以解决;
3)for循环比起while循环,控制次数更简单(容易)。
1.2.2 使用建议
1)能用for循环解决的问题都用for,解决不了的才考虑while;
2)循环次数确定:使用for;
3)循环次数不确定:只能使用while循环。
1.2.3 练习
练习1:提示用户输入密码,直到输入正确为止
pw = '123456'
i_pw = input('请输入密码:')
while pw != i_pw:
i_pw = input('密码错误,请重新输入密码:')
练习2:猜数字游戏
'''
系统随机产生一个0~100的随机数
用户不断输入数字,直到输入的数字和产生的数字相等,游戏结束。
如果猜错了,给出大了或者小了的提示信息
假设随机数是30
请输入数字(0~100):50
大了,再小点
请输入数字(0~100):25
小了,再大点
...
请输入数字(0~100):30
恭喜你猜对了!
'''
补充:python创建随机数
from random import randint
x = randint(10,20) # 产生一个10到20的随机数,并且保存到变量x中
from random import randint
num = randint(0,100)
'''
while 输入的数字不等于产生的随机数:
提示输入数据
判断输入的数据和产生的数据之间的大小
恭喜你,猜对了!
'''
i_num = -1
while i_num != num:
i_num = int(input('猜错了,请输入数字(10~100):'))
if i_num > num:
print('大了,再小点')
elif i_num < num:
print('小了,再大点')
print('恭喜你猜对了!')
2. 循环关键字
2.1 continue和break
2.1.1 只能出现在循环体中
2.1.2 continue:
结束一次循环,每次在执行循环体的时候,如果遇到continue,那么这次循环结束,直接进入下一次循环。
# 0,2,4,6,8
for x in range(10):
if x % 2:
continue
print(x)
'''
x = 0: if 0 % 2: -> if 0 -> if False -> print(0) -> 0
x = 1: if 1 % 2: -> if 1 -> if True -> continue -> 下一次循环
x = 2: if 2 % 2: -> if 0 -> if False -> print(2) -> 2
...
打印结果为:0,2,4,6,8
'''
x = 0
while x <= 10:
print(x)
if x % 2 ==0:
x += 3
continue
x += 1
'''
x = 0
while 0 <= 10 -> while True -> print(0) -> if 0 % 2 ==0 -> if True -> x += 3 -> 3 -> continue
while 3 <= 10 -> True ->print(3) -> if 3 % 2 ==0 -> if False -> x += 1 -> 4
while 4 <= 10 -> while True -> print(4) -> if 4 % 2 ==0 -> if True -> x += 3 -> 7 -> continue
while 7 <= 10 -> True ->print(7) -> if 7 % 2 ==0 -> if False -> x += 1 -> 8
while 8 <= 10 -> while True -> print(8) -> if 8 % 2 ==0 -> if True -> x += 3 -> 11 -> continue
while 11 <= 10 -> False -> 整个循环结束
打印结果:0,3,4,7,8
'''
2.1.3 break
结束整个循环,在执行循环体的时候,如果遇到brreak,那么整个循环直接结束,不会进入下次循环。
for x in range(10):
if x % 2:
break
print(x)
'''
x = 0 -> if 0 % 2 -> if False -> print(0)
x = 1 -> if 1 % 2 -> if True -> break
打印结果:0
'''
2.2 while和break
'''
while循环使用的通用格式:
while True:
需要重复执行的代码
if 循环结束的条件:
break
'''
pw = '123456'
while True:
i_pw = input('请输入密码')
if i_pw == pw:
brea
练习:输入任意一个正整数,求他是几位数?
# 123 -> 3 1236 -> 4 123456 -> 6 # 整除10几次就是几位数
# 123 // 10 -> 12 // 10 ->1 // 10 -> 0
# 98 // 10 -> 9 // 10 -> 0
# 123456 // 10 -> 12345 // 10 -> 1234 // 10 -> 123 // 10 -> 12 // 10 -> 1 // 10 -> 0
num = int(input('请输入一个正整数'))
count = 0
while True:
num //= 10
count