一、while循环的基础语法
语法
![](https://i-blog.csdnimg.cn/blog_migrate/d78249dfeeef4d16c0fcf1b7dc7b7176.png)
注意
![](https://i-blog.csdnimg.cn/blog_migrate/e6c6f2fd46513f97f43636a1a3e6069a.png)
案例练习
![](https://i-blog.csdnimg.cn/blog_migrate/5b83c0af4921772f1310674b915e97c3.png)
i = 1
num = 0
while i < 101:
num = num + i
i = i + 1
print(num)
![](https://i-blog.csdnimg.cn/blog_migrate/3e59c769ec46e1db5279a1ae6285a9a3.png)
import random
num = random.randint(1, 100)
flag = True
count = 0
while flag:
guess_num = int(input('请输出猜测的数字:'))
if guess_num == num:
flag = False
print('恭喜你,猜对了')
else:
if guess_num > num:
print('输入的数字太大了')
else:
print('输入的数字太小了')
count += 1
print(f'一共猜测了:{count}次')
二、while循环的嵌套应用
案例:表白100天,每一天都会送10朵玫瑰花
(注意:嵌套是
根据空格缩进来进行实现的,注意条件的控制,避免无限循环,除非真的需要无限制循环)
# 外层:表白100天的控制
# 内层:每天的表白都送10只玫瑰花的控制
i = 1
while i <= 100:
print(f'今天是第{i}天,准备表白...')
j = 1
while j <= 10:
print(f'送给小美第只玫瑰花')
j += 1
print('小美我爱你')
i += 1
print(f'坚持到第{i-1}天,表白成功')
案例:掌握使用while嵌套循环,打印九九乘法表
![](https://i-blog.csdnimg.cn/blog_migrate/2c9b5f65ead1432778649c5713a6aa88.png)
![](https://i-blog.csdnimg.cn/blog_migrate/938fa7d102c5618771874dbe72cece1d.png)
i = 1
while i <= 9:
j = 1
while j <= i:
if j == i:
print(f'{j}*{i}={i * j}\t')
else:
print(f'{j}*{i}={i*j}\t', end='')
j += 1
i += 1
或者
![](https://i-blog.csdnimg.cn/blog_migrate/e4cd2b57fd42a223c6409eda9b44ad3b.png)
三、for循环的基础语法
- 基础语法
![](https://i-blog.csdnimg.cn/blog_migrate/55e511034bfb25ffd56f89a1ce9d24aa.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1f1549cd6bb038391665c7e0f1bd85f7.png)
注意
![](https://i-blog.csdnimg.cn/blog_migrate/3b101194b31ab76555dc61af09f0f76b.png)
同时也需要有空格进行缩进
案例练习
![](https://i-blog.csdnimg.cn/blog_migrate/ffc431511c873a7a074ef87408cbefb3.png)
name = 'itheima is a brand of itcast'
count = 0
for x in name:
if x == 'a':
count += 1
print(f'被统计的字符串中有{count}个a')
- range语句使用(常用于for循环中,控制for循环次数)
range语句的功能是:获得一个数字序列(可迭代类型的一种)
![](https://i-blog.csdnimg.cn/blog_migrate/8ba0b59ace94dbda8f4dd3c85df9fa32.png)
案例
num = 100
count = 0
for x in range(1,100):
if x % 2 == 0:
count += 1
print(f'1到100(不包含100)范围内,有{count}个偶数')
3.变量作用域
![](https://i-blog.csdnimg.cn/blog_migrate/10883b503abe69ea8dc3996e29cc7b29.png)
![](https://i-blog.csdnimg.cn/blog_migrate/854ac4c42a74a166301aff1fd3e4af81.png)
![](https://i-blog.csdnimg.cn/blog_migrate/05bdcc39c0f9ed74e5694da109fb4f68.png)
四、for循环的嵌套应用
# 坚持表白100天,每天都送10朵花
i = 0
for i in range(1, 101):
print(f'今天是向小美表白的第{i}天,加油坚持')
for j in range(1, 11):
print(f'给小美送的第{j}只玫瑰花')
print('小美喜欢你')
print(f'第{i}天,表白成功')
![](https://i-blog.csdnimg.cn/blog_migrate/6b1865d963e03465ded007a2a8f2eb1d.png)
用for循环来打印九九乘法表
# 通过外层循环可以控制行数
for i in range(1, 10):
# 通过内层循环控制每一行的数据
for j in range(1, i+1):
print(f'{j}*{i}={j*i}\t', end='')
# 在外层循环可以通过print输出一个回车进行换行
print()
五、循环终端:break 和 continue
continue:是临时中断,中断本次循环,进入下一次的循环
break:永久中断,直接结束所在的整个循环
![](https://i-blog.csdnimg.cn/blog_migrate/0fc22af7eb1425832d96e0922fa6582a.png)
# 只会输出5个语句1
for i in range(1, 6):
print('语句1')
continue
print('语句2')
# 在外层的一次循环中输出 语句1 5个语句2 语句4
for i in range(1, 6):
print('语句1')
for j in range(1, 6):
print('语句2')
# 这个continue只可以影响嵌套内的for循环,对外层的不影响
continue
print('语句3')
print('语句4')
# 仅输出a c
for i in range(1, 101):
print('a')
break
print('b')
print('c')
# 仅输出abd abd abd abd abd abd
for i in range(1, 6):
print('a')
for j in range(1, 6):
print('b')
break
print('c')
print('d')
综合案例
![](https://i-blog.csdnimg.cn/blog_migrate/cb1f5b29e9c8575deaa618618654d138.png)
money = 10000
for i in range(1, 21):
import random
score = random.randint(1, 10)
if score < 5:
print(f'员工{i}:绩效分{score},不发工资,下一位')
continue
if money > 1000:
money -= 1000
print(f'向员工{i}发放工资1000元,账户余额还剩余{money}元')
else:
print('工资发完了,下个月领取吧')
break