解析时Python意外的EOF

新手上路,请多包涵

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

原文由 Web_Designer 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 452
1 个回答

使用 raw_input 而不是 input :)

如果您使用 input ,那么您键入的数据将被解释为 Python 表达式,这意味着您最终得到 gawd 知道目标变量中的对象类型,以及大量的异常可以生成。所以你 应该使用 input 除非你把一些东西放在临时测试中,只供对 Python 表达式有一点了解的人使用。

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

参考

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

原文由 simon 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏