如何在没有空格的单行中打印python中从1到n的数字


print(*range(1, int(input())+1), sep='') 

这是我在一次关于黑客等级的讨论中发现的代码。但我不明白。有人能解释一下吗?

所以,据我所知,这就是它的工作方式:

int(input())

这将接受用户的输入。下一个

range(1,...+1)

这创建了一个从1到我们之前输入的数字的范围。+1表示它将包括最大数字。然后:

print(*...,sep='')

据我所知,*符号只是有效地返回我们范围内的每个值——一个要打印的值。CCD_ 2只是意味着每个值被CCD_。

希望这对你有用。

[编辑]

更多关于星星和双星的表达:星形和双星运算符在函数调用中是什么意思?

好的,我们有print函数。在里面,我们有一个奇怪的*range(1, int(input())+1),这是一个范围函数,它以范围对象的形式返回从1到n的值(n在input中键入(。*将此对象解压缩为类似于:带有空格的1 2 3 4 ...的形式,因此我们有这个sep=",关键字参数,它将空格分隔为"(两者之间没有分隔符(
你也可以这样做:

n = input("Type integer value: ")
try:
[print(x+1,end="") for x in range(int(n))]
except ValueError:
exit("Typed string not number")

最新更新