我可以在python的random.choice上放置def吗?

时间:2019-04-25 17:07:27

标签: windows-10 python-3.7

我正在用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” ... 我该怎么做随机聊天?

1 个答案:

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