2015-01-21 3 views
1

У меня проблема с операторами if и else.simple if/else misusage in python

Я написал следующий сценарий:

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) после первого, даже если «п» выбран, но в ELSE заявление Я положил «возвращение», потому что Im new сделал это и еще не знаю много. Что я могу написать вместо «return», если я хочу, чтобы функция продолжала читать сама?

благодарит

+1

Вам необязательно иметь инструкцию else, возможно, вам даже не понадобится возврат – Sayse

+0

, вы можете использовать цикл while и проверить ввод –

ответ

5

Вы можете поместить pass как в

else: 
     pass 

Это сделает интерпретатор игнорирует ваше положение else.

Или

вы можете игнорировать в else в целом, поскольку Python семантика позволяет if заявление без else п

2

Вам не обязательно нужно заявление еще на всех

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

Вы можете оставить это, и оно будет продолжаться как обычно.

Вам также может не понадобиться возврат (в зависимости от того, что делает ваш метод). Возврат обычно выполняется либо для возврата значения из метода, либо для выхода из метода раньше.