Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python函数中出现意外缩进_Python_Indentation - Fatal编程技术网

Python函数中出现意外缩进

Python函数中出现意外缩进,python,indentation,Python,Indentation,我希望我的函数返回编码。用户应该导入它。但是,如果用户按enter键,函数应返回windows-1250作为默认编码 当我运行此代码时,我得到一个错误: 如果enc='': ^缩进错误:意外缩进 您正在混合制表符和空格 在之前,如果使用了一个空格和两个制表符 在python中,您不应该混合使用制表符和空格,您应该使用tab或space 您可以使用python-tt script.py 大多数python开发人员更喜欢空格而不是制表符python通常要求代码中具有相同级别的缩进(通常是4个空格的倍

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

当我运行此代码时,我得到一个错误:

如果enc='': ^缩进错误:意外缩进


您正在混合制表符和空格

之前,如果使用了一个空格和两个制表符

在python中,您不应该混合使用制表符和空格,您应该使用tabspace

您可以使用
python-tt script.py


大多数python开发人员更喜欢
空格而不是制表符

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


您很可能混合了选项卡和空格。四个空格与单个选项卡不同。一个选项卡的空格数完全取决于约定和编辑器设置。一个标签甚至可能值不同数量的空格,这取决于它的起始列。谢谢你指出@mkrieger1你是对的。但是许多Python IDE默认将选项卡设置为4个空格。但正确的是,它不必是4个空格。另外,在一些IDE中,如果您位于4的倍数之间的列中,tab会将您带到下一个4的倍数的列。我使用了Atom,但代码是用升华编写的。现在我将所有代码从制表符转换为空格。现在可以了。谢谢
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
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