Как использовать 3 предопределенных слова в вводе пользователя для печати предопределенного ответа - PullRequest
0 голосов
/ 06 апреля 2020

Это сработало бы, если бы потребовались все 3 слова, но напечатало: «X - это ящик» , когда «A», «B», «D» - это ввод. Я хочу, чтобы «A», «B», «D» печатали только: «X - это треугольник» и «X - это ящик» , чтобы печатать только в том случае, когда «A» 'B' 'C' - это ввод.

while True:
    begin = input('prompt  ')
    if 'A' and 'B' and 'C' in begin:
        answer = ('\n X is a box')
        print(answer)
        continue

    elif 'A' and 'C' and 'D' in begin:
        answer = ('\n X is a circle')
        print(answer)
        continue

    elif 'A' and 'B' and 'D' in begin:
        answer = ('\n X is a triangle')
        print(answer)
        continue

    elif '' in begin:
        print('not a shape')

Это упрощенная версия игры, которую я создаю для начинающего проекта. Спасибо за поиск.

1 Ответ

0 голосов
/ 06 апреля 2020

Добро пожаловать в 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')

Ваш ввод должен соответствовать любому из следующего:

  1. 'A', 'B', 'C '

  2. ' A ',' C ',' D '

  3. ' 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 к другим частям условных выражений и должны решить вашу проблему.

...