写代码也是一种修炼,如何避免屎山——如何用python写多级菜单

博客分享写代码的感悟,认为看自己过去代码觉得差是进步表现,应重视编程规则,虚心接受他人指出的不足。还提到年初写的VFD时钟代码不佳,请教GPT获得多级菜单思路,建议有问题先问GPT再上网搜。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

你有没有一种感觉,自己年轻的时候曾经很傻逼。
写代码也有这种感觉,就对了。
我每次看我去年写的代码都觉得这是个垃圾程序员,有这种想法说明你进步了。
如果每次看自己写的代码都觉得哇好完美,只有两种可能,要么你不思进取,要么你已经到了顶级,你觉得哪种可能性更高呢?
不要鄙视所谓的编程规则,那都是无数前辈实践得出来的经验。
就如同不要无视安全规则,那都是血的教训。

忠言逆耳,有人说你代码写的垃圾,先检讨一下自己的不足,被比自己水平高的人指出不足是很幸运的事儿,要不自己要走很多弯路才能懂,当然如果是无脑喷子,就不要理他们。

活到老学到老,永远怀着一颗学徒的心,才能进步不是。

现在看我年初写的VFD时钟,一坨答辩呀,菜单写的是什么伞兵玩意。
问了下gpt,告诉你思路了,看来以后有问题先问gpt,再去互联网搜,因为我互联网上就没找到什么好的多级菜单思路,看好了兄弟们,一个基本的科学的多级菜单是这么写的。

# 定义一个菜单类
class Menu:
    def __init__(self, title, options):
        self.title = title
        self.options = options
        self.parent = None
        self.children = []

    def add_child(self, child_menu):
        child_menu.parent = self
        self.children.append(child_menu)

    def display(self):
        print(self.title)
        for i, option in enumerate(self.options):
            print(f"{i + 1}. {option}")
        if self.parent is not None:
            print("0. 返回上级菜单")
        choice = input("请选择一个选项:")
        if choice == '0' and self.parent is not None:
            self.parent.display()
        elif choice.isdigit() and 1 <= int(choice) <= len(self.options):
            selected = int(choice) - 1
            selected_menu = self.children[selected]
            selected_menu.display()
        else:
            print("输入有误,请重新选择!")

# 创建一个多级菜单
main_menu = Menu("主菜单", ["选项1", "选项2", "选项3"])
sub_menu1 = Menu("子菜单1", ["选项1", "选项2", "选项3"])
sub_menu2 = Menu("子菜单2", ["选项1", "选项2", "选项3"])
sub_menu3 = Menu("子菜单3", ["选项1", "选项2", "选项3"])
sub_sub_menu = Menu("子子菜单", ["选项1", "选项2", "选项3"])

main_menu.add_child(sub_menu1)
main_menu.add_child(sub_menu2)
main_menu.add_child(sub_menu3)
sub_menu1.add_child(sub_sub_menu)

# 显示多级菜单
main_menu.display()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值