python作业

题目

拆解下思路是这样的

画数字还是空格都得使用循环结构来解题

1、每一行是先画空格还是数字呢?

2、还有就是当三角形为n层的时候,第i层应该画多少个空格呢?

3、第i层的起始数字是几?

4、当三角形为n层时的时候,第i层应该画多少个数字呢?

带着这个思路来分析模式A

因为第一层有5个空格,且只有一个数字

1、所以先画数字

2、当三角形为n层的时候,第i层有5个空格(无视)

3、 第i层的起始数字为1

4、当三角形为n层的时候,第i层有i个数字

所以主要代码为

for i in range(1, n + 1):   #注意冒号
    for j in range(1, i + 1): #注意冒号

 

 完整代码为:

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

效果如下:

 

模式B

1、先画数字

2、当三角形为n层的时候,第i层有0个空格(无视)

3、第i层起始数字是1

4、当三角形为n层的时候,第i层有n-i+1个数字(后面取不到,i要变成i+2 多一位数)

所以主要代码如下:

for i in range(1, n + 1):
    for j in range(1, n - i + 2):  # 后面取不到,i要变成i+2 多一位数

整体代码:

n = int(input("请输入三角形层数"))
for i in range(1, n + 1):
    for j in range(1, n - i + 2):  # 后面取不到,i要变成i+2 多一位数
        print(f"{j}\t", end="")
    print() #进行换行操作

效果如图:

模式C:

1、 先画空格(明显前面有5个空格)

2、当三角形为n层的时候,第i层有n-i个空格

3、第i层起始数字是i(1层为1个,2层为2个.......依此类推)

4、当三角形为n层的时候,第i层有i个数字

主要代码如下:

for i in range(1, n + 1):
    for _ in range(n - i):
    for j in range(i, 0, -1):

 全部完整代码:

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

效果:

模式D:

1、先画空格

2、当三角形为n层的时候,第i层有i-1个空格

3、第i层起始数字是1

4、当三角形为n层的时候,第i层有n-i+1个数字(注意到时候range特性)

主要代码:

for i in range(1, n + 1):
    for _ in range(i - 1):
    for j in range(1, n - i + 2, 1):  # 因为range的特性后面的1取不到 所以再加个1

全部代码如下:

n = int(input("请输入三角形层数"))
for i in range(1, n + 1):
    for _ in range(i - 1):
        print(f"\t", end="")
    for j in range(1, n - i + 2, 1):  # 因为range的特性后面的1取不到 所以再加个1
        print(f"{j}\t", end="")
    print()

效果如图:

 

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值