Python解析时出现意外的EOF

Python解析时出现意外的EOF,python,eof,python-2.x,Python,Eof,Python 2.x,这是我的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 Lat

这是我的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
>>> 
>
例:3月21日|几号?
回溯(最近一次呼叫最后一次):
文件“C:\Users\Daniel\Desktop\Solar Declination Calculator.py”,第2行,在
日期=输入(“例如:3月21日|日期是什么?”)
文件“”,第0行
^
SyntaxError:分析时出现意外的EOF
>>> 

缩进它第一。这将解决您的
语法错误

除此之外,您的程序中还有几个其他问题


  • 当您想要接受字符串作为输入时,请使用
    raw\u input
    input
    只接受Python表达式,并对它们执行
    eval

  • 您正在脚本中使用某些8位字符,如
    。您可能需要使用通常称为编码cookie的
    #-*-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":

    ....

缩进它第一。这将解决您的
语法错误

除此之外,您的程序中还有几个其他问题


  • 当您想要接受字符串作为输入时,请使用
    raw\u input
    input
    只接受Python表达式,并对它们执行
    eval

  • 您正在脚本中使用某些8位字符,如
    。您可能需要使用通常称为编码cookie的
    #-*-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":

    ....

使用
raw_input
代替
input
:)

如果使用
输入
,则 类型被解释为Python 表达式表示您 以gawd结束知道什么类型的 对象,以及 大量的例外情况 这是可以产生的。所以你应该 使用
输入
,除非您正在输入 临时测试的东西 只能由了解某个问题的人使用 关于Python表达式

raw\u input
始终返回字符串 因为,见鬼,你总是这样 输入。。。但是你可以很容易地 将其转换为所需的特定类型 想要,抓住具体的 可能发生的例外情况。有希望地 有了这样的解释,这是一个错误 知道你应该选哪一个是不需要动脑筋的 使用


注意:这仅适用于Python 2。对于Python3,
raw\u input()
已变为普通的
input()
,Python2
input()
已被删除。

使用
raw\u input
而不是
input
:)

如果使用
输入
,则 类型被解释为Python 表达式表示您 以gawd结束知道什么类型的 对象,以及 大量的例外情况 这是可以产生的。所以你应该 使用
输入
,除非您正在输入 临时测试的东西 只能由了解某个问题的人使用 关于Python表达式

raw\u input
始终返回字符串 因为,见鬼,你总是这样 输入。。。但是你可以很容易地 将其转换为所需的特定类型 想要,抓住具体的 可能发生的例外情况。有希望地 有了这样的解释,这是一个错误 知道你应该选哪一个是不需要动脑筋的 使用


注意:这仅适用于Python 2。对于Python3,
raw_input()
已变为普通的
input()
,而Python2
input()
已被删除。

您可以尝试的是使用normal
input
命令将代码编写为Python的普通代码。然而,诀窍是在编程开始时添加命令
input=raw\u input

现在,您所要做的就是禁用(或启用),这取决于您是在Python/IDLE还是在Terminal中运行。您只需在需要时添加“#”

已关闭以在Python/IDLE中使用

    #input=raw_input 
当然,在终端中使用时会打开

    input=raw_input 

我不确定它是否会一直工作,但对于简单的程序或脚本来说,这是一个可能的解决方案。

您可以尝试使用normal
input
命令将代码编写为python的普通代码。然而,诀窍是在编程开始时添加命令
input=raw\u input

现在,您所要做的就是禁用(或启用),这取决于您是在Python/IDLE还是在Terminal中运行。您只需在需要时添加“#”

已关闭以在Python/IDLE中使用

    #input=raw_input 
当然,在终端中使用时会打开

    input=raw_input 

我不确定它是否会一直工作,但对于简单的程序或脚本来说,这是一个可能的解决方案。

我遇到了同样的问题,我发现了问题所在。当我们使用方法输入时,我们应该键入的响应应该是双引号。就像你的队伍一样
date=input(“例如:3月21日|日期是什么?”)

当控制台提示“12/12/2015”时,您应该键入-注意前后的
内容。这样,它会将其作为字符串并按预期处理。我不确定这是否是此
输入方法的限制-但它是这样工作的


希望有帮助

我遇到了同样的事情,我发现
`    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 `
try :
 ....
except Exception as e:
 ....
if sys.version_info < (3, 0):
    input = raw_input