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