Почему это происходит в операторе python logi c? - PullRequest
0 голосов
/ 26 мая 2020

Подскажите, пожалуйста, почему это не работает? Я пытаюсь сделать так, чтобы пользователь мог вводить только «Войти» или «Зарегистрироваться» и получал сообщение об ошибке при вводе чего-либо еще.

while A == False:
        print('Would you like to create an account or sign in to a preexisting one?')
        print('Sign in')
        print('Register')

        R = input()

        if R == 'Sign in' or 'Register':
            A = True
        else:
            print('')
            print('###################################')
            print('Error: please enter a valid keyword')
            print('###################################')
            print('')
            continue

1 Ответ

1 голос
/ 26 мая 2020

Выражение: R == 'Sign in' or 'Register' интерпретируется как:
'Register' != '' или R == 'Sign in', и поскольку 'Register' никогда не равно '', он всегда будет возвращать True. Я бы порекомендовал R in ('Sign in', 'Register'), но вы также можете использовать R == 'Sign in' or R == 'Register'.

...