python文本菜单程序_python3.x Day1 菜单程序练习
#!/usr/bin/env python#-*- coding: utf-8 -*-#author : Wang Yue
importmenu_class,re#初始化用戶菜單的各個(gè)實(shí)例
definit_menu():
menu_list=[]
with open("menu_db.doo",mode="r",encoding="utf-8") as menu_db:
menu_db.flush()
menu_db.seek(0)
lines=menu_db.readlines()for line_m inlines:
line_f=line_m.strip()
line=re.split(',',line_f)
menu_cl=menu_class.menu_level(line[1],int(line[0]),int(line[2]))
menu_list.append(menu_cl)returnmenu_list#將子節(jié)點(diǎn)集合存入相應(yīng)的父菜單實(shí)例的child列表中
definit_child(menu_list,pid):
p_menu=[]for menu_one inmenu_list:#print("my id is:{_name}".format(_name=menu_one.get_my_id()))
if menu_one.get_par_id() ==pid:
p_menu.append(menu_one)for ppp inp_menu:
get_sub_node(menu_list,ppp)returnp_menudef get_sub_node(menu_list,p_node): #上一個(gè)方法中,會(huì)調(diào)用此方法,尋找下級(jí)的子節(jié)點(diǎn),利用遞歸一層一層查找
for menu_child inmenu_list:if p_node.get_my_id() ==menu_child.get_par_id():#print(menu_child.get_name())
p_node.append_child(menu_child)
get_sub_node(menu_list,menu_child)def get_back_menu(menu,menu_here,menu_que): #返回上級(jí)路徑的方法
for menu_one inmenu:if menu_here.get_par_id() ==menu_one.get_my_id():
menu_que.append(menu_one)if menu_one.get_par_id() !=0:
get_back_menu(menu,menu_one,menu_que)returnmenu_quedef view_menu(menu): #查看當(dāng)前所在路徑。
menu_name_que=[]
temp_que=[]
menu_que=[]for menu_one inmenu:if menu_one.get_here():#find which menu
menu_que=get_back_menu(menu,menu_one,temp_que)
menu_que.insert(0,menu_one)breakmenu_que.reverse()for my_menu inmenu_que:
menu_name_que.append(my_menu.get_name())returnmenu_name_quedef next_menu(menu,name): #進(jìn)入下一級(jí)路徑。
for menu_one inmenu:if menu_one.get_name()==name:
menu_one.put_here_true()
menu_next=menu_oneelifmenu_one.get_here():
menu_one.put_here_false()def back_menu(menu): #返回上級(jí)菜單
for menu_one inmenu:ifmenu_one.get_here():
menu_one.put_here_false()for menu_two inmenu:if menu_two.get_my_id() ==menu_one.get_par_id():
menu_two.put_here_true();def tree_menu(menu,logo): #顯示完整菜單樹(shù),也是遞歸方法
m=logo#root = tree_assembly(menu, p_id)
for menu_root inmenu:print(m+menu_root.get_name())if len(menu_root.get_child()) >0:
tree_menu(menu_root.get_child(),logo+m)def next_menus(now_menu_name,menu): #在進(jìn)入下級(jí)菜單時(shí),顯示下級(jí)全部菜單。
for which_menu inmenu:if which_menu.get_name() ==now_menu_name:
now_menu=which_menu
ne_menu=now_menu.get_child()for ne_one inne_menu:print(">>>{_name}".format(_name=ne_one.get_name()))
總結(jié)
以上是生活随笔為你收集整理的python文本菜单程序_python3.x Day1 菜单程序练习的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 进程用户态 上下文切换需要保存哪些_漫话
- 下一篇: python让用户输入字符串_当用户输入