4.4章节python中循环结构得互相嵌套:常用于属于图形(长方形、三角形、菱形)

一、定义和注意事项

在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()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值