Python中空格和制表符的用法不一致

时间:2019-04-15 18:33:00

标签: python

我正在尝试打印AWS中的组列表。

在这些行中,只有一行会产生缩进错误。如果我使用此代码:

group_list = client.list_groups()
print("Group List for %s:")
for group in group_list['Groups']:
    group_name = group['GroupName']
    print(group_name)

我收到此错误:

  File ".\aws_iam_utils.py", line 966
    print(group_name)
                    ^
TabError: inconsistent use of tabs and spaces in indentation

但是,如果我删除print(group_name)行,程序就会运行。

我都尝试用4个空格添加该行,当行不起作用时,我用一个制表符添加了它。

缩进级别与上一行完全相同。所以我不知道为什么会发生此错误。

2 个答案:

答案 0 :(得分:1)

Python在很大程度上依赖于一致的代码缩进来标识代码块,并且当您使用不同的制表符和/或空格组合来缩进同一代码块中的行时,会发生TabError异常。

您应该检查用于缩进错误行之前的行的制表符/空格:

    group_name = group['GroupName']

并确保它具有用于缩进错误行的相同的制表符和空格组合:

    print(group_name)

此外,通常不建议在Python中完全使用制表符进行缩进,因为这样做很容易遇到这样的问题。我建议您将所有制表符都转换为4个空格,以便更轻松地发现这种不一致的缩进问题。

答案 1 :(得分:1)

当您在缩进中混合使用空格和制表符时,会发生不良情况,此错误是常见问题。这意味着您在循环中的第一个语句中使用了空格,在第二个语句中使用了制表符,或者在第二个语句中使用了制表符。

删除所有缩进,然后再次添加。保留所有 all 空格或 all 标签,即可正常使用。通用约定是使用空格,除非您正在使用使用制表符的代码,否则除非出于兼容性原因需要使用制表符,否则请改用空格。参见this section of the style guide