Я пытаюсь запрограммировать банкомат с этим кодом в python. Но, учитывая то, что вводится, он просто говорит, что карта успешно введена.
inputCard = input("Welcome to the atm machine, please insert your credit card (Type 'Yes' when you have done so) ")
if inputCard == ['No', 'no']: #checks if card has been entered
print ("Please retry")
else:
print ("Card is successfully inputed") '
Спасибо
Оператор равенства ==
сравнивает, является ли вход, который является строкой, равным правой стороне, которая является списком. Интуитивно, список никогда не будет равен строке.
Итак, используйте оператор in
чтобы узнать, есть ли ответ в возможных вариантах:
if inputCard in ('No', 'no'):
Альтернативно, конвертируйте ответ в нижний регистр, а затем используйте ==
:
if inputCard.lower() == 'no'
Этот способ не примет no
, No
, NO
и nO
.
Вы сравниваете "inputCard" со списком. Пытаться:
if inputCard.lower() == "no":
inputCard
is str, ["NO","no"]
- list.They не будет равно. И вы можете попробовать это
if inputCard.lower() == 'no':
или же
if inputCard.upper() == 'NO':
if inputCard in ['No', 'no']:
(inputCard
- это не список). или, может быть,if inputCard.lower() == 'no'
.if inputCard == 'No' or inputCard == 'no':
чтобы проверить оба случая