正整数升序和倒序打印范围 - Python

Print range of positive integers ascending and reverse order - Python

我想通过用户输入 int(input()):

将输出打印为正数回文三角形(不带 0)
for i in range(1,int(input())+1):
   print(*range(1, i+1),(*range(i-1, -1, -1)))

或像这样的固定范围:

for n in range(1,5):
  print(*range(1, n+1),(*range(n-1, -1, -1))

我可以让后者工作至此,但我希望它没有 0。另外两个问题:1) 用户输入的 5 是否与范围内的硬编码 5 相同? 2)如何将5包括在输出中?知道如何做到这一点吗?提前致谢。

1 0
1 2 1 0
1 2 3 2 1 0
1 2 3 4 3 2 1 0

这是你想要的吗?我们不是硬编码 5,而是询问用户的输入。并对索引进行了轻微修改。

for i in range(1,int(input("Enter number : "))+1):
    print(*range(1,i+1), *range(i-1,-1,-1))

输出:

Enter number : 7
1 0
1 2 1 0
1 2 3 2 1 0
1 2 3 4 3 2 1 0
1 2 3 4 5 4 3 2 1 0
1 2 3 4 5 6 5 4 3 2 1 0
1 2 3 4 5 6 7 6 5 4 3 2 1 0

您的索引有点偏差:

user_range = int(input("Desired limit : ")) + 1

for n in range(1, user_range):
  print(*range(1, n+1),(*range(n-1, 0, -1)))

输出:

1
1 2 1
1 2 3 2 1
1 2 3 4 3 2 1
1 2 3 4 5 4 3 2 1

这些音域和拼音效果不错。我没发现切片有什么问题。

for n in range(1,5):
  print(*range(1, n+1), *range(n-1, -1, -1)[:-1])

其他人也这么说,而且看起来效果一样:

for n in range(1,5):
  print(*range(1, n+1), *range(n-1, 0, -1))