python - 无法解释的语法/EOF 错误
问题描述
我的打印命令中不断出现语法错误(这就是括号位于底部的原因),如果我尝试运行代码,我还会收到文件结束错误(解析时文件意外结束)。
我在打印语句上放了一个括号,我尝试重新输入代码但没有成功。
print ("input a number")
a = (str(input(''))
if 9 in (a)
(b = a.count('9')
if 8 in (a)
(c = a.count('8')
if 7 in (a)
(d = a.count('7')
if 6 in (a)
(e = a.count('6')
if 5 in (a)
(f = a.count('5')
if 4 in (a)
(g = a.count('4')
if 3 in (a)
(h = a.count('3')
if 2 in (a)
(i = a.count('2')
if 1 in (a)
(j = a.count('1')
if 0 in (a)
(k = a.count('0')
(print("the highest number you can make is", 9*b, 8*c, 7*d, 6*e, 5*f, 4*g, 3*h, 2*i, 1*j, 0*k)
File "/home/ubuntu/workspace/SuPeRsIzE.py", line 26
^
SyntaxError: unexpected EOF while parsing
请注意,代码只有 25 行长——我什至还没有打开到 26 行
---------------------------------------------------------------------------
File "/home/ubuntu/workspace/SuPeRsIzE.py", line 25
print("the highest number you can make is", 9*b, 8*c, 7*d, 6*e, 5*f, 4*g, 3*h, 2*i, 1*j, 0*k)
^
SyntaxError: invalid syntax
如果我从打印语句中删除括号,这就是我得到的。
解决方案
所以,语法错误实际上是因为你没有结束你的if
语句,而且你在块:
的每一行都有一堆开括号。if
您可能想查看基本 Python 语法的教程。
语法错误不会立即发生的原因是 Python 的工作方式。如果我们删除换行符:
if 9 in (a)(b = a.count('9') if 8 in (a)(c = a.count('8') ...
它的作用是尝试测试是否9
在正确的表达式中,这是一个函数调用。它尝试调用a
关键字参数b
等于的函数a.count('9') if <expr> else <expr>
,这是 Python 的三元表达式语法。在最后,它说“意外的 EOF”,因为它期望更多的右括号,因为你打开了很多一开始甚至不应该存在的括号。如果你把它们都放进去,它会说“无效的语法”,因为它需要else
语句来完成三元表达式。
推荐阅读
- javascript - 在 NodeJS 中安排一个异步函数
- ios - 如何在滑动 PageViewController 的页面时保存用户输入数据?
- javascript - 使用链接 onClick() 切换传递给函数的值以对数据库结果顺序 ASC 或 DESC 进行排序
- sass - SASS 组父选择器
- vue.js - 如何从路由器视图发出组件的方法?
- javascript - FullCalendar:如何在新标签/窗口日历视图中打开事件?
- node.js - 如何停止 pm2 web 命令?
- html - 为什么我不能保存模板的scss文件?
- python - Python mock:如何模拟从正在测试的类方法调用的类
- javascript - 单击确定将 VueDraggable 模型数据传回 b-modal