Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 递归函数未输出预期值_Python 2.7_Function_Recursion_Speech Recognition - Fatal编程技术网

Python 2.7 递归函数未输出预期值

Python 2.7 递归函数未输出预期值,python-2.7,function,recursion,speech-recognition,Python 2.7,Function,Recursion,Speech Recognition,如果函数在第一次运行时没有vakud输出,我很难理解为什么下面的函数似乎输出的是None,而不是1 import win32com.client BING_KEY = "XXXXXXXX" import speech_recognition as sr import win32com.client as wincl s = sr.Recognizer() def hey_pc(): print(" Hey PC = Command") with sr.Microphone()

如果函数在第一次运行时没有vakud输出,我很难理解为什么下面的函数似乎输出的是
None
,而不是
1

import win32com.client
BING_KEY = "XXXXXXXX"
import speech_recognition as sr
import win32com.client as wincl

s = sr.Recognizer()

def hey_pc():
    print(" Hey PC = Command")
    with sr.Microphone() as source:
          audio = s.listen(source)
          try:
               x= (s.recognize_bing(audio, key=BING_KEY))
               if x in ['hey PC']:
                return 1
               else: hey_pc()
          except:
               print('Try again')
               hey_pc()




t = hey_pc()
print t
如果函数在第一次运行时输出,我将获得以下输出:

Hey PC==命令
1

但是如果它调用它的递归属性,我得到的最终输出是
None

 Hey PC == Command
 Hey PC == Command
 Hey PC == Command
 Hey PC == Command
None
还是这个

 Hey PC == Command
 Try again
 Hey PC == Command
 Hey PC == Command
 None
我不明白为什么我一个也得不到

编辑:

我已经将代码的第二部分更改为这一部分,并进行了更多操作,但仍然存在相同的问题:

t =hey_pc()

if t == 1:

        speak = wincl.Dispatch("SAPI.SpVoice")
        speak.Speak("This is the pc voice speaking")
        import automation
        automation.Apply_Command()
else:
        hey_pc()
如果我的声音在第一次尝试时被识别,则运行
If t==1
下的代码,没有问题,但是如果我的声音在第一次尝试时未被识别,并且代码的反向部分被激活,一旦我的声音最终被识别,程序就结束了(意味着Python命令提示符
>>
再次弹出)。因此我假设传递的是空值


仍然很难回答。(

可能不是您要寻找的答案,特别是,但这通常是因为“if x in['hey PC']”永远不会为真。返回数字的唯一条件(从而设置值)是您的if语句。因此,最有可能的情况是,if语句从未输入。

但是,如果函数运行平稳(不调用函数的递归部分),则我的输出为1。如果我运行上述函数,则在不引发
重试
嘿PC
多次输出的情况下,设法获得输出,(这表明函数的递归部分正在被激活),我可以得到1的输出。希望你能理解我的意思。