Могу ли я поставить defs на random.choice в python? - PullRequest
0 голосов
/ 25 апреля 2019

Я работаю над чат-ботом в 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 Ответ

1 голос
/ 25 апреля 2019

То, как вы это написали, не сработает, потому что эти функции еще не определены. 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()
...