python--------三级菜单以及购物车实现
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python--------三级菜单以及购物车实现相关的知识,希望对你有一定的参考价值。
三级菜单实现以及细节讲解
# !/usr/bin/env python # -*- coding:utf-8 -*- # Author:冯海猛 area ={ #创建一个字典分别定义多个省,市,县 "河北":{ "承德":{ "隆化":{ "县医院":{}, "苔山公园":{}, "景怡酒店":{} }, "围场":{ "酒吧":{}, "ktv":{}, "战旗烧烤":{} } }, "石家庄":{ "深泽":{ "庙会":{}, "游乐园":{}, "购物城":{} } } }, "北京":{ "海淀":{ "航天桥":{ "北大青鸟":{}, "跆拳道馆":{}, } }, "朝阳":{ "安贞门":{ "中科威荣公司":{}, "速8酒店":{}, "世纪嘉园小区":{} }, "北土城":{ "如家酒店":{}, "家常菜":{} } } }, "山西":{ "太原":{ "晋源区":{ "义井街道":{}, "花果山":{}, "政府":{} } }, "吕梁":{ "柳林":{ "宏杰集团":{}, "宏杰地产":{}, "宏杰代理商":{} } } } } print(‘‘‘ ------------------------------------------------------ |\033[46;1m可以在任意菜单输入‘q‘返回上一级,输入‘exit‘退出\033[0m| #打印提示信息告诉用户,q是返回上一级,exit是退出 ------------------------------------------------------ ‘‘‘) while True: #进入第一个循环 for i in area: print(i) #打印字典里第一层就是刚刚定义好的省 info1 = input("\033[32;1m请选择省>>>\033[0m").strip() #让用户选择,.strip是把用户输入的空格去掉 if info1 == ‘exit‘: #开始判断用户的输入,如果输入的是exit就直接退出程序 exit() elif info1 == ‘q‘: #如果输入的q告诉用户已经在顶级 print("\033[31;1m您已经在顶级了\033[0m") continue #跳出本次循环 if info1 in area: #判断用户输入的是不是在字典里,不在就显示输入的地区或指令不存在 while True: #如果在就进入第二个循环 for a in area[info1]: #打印出用户选择省里面的市 print(a) info2 = input("\033[32;1m请选择市>>>\033[0m").strip() #让用户选择要查看的市 if info2 == ‘q‘: #如果用户输入的是q就跳出本层循环,返回上一层,让用户在重新选择省 break elif info2 == ‘exit‘: #如果用户输入的是exit就退出本程序 exit() if info2 in area[info1]: #判断如果用户输入的市在用户输入的省里就执行以下代码,如果不在就提示用户输入的地区或者指令不存在 while True: #进入第三个循环 for b in area[info1][info2]: #打印用户选择的省下的市下面的县 print(b) info3 = input("\033[32;1m请选择县>>>\033[0m").strip() #让用户选择县 if info3 == ‘exit‘: #判断用户数输入,如果用户输入的是exit就退出本程序 exit() elif info3 == ‘q‘: #如果用户输入的是q就跳出本层循环,让用户重新输入市 break if info3 in area[info1][info2]: #判断用户输入的县是否在用户选择的省下的市下面,如果在就执行以下代码,不在就提示用户输入的指令或者地区不存在 while True: #进去最后一个循环 for c in area[info1][info2][info3]: #打印用户选择的省下的市下的县下的公司或者酒店等 print(c) info4 = input("\033[32;1mexit退出,q返回上一级>>>\033[0m") #让用户输入,提示exit是退出,q是返回上一层 if info4 == ‘exit‘: exit() elif info4 == ‘q‘: break else: print("\033[31;1m请输入指定的指令\033[0m") else: print("\033[31;1m您输入的地区或指令不存在\033[0m") else: print("\033[31;1m您输入的地区或指令不存在\033[0m") else: print("\033[31;1m您输入的地区或指令不存在\033[0m")
购物车实现以及细节讲解
# !/usr/bin/env python # -*- coding:utf-8 -*- # Author:冯海猛 List_of_goods =[ #创建一个列表,定义好成品名称以及商品的价格 ["iPhone",5000], ["computer",3000], ["book",120], ["watch",500], ["bicycle",1500] ] shopping =[] #创建一个新列表,作用是用户买的东西都放在这个列表里面 count = 0 #count =0 代表一个计数器,当count = 3 时会自动退出程序 with open(‘db.txt‘,‘w‘) as f: #创建一个db.txt,w表示如果没有这个文件就创建一个,如果有就覆盖存到一个别名f,open是打开文件,with是自动关闭文件 f.write("admin|123") #在文件里面定义好用户名密码,以|分隔。 while True: #进入循环 user_name = input("用户名>>").strip() #让用户输入用户名密码,把值存起来,去除用户输入的空格 user_password = input("密码>>").strip() with open("db.txt","r") as f: #以r的模式打开db.txt这个文件别名为f data = f.read().split("|") #把f读出来的值以‘|’分隔成列表,保存到data里面 if user_name == data[0] and user_password == data[1]: #判断用户输入的用户名密码是不是在data这个列表里面 print("欢迎%s登录"%user_name) #如果在就打印欢迎信息,然后执行以下代码。 while True: #进入循环 wage = input("输入工资>>>").strip() #让用户输入工资并去掉空格 if wage == ‘q‘: #如果用户输入的是q就提示什么也没买,然后直接退出 print("\033[34;1m啥也没买\033[0m") exit() if wage.isdigit(): #如果用户输入的是数字就转换数剧类型成int wage = int(wage) else: print("\033[31;1m请输入工资.....‘q‘是退出\033[0m") #如果用户输入的是其他,提示用户输入工资,再次让用户重新输入 continue while True: #再次进入循环 print("\033[33;1m商品列表\033[0m".center(50,"-")) for index,i in enumerate(List_of_goods): #打印商品列表以及下标 print(index,i) numbering = input("请选择要购买的产品编号>>>").strip() #让用户输入商品的编号并去除空格 if numbering == ‘q‘: #如果用户输入的是q就打印以经购买的商品和余额并退出程序 print("\033[34;1m您购买了以下商品,余额还剩%s元\033[0m".center(50,"-")%wage) for a in shopping: print(a) exit() if numbering.isdigit(): #如果用户输入的是数字,就给转换数据类型成int numbering = int(numbering) if numbering >= 0 and numbering < len(List_of_goods): #在判断用书输入的值是不是在列表商品长度范围内 itme = List_of_goods[numbering] #如果在就把列表里面用户输入的编号保存到itme中 if itme[1] <= wage: #如果商品的价格小于或者等于用户的工资,就把商品加入到新建的购物车中 shopping.append(itme) wage -= itme[1] #扣除用户的工资,打印成功购买以及还剩下的余额 print("\033[32;1m你以成功购买%s,已经加入购物车。您的余额还剩%s\033[0m"%(itme,wage)) else: print("\033[31;1m余额不足,您只有%s元了\033[0m"%wage) #如果大于工资就显示余额不足,打印余额 else: print("\033[31;1m对不起没有此编号产品\033[0m") #如果用户输入的值不在列表长度的范围内,就显示没有此产品 else: print("\033[31;1m请输入编号。如:1,2,3....‘q‘是退出\033[0m") #如果用户输入的不是数字就显示输入产品的编号 else: print("\033[31;1m用户名或密码错误\033[0m") #如果用户名密码不在db的文件里面显示密码错误 count += 1 #接着count +1 if count == 3: #如果错误三次显示错误次数太多,直接退出程序 print("\033[31;1m错误次数较多,程序以退出\033[0m") exit()
列表常用操作语法
# !/usr/bin/env python # -*- coding:utf-8 -*- # Author:冯海猛 names = [‘ghj‘,‘fhm‘,‘gwd‘,‘fhm‘,‘ydh‘] print(names) #print(names[0],names[2])#查找 #print(names[0:2])#查找 #print(names.index(‘fhm‘))#返回你所查找值得位置 #names.append(‘yjh‘)#把值追加到后面 #names.insert(1,‘yxl‘)#把值出入到指定位置 #names[1] = ‘FHM‘#更改里面的值 names1 = [1,2,3] #names.extend(names1)#扩展把另外的表和现在这个表合并 #names.remove("fhm")#根据值得名字删除 #del names[0]#根据下标删除 #names.pop(1)#不输入值默认删最后一个 #print(names.count(‘fhm‘))#统计列表有几个相同的值 #names.clear()#清空表 #names.reverse()#把表里的值反过来 #names.sort()#排序 print(names)
以上是关于python--------三级菜单以及购物车实现的主要内容,如果未能解决你的问题,请参考以下文章