python是否将enter作为输入?

python是否将enter作为输入?,python,output,Python,Output,我执行了一个程序,输入n个空格分隔的整数作为输入,创建一个元组,并对它们使用哈希 print(hash(tuple(map(int, input().split(" "))))) 我正在使用Pycharm空闲。 在输入数字并按下后执行时,我会在一行代码中得到答案: print(input()==0 or hash(tuple(map(int,input().split())))) 但在下面的代码中按enter键后,指针将移动到新行,然后我必须再次按enter键 我的问题是: 1为什么我必须在

我执行了一个程序,输入n个空格分隔的整数作为输入,创建一个元组,并对它们使用哈希

print(hash(tuple(map(int, input().split(" ")))))
我正在使用Pycharm空闲。 在输入数字并按下后执行时,我会在一行代码中得到答案:

print(input()==0 or hash(tuple(map(int,input().split()))))
但在下面的代码中按enter键后,指针将移动到新行,然后我必须再次按enter键

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


试运行将澄清我的许多疑问

正如其他人所说,运行代码时必须按enter键两次的原因

print(input()==0 or hash(tuple(map(int,input().split()))))
这仅仅是因为您要调用输入函数两次。这个行为可以用一个简单的例子重现

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

另外,正如其他人已经说过的,我不太清楚为什么您试图在一行上编写代码。是的,只要代码保持可读性,编写简洁的代码并不是一个坏目标。通常情况下,将代码分成多行比较好。

因为在第二行中有两个输入调用?我很确定这只是一个输入错误@DavyM。您要调用输入两次。每次调用它时,它都会读取另一行,这当然需要另一个Enter键。如果要使用同一输入两次,请将其存储在一条语句line=input中的变量中,然后在下一条语句的表达式中使用该变量行。此外,input永远不会等于0。它可能是空字符串,也可能是字符串“0”,但不是数字0。而且,考虑到你的问题陈述和表达式的另一半,它更可能是字符串“1 0 2 5 3”之类的东西,所以…你在这里试图测试什么?最后,是什么让你认为在一行代码中编写这一切是一项要求,甚至是一件好事?如果表达式语句太复杂,您无法理解,如果您必须到StackOverflow寻求帮助,请将其分解为单独的语句。我没有将输入保存在任何位置,我请求输入了两次,但仍然得到了正确的输出。为什么?如果我是对的,python是从左到右运行的,所以第一次执行输入时,我输入一个输出,语句转到或。在这之后,我不输入任何输入,那么如何获得输出?实际上@sachinmata,您的代码似乎只起作用。您的代码为空字符串生成正确的结果,但由于您调用了两次输入,因此使用的是不同的值。即使用户输入不同的值,您的代码也将始终产生相同的结果。运行原始代码时,请尝试为第一个输入提示输入几个随机数,然后按enter键两次。您将发现相同的值-3527539每次都返回。但是为什么它会产生相同的结果呢?在第一次输入期间,未存储输入。所以在内存中没有价值。所有操作均在第二个输入的输入上操作。