在python主要有两种循环结构:for循环、while循环
for循环
(1)主要用于计数的功能
用for循环实现1~50求和
代码:
sum = 0
for i in range(50):
sum += i
print(sum)
运行结果:
1225
注意:
range的类型:range(起始位,结束位,步长)
eg.给定i为1~11
代码:
i = 1,2,3,4,5,6,7,8,9,10,11
for i in range(1,8,2):##起始为1,结束为8,步长为2
print(i)
运行结果:1
3
5
7
流程图:

(2)真正的用途是用于可迭代对象:
# 列表
a = [1,2,3,4,5,[1,2,3],'aduh']
# 元组
b = (1,2,3,(1,2,3),'dahfg')
# 字典
c = {'key':'value',100:'akdfg','list':[1,2,3],'tuple':(1,2,3,4,5)}
# 集合
d = {1,2,3,4,2,3}
for循环输出99乘法表
for i in range(1, 10):
for j in range(1, i + 1):
print('%d*%d=%d' % (i, j, i * j), end='\t')
print()
while循环
流程图如下:

只要条件满足,就不断循环,条件不满足时退出循环。比如我们要计算100以内所有奇数之和,可以用while循环实现:
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print(sum)
在循环内部变量n不断自减,直到变为-1时,不再满足while条件,循环退出。
break
在循环中,break语句可以提前退出循环。例如,本来要循环打印1~100的数字:
n = 1
while n <= 100:
print(n)
n = n + 1
print('END')
上面的代码可以打印出1~100。
如果要提前结束循环,可以用break语句:
n = 1
while n <= 100:
if n > 10: # 当n = 11时,条件满足,执行break语句
break # break语句会结束当前循环
print(n)
n = n + 1
print('END')
执行上面的代码可以看到,打印出1~10后,紧接着打印END,程序结束。
continue
在循环过程中,也可以通过continue语句,跳过当前的这次循环,直接开始下一次循环。
n = 0
while n < 10:n = n + 1print(n)
上面的程序可以打印出1~10。但是,如果我们想只打印奇数,可以用continue语句跳过某些循环:
n = 0while n < 10:
n = n + 1if n % 2 == 0: # 如果n是偶数,执行continue语句continue# continue语句会直接继续下一轮循环,后续的print()语句不会执行print(n)
执行上面的代码可以看到,打印的不再是1~10,而是1,3,5,7,9。
while循环写99乘法表
i = 1
j = 1
while i< 10:
while j<(i+1):
print("%d*%d=%d"%(j,i,i*j),end="\t")
j=j+1
print()
i=i+1
j=1