Python 解析时出现意外的 EOF [重复]

2025-02-18 09:25:00
admin
原创
35
摘要:问题描述:这是我的 Python 代码。有人能告诉我它有什么问题吗?while 1: date=input("Example: March 21 | What is the date? ") if date=="June 21": sd=...

问题描述:

这是我的 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:UsersDanielDesktopSolar 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
>>> 

解决方案 1:

使用raw_input而不是input:)

如果您使用input,那么您输入的数据将被解释为Python 表达式,这意味着您最终会知道目标变量中的对象类型,并且可能会生成大量异常。因此,
除非您要放入某些内容进行临时测试,否则不应使用input,只有对 Python 表达式有所了解的人才能使用。

raw_input总是返回一个字符串,因为,哎呀,这就是你总是输入的内容……但你可以轻松地将其转换为你想要的特定类型,并捕获可能发生的特定异常。希望通过这样的解释,你能够轻而易举地知道应该使用哪一个。

参考

注意:这仅适用于 Python 2。对于 Python 3,raw_input()已变得简单input()并且 Python 2input()已被删除。

解决方案 2:

首先缩进!这样可以解决你的问题SyntaxError

除此之外,您的程序中还有其他一些问题。

  • raw_input当您想要接受字符串作为输入时使用。input仅接受 Python 表达式并对其执行操作eval

  • 您在脚本中使用了某些 8 位字符,例如。您可能需要在脚本顶部使用# -*- coding:latin-1 -*-通常称为 coding-cookie 的行来定义编码。

  • 另外,在进行 str 比较时,对字符串进行规范化并进行比较。(人们使用 lower() 它)这有助于降低用户输入的灵活性。

  • 我还认为阅读 Python 教程可能会对您有帮助。:)

示例代码

#-*- coding: latin1 -*-

while 1:
    date=raw_input("Example: March 21 | What is the date? ")
    if date.lower() == "march 21":

    ....

解决方案 3:

我遇到了这个错误,因为一行中缺少一个右括号。

invalid syntax (<string>, line ...)?
我一开始对脚本末尾的一行字感到困惑

我删除了该行,然后收到了 EOF 消息。

解决方案 4:

我正在使用以下代码来获得 Python 2 和 3 兼容性

if sys.version_info < (3, 0):
    input = raw_input

解决方案 5:

虽然 @simon 的答案在 Python 2 中最有帮助,但raw_input在 Python 3 中却不存在。我建议执行以下操作以确保您的代码在 Python 2 和 Python 3 中同样有效:

首先,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? ")

解决方案 6:

我试图回答一般性问题,与这个问题无关,这个错误通常发生在您将语法分成两半并忘记另一半时。就像我的情况一样:

try :
 ....

因为 python 正在寻找一个

except Exception as e:
 ....

但遇到了 EOF(文件结束符),因此出现错误。看看你的代码中是否有不完整的语法。

解决方案 7:

我遇到了同样的问题,我弄清楚了问题所在。当我们使用方法输入时,我们应该输入的响应应该用双引号引起来。就像你那行
date=input("Example: March 21 | What is the date? ")

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

希望有帮助

解决方案 8:

在第一个 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 `

解决方案 9:

您可以尝试使用常规命令像往常一样为 Python 编写代码input。不过,诀窍是在程序开头添加命令input=raw_input

现在您要做的就是根据您是在 Python/IDLE 还是终端中运行来禁用(或启用)。您只需在需要时添加“#”即可。

在 Python/IDLE 中关闭使用

    #input=raw_input 

当然,也可以在终端中使用。

    input=raw_input 

我不确定它是否总是有效,但它对于简单的程序或脚本来说是一个可能的解决方案。

解决方案 10:

检查你的编译器的版本。

  1. 如果你正在处理 Python2,那么使用 -

n= raw_input("Enter your Input: ")

  1. 如果你正在处理 python3,请使用 -

n= input("Enter your Input: ")

相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1325  
  IPD(Integrated Product Development)流程作为一种先进的产品开发管理模式,在众多企业中得到了广泛应用。它涵盖了从产品概念产生到产品退市的整个生命周期,通过整合跨部门团队、优化流程等方式,显著提升产品开发的效率和质量,进而为项目的成功奠定坚实基础。深入探究IPD流程的五个阶段与项目成功之间...
IPD流程分为几个阶段   4  
  华为作为全球知名的科技企业,其成功背后的管理体系备受关注。IPD(集成产品开发)流程作为华为核心的产品开发管理模式,其中的创新管理与实践更是蕴含着丰富的经验和深刻的智慧,对众多企业具有重要的借鉴意义。IPD流程的核心架构IPD流程旨在打破部门墙,实现跨部门的高效协作,将产品开发视为一个整体的流程。它涵盖了从市场需求分析...
华为IPD是什么   3  
  IPD(Integrated Product Development)研发管理体系作为一种先进的产品开发模式,在众多企业的发展历程中发挥了至关重要的作用。它不仅仅是一套流程,更是一种理念,一种能够全方位提升企业竞争力,推动企业持续发展的有效工具。深入探究IPD研发管理体系如何助力企业持续发展,对于众多渴望在市场中立足并...
IPD管理流程   3  
  IPD(Integrated Product Development)流程管理旨在通过整合产品开发流程、团队和资源,实现产品的快速、高质量交付。在这一过程中,有效降低成本是企业提升竞争力的关键。通过优化IPD流程管理中的各个环节,可以在不牺牲产品质量和性能的前提下,实现成本的显著降低,为企业创造更大的价值。优化产品规划...
IPD流程分为几个阶段   4  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用