按升序和逆序打印正整数范围-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