【发布时间】:2020-12-31 18:06:10
【问题描述】:
我正在编写一个程序,我正在使用espeak 库让它说话。问题是我已经编写了我的程序,但现在我想在开始时询问用户他是希望程序与他交谈还是仅仅依靠阅读。因此,如果他说是,则程序使用espeak 说话,但如果他说否,则程序不使用espeak,所以我被困在no 部分。
我想问一个问题并根据答案使用正确的函数,但问题是它是一个本地函数,所以当你使用函数 espeak() 时它会说
NameError: name 'espeak' is not defined
这就是我想要的:
import os
ai_talk = False
# MAKE THE AI SPEAK, OR NOT
def speak_or_not():
global ai_talk
speak_or_n = input("Do you want me to speak or not?\nPS: input Y/N\n").casefold()
while not ai_talk:
if (speak_or_n == "y") or (speak_or_n == "yes"):
def espeak(text):
command = 'espeak -v +f2 -p25 '+'"'+text+'"'
os.system(command)
return
ai_talk = True
elif (speak_or_n == "n") or (speak_or_n == "no"):
def espeak(text):
return
ai_talk = True
else:
speak_or_n = input("You can only input Y/N").casefold()
return
speak_or_not()
print("Hello there! how are you doing?")
espeak("Hello there! how are you doing?")
那么有没有办法让def espeak() 函数在全局级别上工作,以便我可以在程序的其余部分使用它?
(除了应对洞的东西并将其粘贴在没有espeak功能的no部分)
【问题讨论】:
标签: python function espeak local-functions global-functions