在python中简单的if / else misusage

时间:2015-01-21 13:41:28

标签: python if-statement return

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”因为我是新手来做这个并且不要知道了很多。如果我希望函数继续自我读取,我可以写什么而不是“返回”?

感谢

2 个答案:

答案 0 :(得分:5)

您可以将pass放在

else:
        pass

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

或者

你可以完全忽略 else,因为Python语义允许if语句没有else子句

答案 1 :(得分:2)

您根本不需要else语句

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

你可以把它放在外面,它将继续照常进行。

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

相关问题