Python 我可以在同一个函数中使用函数吗?

Python 我可以在同一个函数中使用函数吗?,python,Python,我试图用Python制作一种人工智能,但我在某些方面遇到了困难 当人工智能说了什么(开始时说你好)时,它让你能够输入文本,一旦你输入了文本,它就会通过应答语句中的if‘关键字’来提供回复。一旦响应,它将调用AImain()函数,重新启动该进程。我似乎无法让它重新启动,因为编译最初只会说hello(如预期的那样),但不提供输入文本功能,这会导致脚本结束。代码如下: def AImain(): response = input("YOU:") if 'Hello

我试图用Python制作一种人工智能,但我在某些方面遇到了困难

当人工智能说了什么(开始时说你好)时,它让你能够输入文本,一旦你输入了文本,它就会通过应答语句中的if‘关键字’来提供回复。一旦响应,它将调用AImain()函数,重新启动该进程。我似乎无法让它重新启动,因为编译最初只会说hello(如预期的那样),但不提供输入文本功能,这会导致脚本结束。代码如下:

def AImain():
    response = input("YOU:")

    if 'Hello' or 'Hi' in answer:
        print(random.choice(welcomeMessages))
        AImain()
我是python新手,我不明白这为什么不起作用。
谢谢

您的代码在
Aimain()
函数中存在缩进问题,我们无法看到
answer
是如何声明的。您正在将输入分配给
response
,但正在代码中读取
answer

这是我对你的代码的建议

response = "Hi" #you can eliminate this, assuming response is declared somewhere else def AImain(): global response response = input("You:") while response == 'Hello' or response == "Hi": print(random.choice(welcomeMessages)) AImain() response=“Hi”#假设在其他地方声明了响应,则可以消除此问题 def AImain(): 全球反应 响应=输入(“您:”) 当响应==“你好”或响应==“你好”时: 打印(随机选择(welcomeMessages)) 艾曼()
输入变量已响应,但您正在测试答案的值。1)请修复缩进。我们只能猜测你想写什么。2) 回答中的“Hello”或“Hi”等同于回答中的“Hello”或“Hi”,它将始终求值为
True
。请参见3)您从未使用
响应
,我们也看不到
响应
是如何定义的。你似乎把这些变量搞混了。4) 您几乎肯定不想在这里使用递归,因为您可能会遇到“保持递归操作”的风险。建议的codeRight@Brian中没有递归,更新了我的答案:)