python是否将输入作为输入?

时间:2018-03-08 18:19:10

标签: python output

我执行了一个程序来输入n个以空格分隔的整数作为输入,创建一个元组,并在它们上使用hash()。

print(hash(tuple(map(int, input().split(" ")))))

我正在使用Pycharm IDLE。  输入数字后执行并按下我在以下代码中的一行中得到答案:

print(input()==0 or hash(tuple(map(int,input().split()))))

但是在我按下以下代码中的输入后,指针移动到新行,然后我必须再次按回车。

我的问题是: 1)为什么我必须在第二个中按两次输入。 2)Python是将输入作为输入还是作为空输入。

干跑将澄清我的许多怀疑。

1 个答案:

答案 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
>>> 

另外,正如其他人已经说过的那样,我不确定你为什么试图在一行上编写代码。是的,编写简洁的代码并不是一个糟糕的目标,只要该代码仍然可读。通常,在多行之间划分代码会更好(在您的情况下,必要时)。