我正在使用Python 3.7开发一个小型NON-AI(到目前为止)聊天机器人。现在我想从列表中随机选择一个答案。因此,我创建了一个列表,希望当您键入Hi,Hello(或其他问候)时,在终端中打印一个随机答案。
我创建了一个列表,如果用户键入Hi,则在random.choice(问候)下面选择一个随机答案。 当我输入Hi时,它没有给我答案。
这是代码的一部分,我已经提到:
if input() == "Hi" or "Hello" or "Good Morning" or "Good Afternoon" or "Good Evening" or "Hey":
greeting = "Hey, how are you today?", "Nice to meet you", "Hello, pleasure to meet you", "Hi human."
random.choice(greeting)
因此,当我运行代码时,没有任何错误,但是当我键入Hi时,什么也没有发生。当我输入“嗨”,“你好”,“早上好”,“下午好”,“晚上好”或“嘿”时,它希望它从我的列表中选择一个随机答案(“打招呼”),然后打印此随机答案。谢谢您的帮助。
答案 0 :(得分:1)
如果条件永远不会失败,因为,第一个块是
input()=="Hi" # might be True or False
input() == "Hi" or "Hello" # is always True no matter what the input is.
尝试一下:
greeting = "Hey, how are you today?", "Nice to meet you", "Hello, pleasure to meet you", "Hi human."
if input() in ['Hi', 'Hello', 'Good Morning']:
print(random.choice(greeting)) # random.choice does not print, you need to.
答案 1 :(得分:0)
您的平等检查没有按照您的想法进行。
if input() in ['Hi', 'Hello', 'Good Morning']:
检查输入是否在列表中将完成您要执行的操作。
基本上,您的其他支票可以归结为:
expression1 or expression2 or expression3
expression1
是input() == 'Hi'
,而expression2
是'Hello'
的地方,即使您希望expression2
是input() == 'Hello'
。
示例:
>>> import random
>>> if input() in ["Hi", "Hello", "Good Morning", "Good Afternoon", "Good Evening", "Hey"]:
... greetings = ['sup', 'yo', 'i am so alone']
... print(random.choice(greetings))
...
Hi
sup
>>>
答案 2 :(得分:0)
random.choice()
从输入列表中选择并返回一个随机项目,要显示此项目,您需要调用print()
。此外,您将要检查输入字符串是否为in
的问候语列表,您还可以考虑在用户输入中调用lower()
,以免大写字母影响匹配。
答案 3 :(得分:0)
尝试一下:
import random
if input() in ['Hi', 'Hello', 'Good Morning', "Good Afternoon", "Good Evening", "Hey"]:
greeting = ["Hey, how are you today?", "Nice to meet you", "Hello, pleasure to meet you", "Hi human."]
print(random.choice(greeting))
输出
Hi
Hi human.
Good Morning
Hey, how are you today?