如何在不带空格的单行中打印 python 中从 1 到 n 的数字?
How do I print numbers from 1 to n in python in a single line without spaces?
print(*range(1, int(input())+1), sep='')
这是我在关于 hacker rank 的讨论中找到的代码。但我不明白。
谁能解释一下?
因此,据我所知,它是这样工作的:
int(input())
这需要用户输入。
接下来;
range(1,...+1)
这将创建从 1 到我们之前输入的数字的范围。 +1 表示它将包括最大数量。
然后:
print(*...,sep='')
*
符号,据我所知,实际上 returns 我们范围内的每个值都将被打印。
sep=''
只是意味着每个值由 ''
分隔或什么都不分隔。
希望这对你有用。
[编辑]
在此 post 中详细了解星号和双星号的表达方式:
What does the star and doublestar operator mean in a function call?
好的,所以我们有 print
功能。在里面我们有一个奇怪的 *range(1, int(input())+1)
这是一个范围函数,它以范围对象的形式 return 从 1 到 n 的值(n 在 input
中键入)。 *
将此对象解压为如下形式:1 2 3 4 ...
和 spaces,所以我们有这个 sep='',关键字参数将 space 分隔为 ''(否之间分开)。
你也可以这样做:
n = input("Type integer value: ")
try:
[print(x+1,end="") for x in range(int(n))]
except ValueError:
exit("Typed string not number")
print(*range(1, int(input())+1), sep='')
这是我在关于 hacker rank 的讨论中找到的代码。但我不明白。 谁能解释一下?
因此,据我所知,它是这样工作的:
int(input())
这需要用户输入。 接下来;
range(1,...+1)
这将创建从 1 到我们之前输入的数字的范围。 +1 表示它将包括最大数量。 然后:
print(*...,sep='')
*
符号,据我所知,实际上 returns 我们范围内的每个值都将被打印。
sep=''
只是意味着每个值由 ''
分隔或什么都不分隔。
希望这对你有用。
[编辑]
在此 post 中详细了解星号和双星号的表达方式: What does the star and doublestar operator mean in a function call?
好的,所以我们有 print
功能。在里面我们有一个奇怪的 *range(1, int(input())+1)
这是一个范围函数,它以范围对象的形式 return 从 1 到 n 的值(n 在 input
中键入)。 *
将此对象解压为如下形式:1 2 3 4 ...
和 spaces,所以我们有这个 sep='',关键字参数将 space 分隔为 ''(否之间分开)。
你也可以这样做:
n = input("Type integer value: ")
try:
[print(x+1,end="") for x in range(int(n))]
except ValueError:
exit("Typed string not number")