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

按升序和逆序打印正整数范围-Python,python,range,reverse,Python,Range,Reverse,我想通过用户输入int(input()),将输出打印为正数的回文三角形(不带0): 或者像这样的固定范围: 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 这是你想要的吗?我

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

或者像这样的固定范围:

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

这是你想要的吗?我们不是硬编码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

您的索引只是稍微偏离了一点:

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

很好的花式工作与这些范围和splats。我看切片没有什么问题

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

很好的花式工作与这些范围和splats。我看切片没有什么问题

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

很酷,谢谢。你能详细说明在打印的第二个范围内传递的参数吗:似乎是零造成了差异。np!在Python中,当您有
range(x,y,z)
range(x,y)
时,迭代器的结束点
y
不包括在内。如果设置为
-1
,迭代将在0处停止,如果设置为
0
,迭代将在
1
:)非常酷,谢谢。你能详细说明在打印的第二个范围内传递的参数吗:似乎是零造成了差异。np!在Python中,当您有
range(x,y,z)
range(x,y)
时,迭代器的结束点
y
不包括在内。如果设置为
-1
,迭代将停止在0,如果设置为
0
,迭代将停止在
1
:)谢谢,如果您可以详细说明的话,我错过了切片部分。在我的示例中:
*范围(n-1,-1,-1)[:-1]
简单地切断范围中
-1
第n个(最后一个)位置之后的所有内容。谢谢。我发现结果只有4,即使*范围(1,n+1)应该包含所有内容,因此用户输入是理想的方式。谢谢,如果您可以详细说明的话,我错过了切片部分。在我的示例中:
*范围(n-1,-1,-1)[:-1]
简单地切断
-1
第n个(最后一个)之后的所有内容位置在范围内。谢谢。我看到结果只有4,即使*范围(1,n+1)应该包含所有内容,因此用户输入是理想的方式。谢谢,是的,理想情况下希望有用户输入,但保持范围为正数。谢谢,是的,理想情况下希望有用户输入,但要保持范围为正数。如果有人想知道星号的语法和用途,Python文档会解释:“如果syntax*表达式出现在函数调用中,表达式的计算结果必须是iterable。”如果有人想知道星号的语法和用途,Python文档会解释:如果函数调用中出现syntax*表达式,则表达式的计算结果必须为iterable