购物车完善
#!/bin/bash
# -*- coding:utf-8 -*-
# var
goods_list = {
"something1": 100,
"something2": 20,
"something3": 50,
"weed": 75,
"Marlboro": 15,
"heroin": 325
}
goods_name = list(goods_list.keys()) #获取商品名并转为列表
goods_index = 0 #初始化商品索引变量,提供打印菜单使用
# function
def buy_something(blist,bname,bprice): #提供购物车列表,提供购买商品名称,提供商品价格,然后返回购买后的购物车列表
if blist.keys(): #监测商品列表是不是为空(相当于第一次购买)
for x in blist.keys(): #假如已经购买过了,就遍历购物车中的商品名字
if bname == x: #如果遍历到已经购买了商品,就把商品购买数量+1,然后加上商品价格
blist[bname][0] += 1
blist[bname][2] += blist[bname][2]
break
else: #如果没有遍历到就继续
continue
else: #如果都没有遍历到,就相当于在购物车再加一个新商品
blist[bname] = [1,bprice,bprice] #bought list add goods
else:
blist[bname] = [1,bprice,bprice] #bought list add goods
return blist
# get salary
while True: #建立循环
user_salary = input("input your salary:") #请求用户输入金钱
if user_salary.isdigit(): #如果输入类型是数字
user_salary = int(user_salary) #强制转换类型为整数型
break #跳出循环
# 打印商品列表
print("--------goods store--------")
for x in goods_name: #遍历goods_name这个列表
print("[%s]. %s ---- %s" % (goods_index, x, goods_list[x])) #输出各商品购买索引,名称,商品价格
goods_index += 1 #商品索引自增
print("--------goods store--------")
# user buy something
# bought var
bought_list = {} #建立购物车
# start buy
while True: #建立循环 让我用户购买商品
bought_index = input("choice goods(index/name/q):") #请求用户输入购买索引
if bought_index.isdigit(): #判断用户输入的是不是数字、字符、qQquit,如果不是就请求下一次输入
bought_index = int(bought_index) #如果是数字,则进行强制类型转换
if bought_index >= 0 and bought_index < len(goods_list): #判断输入的索引是否再商品列表索引的这个区间,如果不是则再次请求输入
bought_name = goods_name[bought_index] # 从goods_name里获取用户所选择的商品名称
bought_price = goods_list[bought_name] #从goods_list里面获取商品价格
if user_salary - bought_price >= 0: #判断用户是否能够承担得起商品费用,如果不能则输出余额不够
user_salary = user_salary - bought_price #如果判断可以承担得起费用,就减去用户余额
# bought_list = buy_something(bought_list, bought_name, bought_price) #函数
if bought_list.keys(): #监测商品列表是不是为空(相当于判断用户是否第一次购买),如果是第一次购买就执行else里面的新添加商品到购物车
for x in bought_list.keys(): #假如已经购买过了,就遍历购物车中的商品名字,判断是不是第二次购买
if bought_name == x: #如果遍历到已经购买了商品,就把商品购买数量+1,然后加上商品价格
bought_list[bought_name][0] += 1
bought_list[bought_name][2] += bought_list[bought_name][2]
break
else: #如果没有就继续循环,直到
continue
else: #直到循环结束都没有找到 这个商品再购物车出现,那就新添加一个商品到购物车
bought_list[bought_name] = [1,bought_price,bought_price] #bought list add goods
else:
bought_list[bought_name] = [1,bought_price,bought_price] #bought list add goods
# print(bought_list)
print("your choice: %s , price: %s , salary: %s" %(bought_name,goods_list[bought_name],user_salary)) #echo goodsnamepricesalary #输出购买结果,输出选择的商品名称、价格、用户余额
else:
print("topic:salary is not enough!you need to pay $%s" %(bought_price - user_salary))
elif goods_list.get(bought_index): #假如用户输入的是商品名,则判断商品名称是否再goods_list中
bought_price = goods_list.get(bought_index) #从goods_list中获取所选商品金额
if user_salary - bought_price >= 0: #判断用户是否可以承担商品费用,如果可以就购买
user_salary = user_salary - bought_price #减去用户余额
bought_list = buy_something(bought_list, bought_index, bought_price) #通过自建函数执行购买过程
# print(bought_list)
print("your choice: %s , price: %s , salary: %s" %(bought_name,goods_list[bought_name],user_salary)) #输出购买结果包含goodsnamepricesalary
else: #否则输出用户余额不足
print("topic:salary is not enough!you need to pay $%s" %(bought_price - user_salary))
elif bought_index == 'q' or bought_index == 'q' or bought_index == 'quit': #判断用户输入的是不是Q或者q或者quit,如果是就执行下列操作,下列什么操作呢?
need_pay = 0 #定义用户需要支付的金额
print("--------shop cart list--------")
print("name/price/count/total-cost")
for x in bought_list.keys(): #遍历购物车的keys
need_pay += bought_list[x][2] #累加各商品总价
print("%s %s %s %s" %(x,bought_list[x][1],bought_list[x][0],bought_list[x][2])) #从bought_list输出该商品所购买的名称、单价、数量、总价
print("--------shop cart list--------")
print("you need to pay :%s,you salary:%s" %(need_pay,user_salary)) #输出用户需要支付所少费用,以及用户的余额
exit() #退出程序
else: #如果输入的内容不符合所有判断,则继续请求输入
continue
查地名
#!/bin/python3
# -*- coding:utf-8 -*-
__author__ = ""
menu = {
'北京':{
'海淀':{
'五道口':{
'soho':{},
'网易':{},
'google':{}
},
'中关村':{
'爱奇艺':{},
'汽车之家':{},
'youku':{},
},
'上地':{
'百度':{},
},
},
'昌平':{
'沙河':{
'北航':{},
},
'天通苑':{},
'回龙观':{},
},
'朝阳':{},
'东城':{},
},
'上海':{
'闵行':{
"人民广场":{
'炸鸡店':{}
}
},
'闸北':{
'火车战':{
'携程':{}
}
},
'浦东':{},
},
'山东':{},
}
while True:
for x in menu.keys():
print("%s" %x)
input_add = input(">")
if input_add == 'q' or input_add == 'Q':
exit()
if menu.get(input_add):
while True:
for x in menu[input_add].keys():
print("%s" %x)
input_add1 = input(">%s>" %input_add)
if input_add1 == 'q' or input_add1 == 'Q':
break
if menu[input_add].keys():
while True:
for x in menu[input_add][input_add1].keys():
print("%s" %x)
input_add2 = input(">%s>%s>" %(input_add,input_add1))
if input_add2 == 'q' or input_add2 == 'Q':
break
else:
continue
else:
continue
else:
continue