2013-04-30 26 views
-1

这让我感到困扰很长一段时间,我终于决定发布这个求助。我需要尽快回答。意外的unindent错误Python 3.3

def _define_username() -> str: 
''' Asks for username''' 
while True: 
    username = input('Login: ').strip() 
    if len(username) > 1: 
     return username 
    else: 
     print('Sorry, ' + username + ' is not a valid host') 
+0

我发现了一个'IndentationError:预计缩进block'指向2号线,这应该提醒你下面的问题@datguy答案。 – fgb 2013-04-30 06:57:46

+0

确保您不要在编辑器中使用选项卡! Python使用缩进来识别代码块(条件,循环,函数,类)。根据用户设置,选项卡可以扩展到1,2,4或任意数量的字符。标签与依赖缩进级别的语法组合将导致严重破坏。当前所有编辑器都可以设置为强制替换带有给定数量空格的制表符的模式。确保它在使用中。然后可视化代码中的所有选项卡,并将其替换为空格。再次,大多数编辑可以帮助你。 – cfi 2013-04-30 08:57:53

回答

1

Python对缩进很挑剔。尝试缩进函数体:

def _define_username() -> str: 
    ''' Asks for username''' 
    while True: 
     username = input('Login: ').strip() 
     if len(username) > 1: 
      return username 
     else: 
      print('Sorry, ' + username + ' is not a valid host') 
+0

不幸的是,它没有工作 – user2334392 2013-04-30 04:01:16

+0

你需要缩进线下'而真:' – datguy 2013-04-30 04:04:46

+0

错误显示了在第一行,冒号 – user2334392 2013-04-30 04:42:42