Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python解析时出现意外的EOF。输入数学运算符的问题_Python_Python 3.x - Fatal编程技术网

Python解析时出现意外的EOF。输入数学运算符的问题

Python解析时出现意外的EOF。输入数学运算符的问题,python,python-3.x,Python,Python 3.x,谢谢大家的帮助和时间。这似乎是我自己的问题。当我运行代码时,我使用的是Python 2而不是Python 3。很抱歉。 我正在学习一些python基础知识,在编写一个简单的计算器时遇到了这个错误。下面的代码是我在GitHub上找到的测试代码,应该可以正常工作。但是,每次让用户输入其特定操作时,我都会收到一个错误。例1。我开始我的代码,2。我输入一个数字,3。我输入操作(即+,-,*,/),然后代码中断 我正在使用Atom和一个终端包,它允许我使用终端从Atom内部运行脚本。如果我输入“+”而不是

谢谢大家的帮助和时间。这似乎是我自己的问题。当我运行代码时,我使用的是Python 2而不是Python 3。很抱歉。

我正在学习一些python基础知识,在编写一个简单的计算器时遇到了这个错误。下面的代码是我在GitHub上找到的测试代码,应该可以正常工作。但是,每次让用户输入其特定操作时,我都会收到一个错误。例1。我开始我的代码,2。我输入一个数字,3。我输入操作(即+,-,*,/),然后代码中断

我正在使用Atom和一个终端包,它允许我使用终端从Atom内部运行脚本。如果我输入“+”而不是“+”,那么代码将继续并按我希望的方式执行。我对python还是很陌生,所以修复可能很简单

num1 = input("Hello, What is your First Number?\n")
operation = input("Operation?\n")
num2 = input("Your Second Number?\n")

floatnum1 = float(num1)
floatnum2 = float(num2)

if operation == "+":
    output = floatnum1+floatnum2
if operation == "-":
    output = floatnum1-floatnum2
if operation == "*":
    output = floatnum1*floatnum2
if operation == "/":
    output = floatnum1/floatnum2

print("Your Answer: "+str(output)) 
以下是错误:

python simplecalctest.py
Hello, What is your First Number?
2
Operation?
+
Traceback (most recent call last):
  File "simplecalctest.py", line 2, in <module>
    operation = input("Operation?\n")

  File "<string>", line 1
    +
    ^
SyntaxError: unexpected EOF while parsing

我只想简单地输入+、-、*,而不必把它们放在“x”中。任何帮助都将不胜感激

问题在于您将用户的输入作为代码进行评估,而不是将输入作为字符串保存。您可以在对输入调用
eval
时执行此操作。
input
函数将用户的输入作为字符串返回,
eval
获取字符串并作为代码执行

因此,例如,如果用户自己输入加号
+
,则您的代码基本上将按以下方式运行:

operation = +
这不是有效的Python代码

如果用户在引号
“+”
中输入加号,则代码工作的原因是,这样您的代码将按以下方式运行:

operation = "+"
这是有效的代码

您可以通过更改以下内容来解决此问题:

operation = eval(input("Operation?\n"))


一般来说,您不应该盲目地评估用户输入,因为这可能会很危险。

我认为您没有使用Python 3…您显示的代码与回溯不匹配:您在正在运行的代码中使用
eval(input(…)
,而在发布的代码中使用
input(…)
。您可能需要再次检查您运行的代码版本是否与您认为的相同。只是不要使用
eval
。和Python2:使用
raw\u输入
:问题已修复。您还可以查看simpleeval.py或其他表达式计算器。您的代码在使用Python 3时运行良好。好的,我是bafoon。我是通过使用命令“pythonsimplecaltest.py”而不是“python3simplecaltest.py”来运行程序的。谢谢大家的输入!谢谢你的回复!我按照你的建议更改了那行代码,但仍然会得到相同的错误。
operation = eval(input("Operation?\n"))
operation = input("Operation?\n")