【问题标题】:simple if/else misusage in pythonpython中的简单if/else误用
【发布时间】:2015-03-20 01:26:54
【问题描述】:

我对 if 和 else 语句有疑问。

我写了以下脚本:

def questionscp():
    stateanswer = raw_input('Do you want to change device state? (y/n): ')
    if stateanswer == 'y':
        choosestate = raw_input('Choose Device State(0=Hibernate, 1=Power Save, 2=Safe Mode, 3=Operating Mode, 4=Diagnostic Mode, 5=Remote Power Off): ')
        client.write_register(64, choosestate, 70)
    else:
        return
    activewarningflag = raw_input('Activate warning flag?? (y/n): ')
    if activewarningflag == 'y':
        client.write_register(67, 1, 70)
    else:
        return

问题是我希望脚本会在第一个问题之后询问第二个问题(activewarningflag),即使选择了“n”,但在 else 语句中我输入“return”,因为我是新手,不这样做还知道很多。如果我希望函数继续读取自身,我可以写什么而不是“返回”?

谢谢

【问题讨论】:

  • 你根本不需要else语句,也有可能你甚至不需要return
  • 你可能想使用一个while循环来验证输入

标签: python if-statement return


【解决方案1】:

你根本不需要 else 语句

if stateanswer == 'y':
    choosestate = raw_input('...')
    client.write_register(64, choosestate, 70)
activewarningflag = raw_input('Activate warning flag?? (y/n): ')

您可以忽略它,它会照常继续。

您甚至可能不需要返回(取决于您的方法的作用)。返回通常是为了从方法中返回一个值或提前退出方法。

【讨论】:

    【解决方案2】:

    你可以把pass 放在里面

    else:
            pass
    

    这将使解释器忽略您的else 子句。

    或者

    您可以完全忽略 else,因为 Python 语义允许在没有 else 子句的情况下使用 if 语句

    【讨论】:

      猜你喜欢
      • 2013-07-13
      • 2015-04-19
      • 1970-01-01
      • 2012-08-05
      • 1970-01-01
      • 2017-07-15
      • 1970-01-01
      • 2013-01-05
      • 2021-03-07
      相关资源
      最近更新 更多