реализация python while loop [duplicate]

В стандарте C говорится, что переменная должна назначаться не более одного раза между двумя точками последовательности. Например, точка с запятой - это точка последовательности. Поэтому каждое утверждение вида:

i = i++;
i = i++ + ++i;

и т. Д. Нарушает это правило. В стандарте также говорится, что поведение не определено, а не неопределено. Некоторые компиляторы обнаруживают их и приводят к некоторому результату, но это не соответствует стандарту.

Однако две разные переменные могут быть увеличены между двумя точками последовательности.

while(*src++ = *dst++);

Вышеупомянутое общая практика кодирования при копировании / анализе строк.

2
задан user2398870 19 May 2013 в 14:18
поделиться

2 ответа

Вы тестируете, если пользовательский ввод yes или no. Добавьте not:

while userInput not in ['yes', 'no']:

С таким чуть-чуть быстрее и ближе к вашему намерению используйте набор:

while userInput not in {'yes', 'no'}:

. Вы использовали userInput in ['yes', 'no'], который True, если userInput либо равно 'yes', либо 'no'.

Затем используйте boolean для установки endProgram:

endProgram = userInput == 'no'

Поскольку вы уже что userInput является либо yes, либо no, нет необходимости снова проверять yes или no, чтобы установить свою переменную флага.

8
ответ дан Martijn Pieters 25 August 2018 в 20:47
поделиться
def transaction():

    print("Do the transaction here")



def getuserinput():

    userInput = "";
    print("Start")
    while "no" not in userInput:
        #Prompt for a new transaction
        userInput = input("Would you like to start a new transaction?")
        userInput = userInput.lower()
        if "no" not in userInput and "yes" not in userInput:
            print("yes or no please")
        if "yes" in userInput:
            transaction()
    print("Good bye")

#Main program
getuserinput()
1
ответ дан MrTg 25 August 2018 в 20:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: