循环普遍存在于日常生活中,同样,在程序中,循环功能也是至关重要的基础功能。
目录
1. while循环语句
1.1 while循环基础格式
变量名 = 初始值
while 条件判断:
循环体
条件控制
1.2 while循环基础步骤
1.定义变量赋初始值
2.条件判断
3.循环体
4.条件控制
# 需求: 要求打印'hello python'50次
"""
分析: 重复执行n次考虑用循环
循环条件: 小于50次继续循环
循环内容: 打印'hello python'
结束控制: 从第1次开始每次加1直到第50次完事结束
"""
# 1.定义变量赋初始值
i = 1
# 2.条件判断
while i <= 50:
# 3.循环体
print('hello python', i)
# 4.条件控制
i += 1
# 需求: while循环求1-100的和
"""
分析:利用循环中i能够不断自增的特点
设置i初始值1,不断自增到100结束
此时打印i其实就是打印1-100
"""
# 1.定义变量赋初始值
i = 1
# 循环外定义sum变量用于记录每次求和结果
sum = 0
# 2.条件判断
while i <= 100:
# 3.循环体
# 累加求和: sum =0 + 1 + 2 + 3 +...+100
sum += i # sum = sum + i
# 4.条件控制
i += 1
# 循环外使用最终sum结果
print(sum)
1.3.循环中断:break和continue
continue: 结束本次循环,继续下一次循环
需求: 半夜坐电梯,电梯一共1-20层,
正常每层都停,要求在4,14,18层不停
for i in range(1, 21):
if i == 4 or i == 14 or i == 18:
continue
# 循环体
print(f'{i}层到了~')
break: 跳出循环,结束循环
# 需求: 假设从18岁正常上班到99岁,要求60岁退休
for i in range(18, 100):
if i == 60:
print(f"终于{i}岁了,可以享受退休生活了...")
# 跳出循环
break
# 循环体
print(f"{i}岁了,正在上班...")
continue和break对while和for循环都适用!
注意: 在嵌套循环中,continue和break只能作用在所在的循环上,无法对上层循环起作用
1.4 while无限循环
无限循环: 又叫死循环,恒成立的条件,循环的内容如果不设置条件不会停下来,实现无限循环的方式:
方式1: 正常的while循环,不加条件控制
方式2: while循环条件用两个字面量比较结果是True
方式3(建议): while循环条件直接用True
方式4: while循环条件直接用1
"""
需求: 编写猜数字(1-100)游戏的小程序,
要求只要猜不对就继续猜,直到猜中为止
并且需要统计猜中及之前一共猜了多少次
"""
# 1.random随机生成底数
import random
num = random.randint(1, 100)
print(num)
# 5.循环外定义计数器,初始值0
count = 0
# 4.无限循环(猜中为止,统计次数)
while True:
# 循环体
# 2.input获取用户猜的数
guess = int(input('请您输入猜的数(范围1-100):'))
# 5.2每猜一次,计数器统计一次
count += 1
# 3.上述两个数比较给出提示(猜中,大,小)
if 1 <= guess <= 100:
if guess == num:
print('恭喜,猜中了!')
# 跳出循环
break
elif guess > num:
print('猜大了!')
else:
print('猜小了!')
else:
print('输入有误!!!')
# 5.3循环外使用最终次数
print(f'您一共猜了{count}次,猜中了')
注意: True一般用数字1代表,False只能用数字0代表
特点: 非0即为True
None: 在python代表空的没有意义的
注意: 循环一般要设置条件,满足对应条件跳出循环 使用关键字break
# 需求:循环打印九九乘法表
# 外层循环控制行数
# 1.外层循环初始变量b
b = 1
# 2.外层循环条件判断
while b <= 9:
# 3.整个内层循环都是外层循环的循环体
a = 1
while a <= b:
print(f'{a}*{b}={a * b}', end='\t')
a += 1
# 每行内容打印完进行换行操作
print()
# 4.外层循环条件控制
b += 1
2. for循环语句
for循环,又叫遍历循环,需要提前准备好数据集然后从中一个个取出达到循环效果
2.1 for循环基础格式
for 临时变量 in 数据集:
循环体
# 需求: 已知字符串"国庆节快乐",要求把每个汉字依次打印出来
name = '国庆节快乐'
# for循环遍历name
for i in name:
print(i)
2.2 range函数格式
range(x,y,z)
x: 初始值 注意: 默认是0,如果要是其他数手动写上
y: 结束值 注意: 不含y本身
z: 步长 注意: 默认是1,如果要是其他数手动写上
2.3 for循环进阶格式:
for 临时变量 in range(x,y,z):
循环体
# 需求: for循环打印1-5
for i in range(1, 6):
print(i)
print('----------------------------')
# 需求: for循环打印0-5
# 注意: 0可以省略
for i in range(6):
print(i)
print('----------------------------')
# 需求: for循环打印2,4,6,8,10
for i in range(2, 11, 2):
print(i)
print('----------------------------')
2.4 for循环变量作用域
for循环变量作用域: 仅限于当前for循环内部
注意:python中即使在外部访问了它只有警告没有报错
while循环变量作用域: 所有循环内外都可以使用
# 需求: for循环打印2,4,6,8,10
for a in range(2, 11, 2):
print(a)
# for循环外部访问临时变量
print('for循环临时变量:', a)
# 需求: while循环打印2,4,6,8,10
b = 2
while b < 11:
print(b)
b += 2
# while循环外部访问初始变量
print('while循环变量:', b)