python - 语法错误: unexpected EOF while parsing when using function split in Python

标签 python

我已经学习了c和c++,这些天我正在尝试学习python...但是我遇到了一个我无法理解的问题...

a,b = input().split()
print(a)
print(b)

如果我执行这个短代码,“SyntaxError:解析时出现意外的 EOF”,这是我收到的错误消息...我已经查找了具有相同错误消息的问题,但它没有解决我的问题.. .

为了理解这个问题,我尝试了各种方法,并且发现了一些我觉得有点奇怪的东西......

a = input()
print(a)

如果我执行这段代码,当我输入整数值时它运行良好,但是当我输入字符串时,会出现“SyntaxError:无效语法”这种错误消息...

我做错了什么吗?或者是否有一些我不知道的事情使得这段代码在我看来是完美的,而这确实是错误的?

最佳答案

这是您的代码:

$ cat a.py
a,b = input().split()
print(a)
print(b)

我们先在python3下运行一下:

$ python3 a.py 
1 2
1
2

(1 2 是我在提示符处输入的内容。)

这是在 python2 下运行的相同代码:

$ python2 a.py 
1 2
Traceback (most recent call last):
  File "a.py", line 1, in <module>
    a,b = input().split()
  File "<string>", line 1
    1 2
      ^
SyntaxError: unexpected EOF while parsing

这显示了您报告的相同错误。

问题是 input 在 python3 中的含义与在 python2 中不同。在 python3 下,input 只是作为字符串读入用户输入的内容。在 python2 下,input 都读取用户输入并对其进行评估。

为了使代码在 python2 下和 python3 下一样工作,我们需要将 input 替换为 raw_input:

$ cat b.py
a,b = raw_input().split()
print(a)
print(b)

并且,观察:

$ python2 b.py
1 2
1
2

如果你有选择,你应该使用 python3。 Python2 即将结束生命。

关于python - 语法错误: unexpected EOF while parsing when using function split in Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48182809/

相关文章:

python - 在 Python 中将对象保存到 JSON 或 XML 文件中

python - 根据包含空值的其他列使用掩码设置值

python - Django 更改 Photologue 的应用程序名称

python - 在Python中简单添加

python - flask 。 App 上下文和获取 db.session 的新线程。应用程序未在数据库实例上注册并且没有应用程序绑定(bind)到当前上下文

从不同长度的列中提取 Python 箱线图

python - 集成导致TypeError : 'numpy.float64' object cannot be interpreted as an integer

python - 以完整的方式重组数据框

python - 带有来自日期时间向量的时间箱的直方图

python - 我的 pandas 数据框中有两列。一列有一些相同的值(id),另一列中的相应值有票数