提问人:Web_Designer 提问时间:2/22/2011 最后编辑:Karl KnechtelWeb_Designer 更新时间:9/3/2022 访问量:495723
解析 [duplicate] 时 Python 意外的 EOF
Python unexpected EOF while parsing [duplicate]
问:
这是我的 python 代码。有人可以告诉我它有什么问题吗?
while 1:
date=input("Example: March 21 | What is the date? ")
if date=="June 21":
sd="23.5° North Latitude"
if date=="March 21" | date=="September 21":
sd="0° Latitude"
if date=="December 21":
sd="23.5° South Latitude"
if sd:
print sd
这是发生的事情:
>>>
Example: March 21 | What is the date?
Traceback (most recent call last):
File "C:\Users\Daniel\Desktop\Solar Declination Calculater.py", line 2, in <module>
date=input("Example: March 21 | What is the date? ")
File "<string>", line 0
^
SyntaxError: unexpected EOF while parsing
>>>
答:
缩进它!第一。那会照顾你的.SyntaxError
除此之外,您的程序中还有其他几个问题。
当您希望接受字符串作为输入时使用。 只接受 Python 表达式,并对它们执行操作。
raw_input
input
eval
您在脚本中使用了某些 8 位字符,例如 .您可能需要使用通常称为 coding-cookie 的行在脚本顶部定义编码。
0°
# -*- coding:latin-1 -*-
此外,在进行 str 比较时,请规范化字符串并进行比较。(使用 lower() it 的人)这有助于在用户输入方面提供很少的灵活性。
我还认为阅读 Python 教程可能对您有所帮助。:)
示例代码
#-*- coding: latin1 -*-
while 1:
date=raw_input("Example: March 21 | What is the date? ")
if date.lower() == "march 21":
....
评论
SyntaxError
input
使用代替:)raw_input
input
如果使用 ,则数据 type is 被解释为 Python 表达式,这意味着你 最终得到 Gawd 知道什么类型的 对象,以及 各种各样的例外情况 可以生成。所以你不应该使用,除非你把 一些用于临时测试的东西,以 仅由知道 关于 Python 表达式的位。
input
input
raw_input
始终返回一个字符串 因为,哎呀,这就是你一直以来的 输入...但是你可以很容易地 将其转换为您所在的特定类型 想要,并抓住具体的 可能发生的异常。希望 有了这个解释,这是一个 不费吹灰之力就知道你应该做什么 用。
注意:这仅适用于 Python 2。对于 Python 3,已变得简单,并且 Python 2 已被删除。raw_input()
input()
input()
评论
/usr/bin/python
/usr/bin/python3
input
File "<string>"
input
您可以尝试使用 normal 命令像往常一样为 python 编写代码。但是,诀窍是在编程开始时添加命令。input
input=raw_input
现在,您所要做的就是禁用(或启用),具体取决于您是在 Python/IDLE 还是终端中运行。只需在需要时添加“#”即可。
关闭以在 Python/IDLE 中使用
#input=raw_input
当然,还可以在终端中使用。
input=raw_input
我不确定它是否总是有效,但它是简单程序或脚本的可能解决方案。
我遇到了同样的事情,我弄清楚了问题所在。当我们使用方法输入时,我们应该输入的响应应该用双引号引起来。就像在你的生产线上一样date=input("Example: March 21 | What is the date? ")
您应该在控制台“12/12/2015”上出现提示时键入 - 注意之前和之后的事情。这样,它将把它作为一个字符串,并按预期进行处理。我不确定这是否是这种方法的局限性 - 但它是这样工作的。"
input
希望对您有所帮助
虽然@simon的答案在 Python 2 中最有用,但在 Python 3 中却不存在。我建议执行以下操作,以确保您的代码在 Python 2 和 Python 3 中同样有效:raw_input
首先,pip install future:
$ pip install future
第二:从 future.builtins 导入输入
# my_file.py
from future.builtins import input
str_value = input('Type something in: ')
对于上面列出的具体示例:
# example.py
from future.builtins import input
my_date = input("Example: March 21 | What is the date? ")
在第一个 if 语句之后,而不是键入“if”,键入“elif”,然后它应该可以工作。
前任。
` while 1:
date=input("Example: March 21 | What is the date? ")
if date=="June 21":
sd="23.5° North Latitude
elif date=="March 21" | date=="September 21":
sd="0° Latitude"
elif date=="December 21":
sd="23.5° South Latitude"
elif sd:
print sd `
在调用函数之前,请检查函数的所有参数是否都已定义。 我在练习 Kaggle 时遇到了这个问题。
我试图笼统地回答,与这个问题无关,当您将语法分成两半而忘记另一半时,通常会发生此错误。就像我的情况一样:
try :
....
由于 Python 正在搜索
except Exception as e:
....
但它遇到了 EOF(文件结束),因此出现了错误。看看你是否能在代码中找到任何不完整的语法。
我正在使用以下代码来获得 Python 2 和 3 兼容性
if sys.version_info < (3, 0):
input = raw_input
我遇到了这个错误,因为一行上缺少右括号。
我开始有一句台词有问题:在我的剧本末尾。invalid syntax (<string>, line ...)?
我删除了那行,然后收到了EOF消息。
评论
检查编译器的版本。
- 如果您正在处理 Python2,请使用 -
n= raw_input("Enter your Input: ")
- 如果您正在处理 python3,请使用 -
n= input("Enter your Input: ")
上一个:C 中的文件结束 (EOF)
下一个:eof() 不好的做法?[复制]
评论