Python—循环加强

1.使用循环打印等腰三角形

# 画三角形层数为n
# 第i层有空格:n-i
# 第i层有*:2*i-1
n = int(input("层数:"))#层数=n
for i in range(1, n + 1):#范围在1~n
    # 画空格
    for _ in range(1, n - i + 1):  # _不用显示,用于表示;i表示第几层
        print(" ",end="")#end=""相当于不换行输出
    # 画*
    for _ in range(1, 2 * i):
        print("*",end="")
    print()#print命令自带换行功能

2.使用循环打印菱形

# 菱形的上层数:n//2 +1
# 第i层有空格:up -i
# 第i层有*:2*up-1
n = int(input("输入菱形的层数(必须是奇数):"))
up = n // 2 + 1
for i in range(1,up+1):#范围1~up
    # 画空格
    for _ in range(1,up - i+1):
        print(" ", end="")
    # 画星星
    for _ in range(1,2 * i):
        print("*", end="")
    print()
# 下半部分:n//2
# 空格数:i
# 星星数:n- i*2
down = n // 2
for i in range(1, down + 1):
    # 画空格
    for _ in range(1,i+1):
        print(" ", end="")
    # 画星星
    for _ in range(1,n - i * 2+1):
        print("*", end="")
    print()

 

3.使用循环打印空心菱形

# 空心菱形意味着每行只画第一颗星星和最后一颗星星,其他位置补空格
# 所以可以得到上部分 j==0 或者 j==2*i-2 画星星
#         下部分 j ==0 或者 j==n-i*2-1画星星
n = int(input("输入菱形的层数(必须是奇数):"))
up = n // 2 + 1
down = n // 2
for i in range(1, up + 1):
    #画空格
    for _ in range(up - i):#范围0~up-i
        print(" ", end="")
    #画星星
    for j in range(2 * i - 1):
    #
        if j == 0 or j == i * 2 - 2:#当j=0时(第一次循环),j=i*2-1-1(最后一次序循环)画星星
            print("*",end="")
        else:
            print(" ",end="")#其他全部画成空格
    print()
down = n // 2
for i in range(1, down + 1):
    for _ in range(i):
        print(" ", end="")
    for j in range(n - i * 2):#范围0~n-i*2
        if j == 0 or j == n - i * 2 - 1:  # 当j=0时(第一次循环),j=i*2-1-1(最后一次序循环)画星星
            print("*", end="")
        else:
            print(" ", end="")  # 其他全部画成空格
    print()

 4.使用循环打印横空心菱形

n = int(input("输入菱形的层数(必须是奇数):"))
up = n // 2 + 1
down = n // 2
for i in range(1, up + 1):
    #画空格
    for _ in range(up - i):
        print(" ", end="")
    #画星星
    for j in range(2 * i - 1):
    #
        if j == 0 or j == i * 2 - 2 or i == up:#当j=0时(第一次循环),j=i*2-1-1(最后一次序循环),当i=最后一行全部画星星
            print("*",end="")
        else:
            print(" ",end="")
    print()
down = n // 2
for i in range(1, down + 1):
    for _ in range(i):
        print(" ", end="")
    for j in range(n - i * 2):
        if j == 0 or j == n - i * 2 - 1:  
            print("*", end="")
        else:
            print(" ", end="") 
    print()

5.使用循环打印十字空心菱形

n = int(input("输入菱形的层数(必须是奇数):"))
up = n // 2 + 1
down = n // 2
for i in range(1, up + 1):
    #画空格
    for _ in range(up - i):
        print(" ", end="")
    #画星星
    for j in range(2 * i - 1):
     if j == 0 or j == 2 * i - 2 or i == up or j == (2 * i - 1) // 2:#前面的基础上加上每一行的中间画一个星星(2 * i - 1) // 2
            print("*",end="")
     else:
            print(" ",end="")
    print()
down = n // 2
for i in range(1, down + 1):
    for _ in range(i):
        print(" ", end="")
    for j in range(n - i * 2):
        if j == 0 or j == n - i * 2 - 1 or j == (n - i * 2) // 2:#前面的基础上加上每一行的中间画一个星星(n - i * 2) // 2
            print("*", end="")
        else:
            print(" ", end="")
    print()

6.使用循环打印十字箭头

n = int(input("输入的层数(必须是奇数):"))
up = n // 2 + 1
down = n // 2
for i in range(1, up + 1):
    #画空格
    for _ in range(up - i):
        print(" ", end="")
    #画星星
    for j in range(2 * i - 1):
     if j == 0 or j == 2 * i - 2 or i == up or j == (2 * i - 1) // 2:
            print("*",end="")
     else:
            print(" ",end="")
    print()
down = n // 2
for i in range(1, down + 1):
    for _ in range(i):
        print(" ", end="")
    for j in range(n - i * 2):
        if  j == (n - i * 2) // 2:#将第一颗星星和最后一颗星星删除
            print("*", end="")
        else:
            print(" ", end="")
    print()

7.(显示一个金字塔)编写程序提示用户输入一个在1到15之间的整数,然后显示一个金字塔

#分成两个部分解决问题
#当三角形为n层时
#第i层有n-i个空格
#第i层的数字:从i开始,1结束。range(i,1)
#左边三角形
n = int(input("请输入三角形的层数:"))
for i in range(1, n + 1):
    #画空格
    for _ in range(n - i):
        print("\t", end="")
    #画数字
    for j in range(i, 0, -1):
        print(f"{j}\t", end="")
#右边三角形
    for j in range(2, i + 1):
        print(f"{j}\t", end="")
    print()

8.(使用循环显示四种模式)使用嵌套循环在四个独立的程序中显示下面四种模式。

A

n = int(input("请输入三角形的层数:"))
for i in range(1, n + 1):
    # 画空格
    for _ in range(n - i):
        print("", end="")
    # 画数字
    for j in range(1, i + 1):
        print(f"{j}\t", end="")
    print()



B

n = int(input("请输入打印的层数:"))
for i in range(n, 0, -1):
    for j in range(1, i + 1):
        print(f"{j}\t", end="")
    print()

C

n = int(input("请输入三角形的层数:"))
for i in range(1, n + 1):
    #画空格
    for _ in range(n - i):
        print("\t", end="")
    #画数字
    for j in range(i, 0, -1):
        print(f"{j}\t", end="")
    print()

D

n = int(input("请输入层数:"))
for i in range(n, 0, -1):
    for _ in range(n - i):
        print("\t", end="")
    for j in range(1, i + 1):
        print(f"{j}\t", end="")
    print()

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值