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

时间:2018-11-11 01:44:15

标签: python range reverse

我想通过用户输入kubectl将输出打印为正数回文三角形(不带0):

int(input())

或像这样的固定范围:

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

我可以让后者工作到这个程度,但是我希望它没有0。另外两个问题:1)用户输入的5与范围内的硬编码5是否相同? 2)如何获得输出中包含的5个?知道如何做到这一点吗?预先感谢。

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

3 个答案:

答案 0 :(得分:4)

您的索引编制过时了:

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

答案 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

答案 2 :(得分:0)

使用这些范围和splat可以很好地工作。我没发现切片有什么问题。

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