如何解决python中的random.choice问题?

时间:2019-07-18 14:31:42

标签: python macos bots

我正在使用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时,什么也没有发生。当我输入“嗨”,“你好”,“早上好”,“下午好”,“晚上好”或“嘿”时,它希望它从我的列表中选择一个随机答案(“打招呼”),然后打印此随机答案。谢谢您的帮助。

4 个答案:

答案 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

expression1input() == 'Hi',而expression2'Hello'的地方,即使您希望expression2input() == '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?