提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
目录
一、for
循环
for
循环用于遍历可迭代对象(如列表、元组、字符串、字典、集合等)中的每个元素,执行循环体。
基本语法
for 变量 in 可迭代对象:
循环体
示例 :
# 遍历列表
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
输出 :
apple
banana
cherry
使用range()
函数
range()
函数可以生成一个整数序列,常用于for
循环中。
# 使用range()函数
for i in range(5): # 生成0到4的整数序列
print(i)
输出 :
0
1
2
3
4
经典案例 :(九九乘法表)
# 九九乘法表
# for i in range(1, 10):
# for j in range(1, i + 1):
# print(f"{j} * {i} = {i * j}",end=" ")
# print("")
输出:
1 * 1 = 1
1 * 2 = 2 2 * 2 = 4
1 * 3 = 3 2 * 3 = 6 3 * 3 = 9
1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16
1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25
1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36
1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49
1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64
1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81
二、while
循环
while
循环用于在满足某个条件时重复执行循环体,直到条件不再满足为止。
基本语法
while 条件:
循环体
示例 :
# 使用while循环
count = 0
while count < 5:
print(count)
count += 1
输出 :
0
1
2
3
4
三、 break
与continue
-
break
:用于立即终止循环,跳出循环体。 -
continue
:用于跳过当前循环的剩余部分,直接进入下一次循环。
示例 :
# 使用break
for i in range(10):
if i == 5:
break
print(i)
输出 :
0
1
2
3
4
示例 :
# 使用continue
for i in range(10):
if i % 2 == 0: # 跳过偶数
continue
print(i)
输出 :
1
3
5
7
9
四、 循环与else
在Python中,循环语句可以与else
语句配合使用。else
块会在循环正常结束时执行(即没有被break
中断)。
示例 :
# for循环与else
for i in range(5):
if i == 10: # 假设条件永远不会满足
break
else:
print("循环正常结束")
输出 :
循环正常结束
如果循环被break
中断,则else
块不会执行:
# for循环与else(被break中断)
for i in range(5):
if i == 3:
break
else:
print("循环正常结束")
输出 :
(没有输出,因为循环被break中断)
while
循环也可以与else
配合使用,逻辑相同。
五、经典案例分析
用for求1000以内最大的10个质数的平均数
count = 0
total = 0
for i in range(1000, 1, -1):
is_value = True
for j in range(2,i):
if i % j == 0:
# print(f"{i}不是质数")
is_value = False
break
if is_value:
total += i
count += 1
# print(f"{i}是质数")
if count == 10:
break
print(total / 10)
输出:966.4
代码分析
-
变量初始化
count = 0 total = 0
-
count
:用于计数,记录找到的质数数量。 -
total
:用于累加找到的质数。
-
-
外层
for
循环for i in range(1000, 1, -1):
-
从1000开始,递减到2,检查每个数字是否为质数。
-
-
内层
for
循环for j in range(2, i): if i % j == 0: is_value = False break
-
这段代码用于判断
i
是否为质数。如果i
能被j
整除,则is_value
置为False
,并退出循环。
-
-
质数处理
if is_value: total += i count += 1 if count == 10: break
-
如果
i
是质数,则累加到total
中,并增加计数器count
。 -
如果找到10个质数,则退出循环。
-
-
计算平均值
print(total / 10)
-
最后输出前10个质数的平均值。
-
用while求1000以内最大的10个质数的平均数
value = 1000
total = 0
b = 0
while value < 1001:
count = 2
is_prime = True
while count < value:
if value % count == 0:
is_prime = False
break
count += 1
if is_prime:
b += 1
total += value
# print(f"{value}是质数")
if b == 10:
break
value -= 1
print(total / 10)
输出 :966.4
代码分析
-
变量初始化
value = 1000 total = 0 b = 0
-
value
:从1000开始,逐步减小,寻找质数。 -
total
:用于累加找到的质数。 -
b
:用于计数,记录找到的质数数量。
-
-
外层
while
循环while value < 1001:
-
这个条件
value < 1001
是多余的,因为value
初始化为1000,且在循环中逐渐减小,永远不会大于等于1001。可以去掉这个条件,直接用while True
代替。
-
-
内层
while
循环count = 2 is_prime = True while count < value: if value % count == 0: is_prime = False break count += 1
-
这段代码用于判断
value
是否为质数。如果value
能被count
整除,则is_prime
置为False
,并退出循环。
-
-
质数处理
if is_prime: b += 1 total += value if b == 10: break
-
如果
value
是质数,则累加到total
中,并增加计数器b
。 -
如果找到10个质数,则退出循环。
-
-
value
递减value -= 1
-
每次循环结束,
value
减1,继续检查下一个数字。
-
-
计算平均值
print(total / 10)
-
最后输出前10个质数的平均值。
-
# python 特性写法
用while与else的操作
求1000以内相差为6的质数对
i = 1000
value = 0
while i > 2:
j = 2
while j < i:
if i % j == 0:
break
j += 1
else:
value = i - 6
# print(i)
s = 2
while s < value:
if value % s == 0:
break
s += 1
else:
if value < 7:
break
print(i, value)
i -= 1
代码分析
-
变量初始化
i = 1000 value = 0
-
i
:从1000开始,逐步减小,寻找质数。 -
value
:用于存储i - 6
的值。
-
-
外层
while
循环while i > 2:
-
从1000开始,递减到3,检查每个数字是否为质数。
-
-
内层
while
循环(检查i
是否为质数)j = 2 while j < i: if i % j == 0: break j += 1 else:
-
这段代码用于判断
i
是否为质数。如果i
能被j
整除,则退出循环,否则执行else
块。
-
-
检查
i - 6
是否为质数value = i - 6 s = 2 while s < value: if value % s == 0: break s += 1 else: if value < 7: break print(i, value)
-
如果
i
是质数,则计算value = i - 6
,并检查value
是否为质数。 -
如果
value
是质数且大于等于7,则打印质数对(i, value)
。
-
-
递减
i
i -= 1
-
每次循环结束,
i
减1,继续检查下一个数字。
-
总结
-
for
循环适合遍历可迭代对象。 -
while
循环适合在满足条件时重复执行。 -
break
用于终止循环,continue
用于跳过当前迭代。 -
循环与
else
配合使用时,else
块在循环正常结束时执行,但如果循环被break
中断,则else
块不会执行。