为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

qq_遁去的一_1 2021-05-30 11:45:23
有人会审查这些代码行并向我解释什么地方出问题吗?为什么会出现乘法语句错误?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
查看完整描述

2 回答

?
皈依舞

TA贡献1851条经验 获得超3个赞

至于说在这里,你不能在一个外壳线使用多个语句。


为每个语句使用新行


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]


查看完整回答
反对 回复 2021-06-01
?
慕仙森

TA贡献1827条经验 获得超8个赞

我只在这里假设。如果这是您的代码:


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)]


查看完整回答
反对 回复 2021-06-01
  • 2 回答
  • 0 关注
  • 186 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号