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