如何在用户输入中使用3个预定单词打印预定响应

2024-04-26 03:14:00 发布

您现在位置:Python中文网/ 问答频道 /正文

如果这三个单词都是必需的,那么这将起作用,但当输入'a','B','D'时,它会打印:“X是一个方框”。我希望“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条回答
网友
1楼 · 发布于 2024-04-26 03:14:00

欢迎使用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’

更新:

当前代码无法适应您的新问题。要过滤掉不必要的单词,请遵循以下方法

split方法将有助于忽略不必要的单词,请参见here

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。将同样的逻辑应用到条件语句的其他部分,应该可以解决您的问题

相关问题 更多 >

    热门问题