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