Python 代码赢得';t在函数中运行elif语句

Python 代码赢得';t在函数中运行elif语句,python,function,audio,Python,Function,Audio,我正在制作一个仍处于开发阶段的简单计算器。我还想制作一个音频版本。当然,音频版本要复杂得多,这也是我的大部分问题所在。如果答案是1位数字,而不是2位数字,这个特定的将运行我想要播放的音频文件。因此它不会在answer_audio()函数中运行elif语句。它不会运行整个elif语句,因为我尝试在它内部使用print函数,这也不会起作用 这里是我的函数播放音频文件的答案 def answer_audio(): ans_split = str(answer).split() amou

我正在制作一个仍处于开发阶段的简单计算器。我还想制作一个音频版本。当然,音频版本要复杂得多,这也是我的大部分问题所在。如果答案是1位数字,而不是2位数字,这个特定的将运行我想要播放的音频文件。因此它不会在answer_audio()函数中运行elif语句。它不会运行整个elif语句,因为我尝试在它内部使用print函数,这也不会起作用

这里是我的函数播放音频文件的答案

def answer_audio():
    ans_split = str(answer).split()
    amount = len(ans_split)
    if amount == 1:
        for x in range(10):
            if x == int(ans_split[0]):
                ps(f"Units/{x}.m4a")
    elif amount == 2:
        print("gaming")
        for x in range(10):
            if x == int(ans_split[0]):
                if int(ans_split[0]) == 1:
                    for i in range(10):
                        if i == int(ans_split[1]):
                            ps(f"Teens/1{i}.m4a")
                else:
                    ps(f"Tens/{x}.m4a")
                    if ans_split[1] != 0:
                        ps(f"Units/{ans_split[1]}.m4a")
这是实际的计算器位(你需要在字符之间加空格,它只适用于2个数字,不管是什么数字)


如果
answer
是一个整数,那么
str(answer).split()
将与
[str(answer)]
相同,因为没有任何参数将在空白处拆分


如果您想计算数字,您可以只使用
len(str(answer))
,或者如果您想在以后的其他操作中使用数字列表,您可以将
str
(它已经是一个可编辑的)传递到
list()
,如下所示:
ans_split=list(str(answer))

您面临的问题是什么样的示例输入?哪个elif语句没有执行?请提供更多信息,以便更多的人可以帮助您。请尝试提出一个更简单的示例-例如,当您无法确定if/elif如何工作时,所有音频计算器上下文都不重要。试着编译一个小例子——也许你会发现错误在你没有想到的其他地方……非常感谢!如果这个答案解决了你的问题,你可以考虑通过点击左边的复选标记来标记它。
equation = input("Equation: ")

cal = equation.split()

if cal[1] == "x" or cal[1] == "X":
    answer = (int(cal[0]) * int(cal[2]))
    print(answer)
    answer_audio()

elif cal[1] == "-":
    answer = (int(cal[0]) - int(cal[2]))
    print(answer)

elif cal[1] == "+":
    answer = (int(cal[0]) + int(cal[2]))
    print(answer)

elif cal[1] == "/":
    answer = (int(cal[0]) / int(cal[2]))
    print(answer)