如何调试Python中的“多语句”错误?

2024-09-27 00:21:19 发布

您现在位置:Python中文网/ 问答频道 /正文

有人能检查一下这些代码行并告诉我出了什么问题吗?为什么会出现乘法语句错误?你知道吗

listOrigin = [10, -15, 3, 8, 0, 9, -6, 13, -1, 5]
listMask = []
for item in listOrigin:
    if item > 0:
        listMask.append(1)
    elif item < 0:
        listMask.append(-1)
    else:
        listMask.append(0)

print(listOrigin)
print(listMask)

错误是:

SyntaxError: multiple statements found while compiling a single statement

Tags: 代码inforif错误语句itemelse
2条回答

我只是假设一下。如果这是您的代码:

listOrigin = [10, -15, 3, 8, 0, 9, -6, 13, -1, 5]
listMask = []
for item in listOrigin:
    if item > 0:
        listMask.append(1)
    elif item < 0:
        listMask.append(-1)
    else:
        listMask.append(0)

print(listOrigin)
print(listMask)

好吧,它起作用了。您需要为语句使用多行。但是,您也可以这样编写代码:

listOrigin = [10, -15, 3, 8, 0, 9, -6, 13, -1, 5]
# Place a 1 if the item is above 0, else a -1. 0 will be flagged as -1.
listMask = [1 if elt > 0 else -1 for elt in listOrigin]
# Place the 0
listMask = [listMask[k] if elt != 0 else 0 for k, elt in enumerate(listOrigin)]

正如前面所说的here,不能在一个shell行中使用多个语句。你知道吗

对每条语句使用新行

listOrigin = [10, -15, 3, 8, 0, 9, -6, 13, -1, 5]
listMask = []
for item in listOrigin:
     if item > 0:
         listMask.append(1)
     elif item < 0:
         listMask.append(-1)
     else:
         listMask.append(0)

print(listOrigin)
print(listMask)

[10, -15, 3, 8, 0, 9, -6, 13, -1, 5]
[1, -1, 1, 1, 0, 1, -1, 1, -1, 1]

相关问题 更多 >

    热门问题