如何在不带空格的单行中打印 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")