Добро пожаловать в S / O. Обратите внимание, что in
просто проверяет, находится ли какой-либо из рассматриваемых символов в переменной begin
. Чтобы достичь желаемой функциональности, измените ее следующим образом:
while True:
begin = input('prompt ')
if "'A','B','C'" == begin:
answer = ('\n X is a box')
print(answer)
continue
elif "'A','C','D'" == begin:
answer = ('\n X is a circle')
print(answer)
continue
elif "'A','B','D'" == begin:
answer = ('\n X is a triangle')
print(answer)
continue
elif '' in begin:
print('not a shape')
Ваш ввод должен соответствовать любому из следующего:
'A', 'B', 'C '
' A ',' C ',' D '
' A ',' B ',' D '
Обновление:
Текущий код не может удовлетворить вашу новую проблему. Чтобы отфильтровать ненужные слова, следуйте приведенному ниже методу.
Метод разбиения будет полезен при игнорировании ненужных слов, см. здесь
while True:
begin = input('prompt ')
beginList = begin.split()
if 'A' in beginList and 'B' in beginList and 'C' in beginList:
answer = ('\n X is a box')
print(answer)
continue
Как видите, если вы передаете на вход "A who B when XXX C"
if, который будет выполнен, и выведите X is a box
. Примените те же логики c к другим частям условных выражений и должны решить вашу проблему.