Python 函数中的意外缩进

Unexpected indent in Python function

我想要我的函数 returns 编码。用户应该导入它。但是,如果用户按回车键,该函数应 return windows-1250 作为默认编码。

当我 运行 此代码时出现错误:

if enc == '': ^ IndentationError: unexpected indent

def encoding_code(prompt):
    """
    Asks for an encoding,
    throws an error if not valid encoding.
    Empty string is by default windows-1250.
    Returns encoding.
    """
    while True:
        enc = raw_input(prompt)
        if enc == '':
            enc = 'windows-1250'

        try:
            tmp = ''.decode(enc) # Just to throw an error if not correct
        except:
            print('Wrong input. Try again.')
            continue
        break
    return enc

您正在混合制表符和 spaces

之前,如果 您使用了一个 space 和两个标签

在 python 中你不应该混用制表符,在 space 中你应该使用 tabspace

你可以发现使用python -tt script.py

大多数 python 开发人员更喜欢 space to tab

Python一般要求你代码中的缩进水平一致(一般是4个空格的倍数,基本和单个tab一样)。

def encoding_code(prompt):
    """
    Asks for an encoding,
    throws an error if not valid encoding.
    Empty string is by default windows-1250.
    Returns encoding.
    """
    while True:
        enc = raw_input(prompt)
        if enc == '':
            enc = 'windows-1250'

        try:
            tmp = ''.decode(enc) # Just to throw an error if not correct
        except:
            print('Wrong input. Try again.')
            continue
        break
     return enc