一、定义和注意事项
在Python中,循环结构(如for循环和while循环)可以互相嵌套。嵌套循环意味着一个循环内部包含另一个循环。这在处理多维数据或需要执行多次迭代的任务时非常有用。
注意:
1.缩进:在Python中,缩进是定义代码块的方式。因此,嵌套循环必须正确缩进。
2.性能:嵌套循环可能导致性能问题,特别是当循环次数较多时。因此,在编写嵌套循环时,要注意优化算法,避免不必要的计算。
3.终止条件:确保每个循环都有明确的终止条件,以避免无限循环。
二、实例应用编程
本次以这六种示例
1.长方形、直角三角形和倒三角形
# 长方形
for i in range(1,4):# 外层循环
for j in range(1,5):# 内层循环
print('*',end='')#输出每个*且不换行,直到一次循环输出五个
print()#输出五个后换行,执行外层循环
# 直角三角形
for i in range(1,6):# 外层循环,有五行
for j in range(1,i+1):# 内层循环,每一行多一颗* (1,2)、(1,3)、(1,4)、(1,5)、(1,6)
print('*',end='')#输出每个*且不换行,直到一次循环输出五个
print()#输出五个后换行,执行外层循环
#倒三角形
for i in range(1,6):
for j in range(1,7-i):
print('*',end='')
print()
2.等腰三角形
#等腰三角是
#看成倒三角空格三角形和直角三角形
for i in range(1,6):
for j in range(1,6-i):
print('&',end='')
for k in range(1,2*i):
print('*',end='')
print()
#等腰三角是
#看成倒三角空格三角形和直角三角形
for i in range(1,6):
for j in range(1,6-i):
print(' ',end='')#把它改成空格就好了
for k in range(1,2*i):
print('*',end='')
print()
3.菱形
#菱形
#奇数行打印偶数行不行
row = eval(input('请输入菱形行数:'))
while row%2==0:
print('重新输入菱形行数:')
row = eval(input('请输入菱形行数:'))
#输出菱形
top_row = (row+1)//2 # 上半部分行数
#上半部分
for i in range(1,top_row+1):
#倒三角
for j in range(1,top_row+1-i):
print('&',end='')#把它改成空格就好了,4,3,2,1,0
for k in range(1,2*i): #1,3,5,7,9
print('*',end='')
print()
# 下半部分
bottom_row = row//2
for i in range(1,bottom_row+1):
for j in range(1,i+1):
print('&',end='')
for k in range(1,bottom_row*2-2*i+2): # 8,6,4,2
print('*',end='')
print()
改成空格
4.空心菱形
#空心菱形
#在打印*地方加入判断
row = eval(input('请输入菱形行数:'))
while row%2==0:
print('重新输入菱形行数:')
row = eval(input('请输入菱形行数:'))
#输出菱形
top_row = (row+1)//2 # 上半部分行数
#上半部分
for i in range(1,top_row+1):
#倒三角
for j in range(1,top_row+1-i):
print(' ',end='')#把它改成空格就好了,4,3,2,1,0
for k in range(1,2*i): #1,3,5,7,9
if k==1 or k==2*i-1:# 判断条件
print('*',end='')
else:
print(' ',end='')
print()
# 下半部分
bottom_row = row//2
for i in range(1,bottom_row+1):
for j in range(1,i+1):
print(' ',end='')
for k in range(1,bottom_row*2-2*i+2): # 8,6,4,2
if k==1 or k==bottom_row*2-2*i+2-1: # 判断条件
print('*',end='')
else:
print(' ',end='')
print()