1 循环嵌套
1.1 嵌套使用for循环
- 语法规则
for 变量 in 循环规则:
for 变量 in 循环规则:
代码块
代码块
- 示例
for i in range(1,3):
for j in range(10):
print(i*10+j,end=',')
10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,
提示:可以多个 for 循环嵌套
1.2 嵌套使用while循环
- 语法规则
while 表达式:
while 表达式:
代码块
#可以多个while循环
代码块
- 示例
>>> a=1
>>> while a<10:
b=1
while b<=a:
print("%d*%d=%2d"%(a,b,a*b),end=" ")
b+=1
print()
a+=1
1*1= 1
2*1= 2 2*2= 4
3*1= 3 3*2= 6 3*3= 9
4*1= 4 4*2= 8 4*3=12 4*4=16
5*1= 5 5*2=10 5*3=15 5*4=20 5*5=25
6*1= 6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1= 7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1= 8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1= 9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
2 break 和 continue
- break 语句用于跳出当前循环,即提前结束循环(包括else语句)
- continue 语句用于跳过循环体剩余语句,回到循环开头开始下一次迭代
- 示例(输出100~999的前十个回文数–3位数中个位和百位相等)
>>> count = 0
>>> for i in range(100,1000):
a = i // 100
b = i % 10
if a == b :
count += 1
if count <= 10:
print(i,end=",")
101,111,121,131,141,151,161,171,181,191,
3 习题
3.1 生成数字金字塔
for i in range(1,10):
print(' '*(15-i),end='')
n = i
while n >= 1:
print(n,sep='',end='')
n -= 1
n += 2
while n <= i:
print(n,sep='',end='')
n += 1
print()
#输出结果:
1
212
32123
4321234
543212345
65432123456
7654321234567
876543212345678
98765432123456789
3.2 生成10个两位的随机小数
import random
n=0
while n < 10:
x = random.randint(10,99)
a = 2
while a < x - 1:
if x % a == 0:#从2开始,判断它是否还存在余数
break
a += 1
else:
print(x,end=" ")
n += 1
31 53 97 71 11 23 23 31 71 67
4 作业:
- 把上节质数问题优化
print("这是一个质数验证程序,输入的数据为0,退出验证")
number = int(input("请输入你想验证的数:"))
while number != 0:
count = 0
for a in range(2,number):
if number % a == 0:
count += 1
if count >= 1:
print("{} 不是质数".format(number))
number = int(input("请输入你想验证的数:"))
else:
print("{} 是质数".format(number))
number = int(input("请输入你想验证的数:"))
print("你输入0,结束验证")
- 输出结果