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