Python 缩进块误差

Python 缩进块误差,python,Python,第一个问题是冒号在if条件的末尾,而不是在if之后。因此: 或者更好: if len(table) == 0: print('There are no cards on the table.') 然而,在使用Python2.7和3.3进行测试时,我认为您实际上应该得到一个语法错误,小插入符号指向多余的冒号,而不是缩进错误 这意味着实际的错误是它上面的那条线也做错了什么 下一个问题是,只能使用带有一个冒号的一行快捷方式,而不能使用两个冒号,因此: if len(table) == 0:

第一个问题是冒号在if条件的末尾,而不是在if之后。因此:

或者更好:

if len(table) == 0: print('There are no cards on the table.')
然而,在使用Python2.7和3.3进行测试时,我认为您实际上应该得到一个语法错误,小插入符号指向多余的冒号,而不是缩进错误

这意味着实际的错误是它上面的那条线也做错了什么

下一个问题是,只能使用带有一个冒号的一行快捷方式,而不能使用两个冒号,因此:

if len(table) == 0:
    print('There are no cards on the table.')
这只会让编译器感到困惑。您真的应该将其分解为惯用Python,而不是试图看看您可以得到什么:

else: for card in range(len(table)): print names[table[card][0]] + ' played a ' + str(table[card][1]) + '.' ?
我不知道为什么要为50行中的每行定义一个新函数,然后再也不调用该函数,但这至少是合法的……几乎是

最后一个问题是:

for line in range(50):

    def show_table():
        if len(table) == 0:
            print('There are no cards on the table.')
        else:
            for card in range(len(table)):
                print names[table[card][0]] + ' played a ' + str(table[card][1]) + '.' ?
首先,print在Python3.3中不是一个语句,它是一个常规的旧函数,因此必须使用参数调用它。第二,那个?最后,它似乎没有附加到任何可以合理附加的内容上,因此它可能是一个需要修复的错误。因此:

print names[table[card][0]] + ' played a ' + str(table[card][1]) + '.' ?
查看您粘贴到已编辑问题中的内容的原始版本,这只是一个猜测,因为您没有将其粘贴为代码。看起来可能还有两个问题

首先,您的第一行是缩进1列。当您稍后返回到第0列时,这将计为两个dedent,而不是一个dedent

第二,def show_表格:行缩进到第8列,但它后面的下一件事是回到第0列。也许你想要一个空函数?如果是这样,那是不合法的;在Python中,函数永远不能为空。但您可以使用pass语句获得相同的效果:

print(names[table[card][0]] + ' played a ' + str(table[card][1]) + '.')

你输入了哪个版本?上面的代码是什么样子的?请发布提示,而不仅仅是提示发生了什么。如果lentable==0:print“桌上没有牌”。否则:对于rangelentable中的牌,lentable:print names[table[card][0]+“played a'+sttable[card][1]+”。def show_handplayer:显示玩家的手牌。打印“这是你的卡片:”+strhands[player][1:-1]+”。“如果你把所有的东西都放在一行,没有缩进,我就无法诊断缩进错误。请编辑问题,而不是尝试将其放入注释字段中,因为这些内容不够灵活,无法处理Python代码。您需要按原样粘贴代码,然后选择它并单击工具栏上的{}图标,以便将其全部视为代码,否则将无法读取。
print(names[table[card][0]] + ' played a ' + str(table[card][1]) + '.')
def show_table():
    pass