第三章 程序控制结构-6
5 嵌套程序
无论是分支结构还是循环结构,都允许嵌套。嵌套就是分支内还有分支,循环内还有循环或者分支内有循环,循环内有分支等。
# 注意区别恒真循环
import random
num=random.randint(0,10)
x=eval(input("请输入一个数:"))
while True:
if num==x:
print("恭喜你猜对了!")
break
else:
print("很遗憾,没有猜对哟!")
x=eval(input("请输入一个数:"))
# *********
for j in range(1,10):
print(" *", end="")
# 重复输出9行*号
for i in range(1,10):
for j in range(1,10):
print("*", end="")
print( )
嵌套循环:在循环语句中包含另外一个完整循环语句
生活中嵌套循环的例子
# 钟表
for i in range(1,13):
for j in range(1,60):
……
……
任务-输出九九乘法表
效果
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
问题分析
任务分解—步骤1
for i in range(1,10):
for j in range(1,i+1):
print(" *", end="")
print( )
任务分解—步骤2
for i in range(1,10):
for j in range(1, i+1):
print(i,"*",j,"=",i*j,end=" ")
print( )
for i in range(1,10):
for j in range(1, i+1):
if i*j>=10:
print(str(i)+"*"+str(j)+"="+str(i*j),end=" ")
else:
print(str(i)+"*"+str(j)+"="+" "+str(i*j),end=" ")
print( )
for i in range(1,10):
for j in range(1, i+1):
print(" {}*{}={:<2d}". format.(i,j,i*j), end="")
print( )
嵌套循环小结
1 嵌套循环的一般结构如下
while 条件表达式1:
while 条件表达式2:
语句序列2
语句序列1
while 条件表达式1:
for 变量 in 序列对象:
语句序列2
语句序列1
for 变量1 in 序列对象1:
for 变量2 in 序列对象2:
语句序列2
语句序列1
for 变量1 in 序列对象:
while 条件表达式:
语句序列2
语句序列1
2 每一层循环在逻辑上必须是完整的
3 嵌套的内外循环控制变量不应同名
课后扩展练习
分别输出如图所示的图形
图一
*****
*****
*****
*****
*****
图二
*****
****
***
**
*
图三
*
***
*****
#图一
for i in range(1,6):
for z in range(i):
print(" ",end="")
for j in range(1,6):
print ("*",end="")
print()
#图二
for i in range(1,6):
for z in range(0,i):
print(" ",end="")
for j in range(5,i-1,-1):
print ("*",end="")
print()
#图三
for i in range(1,6,2)
for z in range(1,int((5-i)/2)+1):
print ("*",end="")
for j in range(1,i+1):
print ("*",end="")
print()
网友评论