修复WAV音频处理程序中实现用户操作引导的递归函数
修复后的WAV音频处理工具递归引导函数
原代码核心问题
- 用户输入仅在程序启动时执行一次,递归过程中不会重新提示用户选择操作
- 递归调用位置错误,每个判断分支后无限制调用自身会直接触发栈溢出
- 缺失
s(查看采样率)、q(退出程序)两个选项的处理逻辑 - 分支判断逻辑混乱,缩进错误导致
else仅匹配最后一个if语句 - 非法输入提示缺少重新选择的逻辑
修复后完整可运行代码
def c_function(): print("you have successfully called c_function") # 调整播放速度功能占位 return def m_function(): print("you have successfully called m_function") # 混音功能占位 return def f_function(): print("you have successfully called f_function") # 信号滤波功能占位 return def s_function(): print("you have successfully called s_function") # 查看采样率功能占位 return def recursive_main_function(): # 每次进入函数都重新提示用户选择,获取最新输入 user_choice = input("请选择以下操作之一:\n s 查看文件采样率\n c 调整播放速度\n m 混合两个音频信号\n f 信号滤波\n q 退出程序\n : ") # 处理退出逻辑 if user_choice == 'q': print("程序退出") return # 匹配对应功能 elif user_choice == 'c': c_function() elif user_choice == 'm': m_function() elif user_choice == 'f': f_function() elif user_choice == 's': s_function() else: print(f"无效输入:{user_choice},请重新选择") # 完成当前操作后递归调用自身,进入下一次选择 recursive_main_function() # 首次启动调用函数 if __name__ == "__main__": recursive_main_function()
功能说明
- 每次执行完对应操作后会自动回到选择界面,无需手动重启程序
- 输入
q即可正常终止递归退出程序,不会出现栈溢出问题 - 所有非法输入都会触发提示并重新回到选择界面
内容的提问来源于stack exchange,提问作者Josh
相关产品推荐
相关产品推荐

