我正在尝试打印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个空格添加该行,当行不起作用时,我用一个制表符添加了它。
缩进级别与上一行完全相同。所以我不知道为什么会发生此错误。
答案 0 :(得分:1)
Python在很大程度上依赖于一致的代码缩进来标识代码块,并且当您使用不同的制表符和/或空格组合来缩进同一代码块中的行时,会发生TabError
异常。
您应该检查用于缩进错误行之前的行的制表符/空格:
group_name = group['GroupName']
并确保它具有用于缩进错误行的相同的制表符和空格组合:
print(group_name)
此外,通常不建议在Python中完全使用制表符进行缩进,因为这样做很容易遇到这样的问题。我建议您将所有制表符都转换为4个空格,以便更轻松地发现这种不一致的缩进问题。
答案 1 :(得分:1)
当您在缩进中混合使用空格和制表符时,会发生不良情况,此错误是常见问题。这意味着您在循环中的第一个语句中使用了空格,在第二个语句中使用了制表符,或者在第二个语句中使用了制表符。
删除所有缩进,然后再次添加。保留所有 all 空格或 all 标签,即可正常使用。通用约定是使用空格,除非您正在使用使用制表符的代码,否则除非出于兼容性原因需要使用制表符,否则请改用空格。参见this section of the style guide。