Python 具有多个打印行的if语句中出现意外缩进错误

Python 具有多个打印行的if语句中出现意外缩进错误,python,indentation,Python,Indentation,在python launcher中运行python脚本时,会收到以下错误消息: , line 45 print([l[0] for l in e]) ^ IndentationError: unexpected indent 这是它所指的第二个代码: flag = 0 num_comb = 1 comb = [c for i in range(len(menu)+1) for c in combinations(menu, i)] for e in comb: if sum(l[1]

在python launcher中运行python脚本时,会收到以下错误消息:

, line 45
print([l[0] for l in e])
^
IndentationError: unexpected indent
这是它所指的第二个代码:

flag = 0
num_comb = 1
comb = [c for i in range(len(menu)+1) for c in combinations(menu, i)]

for e in comb:
    if sum(l[1] for l in e) == maxSugar:
        print "The combination number " + str(num_comb) + " is:\n" 
        print([l[0] for l in e])
        print "\n\n\n"
        num_comb += 1 
        flag = 1

if flag == 0:
    print "there are no combinations of dishes for your sugar intake... Sorry! :D "

你知道为什么它会给我一个错误吗?如果我只包含一个print语句
print([l[0]表示l in e])
程序运行正常!我是python新手,所以不确定是否允许在
if
块中包含多个
print
语句。我不明白为什么不

这个错误主要是由于缩进中的制表符和空格混合造成的。除此之外,我想知道在某些情况下,当您使用版本2样式的打印语句时,您的代码是否可以在python3中运行。

您使用的是什么版本的Python?您似乎同时调用了print命令的2.*和3.*变体,这可能是您的问题的一部分。您混合了一些python版本
print()
print
。您使用的是哪种Python版本?如果blockVersion为3.3,请确保在第一个
中没有混合制表符和空格。我只是将file.py拖到python启动程序中。有没有更专业、更感性的方式来启动.py脚本?@PaoloMoretti我检查了我的缩进,似乎是正确的。我已经用Tabso缩进了整个脚本你建议怎么做?如果你能简单地解释一下print和print()之间的区别,我建议:1)用4个空格替换所有制表符,2)如果你真的使用python 3(即print(“某物”)而不是print“某物”)的话,用括号写所有print语句,现在看来效果不错!非常感谢。所以3.*中唯一的区别是打印是一个函数,但您仍然可以使用
+
符号等进行连接?您只需要包含
()
。另外,您是否更喜欢较旧的2.7 python?每个人似乎都有点反对这个新版本,不客气:-)如果你投票/接受对你有帮助的答案,我会很高兴的。对于Python3:我喜欢它,但是我使用的一些库没有迁移到版本3,但是我分别使用Python2启动了项目,不想花时间迁移整个项目。