【发布时间】:2013-04-16 19:41:26
【问题描述】:
我正在用 python 编写一个系统发育树程序,我遇到了一个我以前没有遇到过的小问题,我已经研究过了,没有什么能完全描述我遇到的问题,我从中得到一个语法错误代码:
for x in range(len(matrix)):
# Print the label
print(seq0[x-1], end == ' ') if x > 0 else print( ' ', end == '')
错误提示:
File "/home/brandon/OptimalAlignmentSensitive.py", line 206
print(seq0[x-1], end == ' ') if x > 0 else print( ' ', end == '')
它指向第二个打印语句中的't'。有没有其他人有这个问题?我不明白该怎么做我尝试添加空格等,但没有任何帮助。
【问题讨论】:
-
像这样滥用三元表达式是个坏主意,请使用普通的
if语句。按索引循环也是一个非常糟糕的主意。 -
seq0[x-1]是否始终存在? (也适用于x = 0和x-1 = -1) -
@TVproductions 查看正在执行的测试,该代码仅在
x > 0时才会执行。 -
在我看来,您的 if 语句格式不正确。试试:pych.atomidata.com/code
-
顺便说一句,这在 Python 3 中有效,在 Python 2 中无效。我假设代码检查器仅适用于 Python 2 代码,因为它标记了错误。这是因为在 Python 3 中,
print是一个函数。