随机压痕错误?

时间:2018-08-24 00:22:48

标签: python syntax

这是我的代码:

def options():
    selection=int(input("#>"))
    if selection == 1:
        #Connect

    elif selection == 2:
        #Modules
        print("Modules")

    elif selection == 3:
        #Checking Internet
        checkInternetConnection()

    elif selection == 99:
        #Exit
        shutdown()
    else:
      print "Unknown Option Selected!"
      sleep(100)
      sys.clear()
      start()

每次运行我都会收到此错误:

  File "main.py", line 41
    elif selection == 2:
       ^
IndentationError: expected an indented block

我可能是这里的菜鸟,但请有人帮忙?!谢谢

4 个答案:

答案 0 :(得分:3)

if块后必须有一个声明

注意:评论不计算在内。 您可以改用pass语句。

例如

if statement:
    pass

答案 1 :(得分:2)

虽然债务# Connect对于您和其他人类读者来说似乎是一个非常好的if主体,但对于Python来说,好像根本就没有了。空的if主体是非法的。

有两种常见的处理方法,每当您需要留一个占位符以便以后编写代码或暂时禁用某些代码时,您都想养成一种习惯而又不去思考的习惯。调试代码。

首先是这样写:

pass # TODO: Connect

第二个是这样写的:

"Connect"

后者可能看起来很奇怪(即使您习惯了文档字符串),但这是一个完全有效的表达式,因此也是一个完全有效的语句。

可以只写pass # Connect,但是问题是pass和注释是您可以在最终代码中合理使用的,因此您没有一种方法,以判断这是否是您打算在部署任何内容之前要使用的占位符。

通过对比,您的linter / IDE / commit-hooks / CI /任何内容都可以轻松配置为识别TODO注释或无效的表达式语句,因此警告您再次检查代码确实可以部署了。

答案 2 :(得分:1)

注释不是if语句的占位符,因此请使用pass。

...
if selection == 1:
    #Connect
    pass
...

答案 3 :(得分:0)

在具有#connect的位置,如果要代替它或在其中加上一些功能代码。它的读词是,ifif在if之下。