Python函数中出现意外的缩进

时间:2015-07-01 10:01:42

标签: python indentation

我希望我的函数返回编码。用户应该导入它。但是,如果用户按Enter键,则该函数应将windows-1250作为默认编码返回。

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

  

如果enc =='':   ^ IndentationError:意外缩进

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

2 个答案:

答案 0 :(得分:3)

您正在混合制表符和空格

之前如果您使用了一个空格和两个标签

在python中你不应该混合标签和空格你应该使用标签空格

您可以使用python -tt script.py

找到它

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

答案 1 :(得分:1)

Python通常要求您在代码中具有相同级别的缩进(通常是4个空格的倍数,这与单个制表符基本相同)。

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