我执行了一个程序来输入n个以空格分隔的整数作为输入,创建一个元组,并在它们上使用hash()。
print(hash(tuple(map(int, input().split(" ")))))
我正在使用Pycharm IDLE。 输入数字后执行并按下我在以下代码中的一行中得到答案:
print(input()==0 or hash(tuple(map(int,input().split()))))
但是在我按下以下代码中的输入后,指针移动到新行,然后我必须再次按回车。
我的问题是: 1)为什么我必须在第二个中按两次输入。 2)Python是将输入作为输入还是作为空输入。
干跑将澄清我的许多怀疑。
答案 0 :(得分:1)
正如其他人已经说过的那样,你在运行代码时必须按两次输入
print(input()==0 or hash(tuple(map(int,input().split()))))
只是因为你两次调用input
函数。可以使用一个简单的示例重现此行为
>>> input(), input()
pressed enter once
pressed enter twice
('pressed enter once', 'pressed enter twice')
>>>
由于您只想要求用户输入一次,您需要将第一次调用的结果保存到变量中的input
:
>>> var = input(); print(var == 0 or hash(tuple(map(int, var.split()))))
3527539
>>>
另外,正如其他人已经说过的那样,我不确定你为什么试图在一行上编写代码。是的,编写简洁的代码并不是一个糟糕的目标,只要该代码仍然可读。通常,在多行之间划分代码会更好(在您的情况下,必要时)。