Python 我在子菜单中有嵌套函数,但它们不能按我所希望的那样工作

Python 我在子菜单中有嵌套函数,但它们不能按我所希望的那样工作,python,function,nested,Python,Function,Nested,我有一个预订菜单,每次有人进入新的预订时,它都会将预订列表和座位表写入文本文件 我有一个菜单,可以选择显示座位表、购买座位、嵌套管理菜单或退出。admin命令打开一个新菜单,允许您清除预订列表的内容、返回主菜单或退出;或者至少应该是这样。我一定是错误检查出了问题,或者我不能用这种方式构建它。有人能看出我错在哪里吗?我有一个大的程序,可以发布更多,但我宁愿只发布我有麻烦的部分。其他功能在主程序级别(与菜单功能相同的级别)定义,嵌套功能是否也应在该级别定义?谢谢 def menu(): p

我有一个预订菜单,每次有人进入新的预订时,它都会将预订列表和座位表写入文本文件

我有一个菜单,可以选择显示座位表、购买座位、嵌套管理菜单或退出。admin命令打开一个新菜单,允许您清除预订列表的内容、返回主菜单或退出;或者至少应该是这样。我一定是错误检查出了问题,或者我不能用这种方式构建它。有人能看出我错在哪里吗?我有一个大的程序,可以发布更多,但我宁愿只发布我有麻烦的部分。其他功能在主程序级别(与菜单功能相同的级别)定义,嵌套功能是否也应在该级别定义?谢谢

 def menu():
    print(
        'Select chioce from menu:\n\nP to purchase an available bus seat\nD to display current bus seat chart\nEnter password (admin) for admin menu\nQ to quit')

    while True:
        try:
            menu_choice = str(input(' \n')).upper()
            if menu_choice == str('D'):
                display()
                break
            elif menu_choice == str('P'):
                book()
                break
            elif menu_choice == str('ADMIN'):
                    def clear_booking(): # the nested functions are not working-
                        print('Clearing bookings')
                        with open("bookings.txt") as f: 
                            f.write("")
                    def previous():
                        menu()            
                    print('CB to clear bookings\nR to return to main menu\nQ to quit')
                    admin_choice = str(input(' \n')).upper
                    if admin_choice == str('CB'):
                        clear_booking()
                    elif admin_choice == str('R'):
                        previous()
                    elif admin_choice == str('Q'):
                        exit()
                    else:
                     print('Invalid choice')
                     exit()  
            elif menu_choice == str('Q'):
                print('exiting program')
                exit()
            else:
                print('Value not recognized.')
                exit()
        except ValueError:
            print('Invalid entry')
    return # how do i get rid of the none from this returning correctly?
print(menu())
您忘记了()在
admin\u choice=str(输入('\n'))处。upper在upper()函数调用处

此外,您还可以返回带有文本的字符串,而不只是在menu()函数体的最后一行返回
return


另外,请尝试在问题的介绍性文本中包含您的问题陈述,以明确代码的问题所在,以及您希望实现的目标。

谢谢,这就成功了。忘记了()。另外,感谢您提供有关添加字符串的提示。我自己还在努力,所以没有问。我加了一个“”并且效果很好。我会记得在将来把这个问题提前提出来,我只是觉得一些信息会有帮助。完成此操作后,我看到clear_bookings函数没有清除我的文本文件,但其他函数工作正常。