zoukankan      html  css  js  c++  java
  • python基础03

    购物车完善


      #!/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
    
  • 相关阅读:
    git学习02
    每日一记8.12
    git学习01
    每日一记8.7
    每日一记8.6
    spring boot使用tomcat启动
    每日一记8.1
    【学习笔记】HTML5 WebGL游戏引擎开发
    【转】使用 WebGL 进行 3D 开发,第 3 部分: 添加用户交互
    【转】使用 WebGL 进行 3D 开发,第 2 部分: 使用 WebGL 库以更少的编码做更多的事情
  • 原文地址:https://www.cnblogs.com/anyanyaaaa/p/6640320.html
Copyright © 2011-2022 走看看