我正在用python编写聊天机器人,我想知道是否可以在random.choice中使用函数,因为我想进行随机聊天,但并不总是相同的路径。 这是我编写的尝试使用的代码片段
def start():
start = input("do u wanna chat? (y/n) ")
if start == "n":
no()
if start == "y":
test = random.choice([bot0(),bot1(),bot2])
def bot0():
print("do something 0") #i added the numbers to know who is who
start()
def bot1():
print("do something 1")
start()
def bot2():
print("do something 2")
start()
但是当我尝试运行它时,他只给我“做某事0” ... 我该怎么做随机聊天?
答案 0 :(得分:1)
使用您编写的方式将无法使用,因为尚未定义这些功能。 Random.choice可以接受参数列表,但是该列表当前仅包含空元素,因此无法按预期工作。下面是一个应该更好的脚本
from numpy import random
def bot0():
print("do something 0")
start()
def bot1():
print("do something 1")
start()
def bot2():
print("do something 2")
start()
def start():
start = input("do u wanna chat? (y/n) ")
if start == "n":
return print("Thank you have a nice day") #no() function
elif start == "y":
test = random.choice((1,3))
if test == 1:
bot0()
elif test == 2:
bot1()
elif test == 3:
bot2()
else:
print("Somehow random choice messed up")
else:
print("Please type y/n to communicate with me. Goodbye")
start()