1. # -*- coding: utf-8 -*-
    # @Time : 2018/10/18 16:06
    # @Author : Two Brother
    # @EMAIL : yeluyide@163.com
    # @FILE : shoppingcart.py
    # @SOFTWARE : PyCharm
  2.  
  3. ##################title#####################
    #用户入口:
    #1.商品信息存在文件里
    ##
    #商家入口:
    #2.可以添加商品,修改商品价格
    ############################################
    with open('use','r+',encoding='utf-8') as fu:
    dictfu = {}
    lines1 = fu.readlines()
    for line in lines1:
    (key,value) = line.strip().split()
    dictfu[key] = value
    with open('commodity', 'r+', encoding='utf-8') as fc:
    dictfc = {}
    lines2 = fc.readlines()
    for line in lines2:
    (key,value1,value2) = line.strip().split()
    dictfc[key] = {value1:value2}
    with open('admin','r') as fa:
    admin = fa.readlines()
    for i in range(0,len(admin)):
    admin[i] = admin[i].strip()
    i = input("请输入您的账号>>>>>>>>>>")
    if i in dictfu.keys():
    lastmoney = int(dictfu[i])
    print('我是会员%s,我的余额%s' % (i,lastmoney))
    for n in dictfc:
    print(n,dictfc[n])
    buy = []
    salecost = 0
    while True:
    ic = input("请输入您要购买的商品编号>>>>>>>")
    if ic in dictfc.keys():
    print("商品%s已经加入购物车,查看购物车请按S,直接支付请按P" % dictfc[ic])
    buy.append(dictfc[ic])
    for x in dictfc[ic]:
    salecost = salecost + int(dictfc[ic][x])
    continue
    elif ic.upper() == 'S':
    print("您的购物车信息如下,总计%s元,直接支付请按P" % salecost)
    for y in buy:print(y)
    continue
    elif ic.upper() == 'P':
    if salecost <= lastmoney:
    lastmoney2 = lastmoney - salecost
    print("您本次消费金额%s元,余额还剩余%s元!欢迎下次光临" % (salecost,lastmoney2))
    with open('use', 'w', encoding='utf-8') as fu2:
    for line in lines1:
    if i in line:
    line = line.replace(str(lastmoney),str(lastmoney2))
    fu2.write(line)
    break
    else:
    pi = input("您本次购物需要花费金额%s元,余额只有%s元,交易失败,重新购物请按B,充值请按R,退出请按其他键>>>>"%(salecost,lastmoney))
    if pi.upper() == 'B':
    continue
    if pi.upper() == 'R':
    print("充值功能待开放")
    break
    else:
    break
    else:
    break
  4.  
  5. elif i in admin:
    while True:
    ai = input("请选择你要做的操作:A查看商品 B修改商品价格 C添加删除商品>>>>>")
    if ai.upper() == 'A':
    for o in dictfc:
    print(o,dictfc[o])
    continue
    elif ai.upper() == 'B':
    bi = input("请选择你要修改商品的商品编号>>>>")
    if bi in dictfc:
    print(dictfc[bi])
    bi2 = input("请输入你要修改此商品的价格>>>>")
    with open('commodity','w',encoding='utf-8') as fc2:
    for line in lines2:
    if bi in line:
    for bi3 in dictfc[bi]:
    line = line.replace(dictfc[bi][bi3],bi2)
    fc2.write(line)
    with open('commodity', 'r', encoding='utf-8') as fc3:
    lines3 = fc3.readlines()
    for line in lines3:
    (key, value1, value2) = line.strip().split()
    dictfc[key] = {value1: value2}
    else:
    print("商品编码输入有误,请重新输入")
    continue
    else:
    print('程序退出')
    break
    else:
    print('用户不存在')

python练习2 购物车程序的更多相关文章

  1. python学习:购物车程序

    购物车程序 product_list = [ ('mac',9000), ('kindle',800), ('tesla',900000), ('python book',105), ('bike', ...

  2. python元组与购物车程序

    #Author:zww ''' 程序:购物车程序 需求: 1.启动程序后,让用户输入工资,然后打印呢商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否足够,够就直接扣款,不够 ...

  3. Python初学时购物车程序练习实例

    不多说了,直接上代码: #Author:Lancy Wu product_list=[ ('Iphone',5800), ('Mac Pro',9800), ('Bike', 800), ('Watc ...

  4. [ Python -1 ] 简易购物车程序

    练习: 1. 要求用户输入总资产,例如:2000 2. 显示商品列表,让用户根据序号选择商品,加入购物车 3. 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功. goods = [{' ...

  5. python复习购物车程序

    个人学习总结: 无他,唯手熟尔!多敲多练才是王道 python 第三课 元组的灵活运用&字符串的诸多操作 Program01 '''时间 2018年2月12日12:15:28目的 购物车程序 ...

  6. 使用python操作文件实现购物车程序

    使用python操作文件实现购物车程序 题目要求如下: 实现思路 始终维护一张字典,该字典里保存有用户账号密码,购物车记录等信息.在程序开始的时候读进来,程序结束的时候写回文件里去.在登录注册的部分, ...

  7. Python学习-购物车程序

    程序:购物车程序 需求: 启动程序后,让用户输入工资,然后打印商品列表 允许用户根据商品编号购买商品 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 可随时退出,退出时,打印已购买商品和余额 ...

  8. python基础代码(猜年龄、从最内层跳出多层循环、简单的购物车程序)

    1.猜年龄 , 可以让用户最多猜三次! age = 55 i=0 while i<3: user_guess = int (input ("input your guess:" ...

  9. 浅谈自学Python之路(购物车程序练习)

    购物车程序练习 今天我们来做一个购物车的程序联系,首先要理清思路 购物车程序需要用到什么知识点 需要用到哪些循环 程序编写过程中考虑值的类型,是int型还是字符串 如果值为字符串该怎么转成int型 用 ...

随机推荐

  1. jqplot配置参考

    jqPlot整的来说有三个地方需要配置.格式如:    $.jqplot(‘target’, data, options);target:要显示的位置.data:显示的数据.options:其它配置 ...

  2. mod_python

    mod_python的确是一个让python程序员能够apache2写一些网站的工具.它是一个接口.过去一些python写的整站系统需要通过mod_python作为连接枢纽,将apache2与它们连接 ...

  3. 浅入分析和Linux内核相关的文件夹/proc和/sys .

    近来文章被踩的厉害,我只想把自己从马哥学的知识自己总结下发到博客里,但是没想到昨天一篇文章刚发一上午被踩了9次...如果您真的觉得我的文章很烂,请告诉我原因,不胜感激. 这星期,马哥讲了关于Linux ...

  4. ASP.NET Core MVC 打造一个简单的图书馆管理系统 (修正版)(二)数据库初始化、基本登录页面以及授权逻辑的建立

    前言: 本系列文章主要为我之前所学知识的一次微小的实践,以我学校图书馆管理系统为雏形所作. 本系列文章主要参考资料: 微软文档:https://docs.microsoft.com/zh-cn/asp ...

  5. bzoj 3979: [WF2012]infiltration【瞎搞+随机化】

    参考:https://www.cnblogs.com/ccz181078/p/5622200.html 非常服气.jpg 就是random_shuffle几次然后顺着找,ans取min... #inc ...

  6. app 后台程序设计

    限制客户端一分钟之内访问接口的次数 1.设备的唯一标识获取这个实际上IOS7后会存在问题,权限已经收回了,android可以2.唯一标识可以通过生成一个token区分3.每分钟的频率可以这样设置 ke ...

  7. VMware 12安装Mac OS X 10.11&解决上网的问题

    近日想在Win10上安装Mac OS 玩玩,于是上网搜了相关资源,查看了相关经验分享,开始着手安装.系统很快成功安装,但最大问题是虚拟机中的Mac OS无法上网.费了很长时间,最终看到Ping通结果, ...

  8. Visual Studio 2015 个版本下载

    Visual Studio 2015是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具.代码管控工具.集成开发环境(IDE)等等.所写的目标代码适用于微软支持的所有 ...

  9. 正睿多校联盟训练Week6

    并没有参加 Problem A.阿瓦分蛋糕输入文件: cake.in输出文件: cake.out时间限制: 1 second空间限制: 512 megabytes阿瓦为了庆祝自己自己成长为了一只可爱的 ...

  10. 史上最详细最全的Linux上安装Oracle的教程-centos7

    一.安装Oracle前准备 1.创建运行oracle数据库的系统用户和用户组 [humf@localhost ~]$ su root #切换到root Password: [root@localhos ...