Python学习(一):编写购物车
1、购物车流程图:
2、代码实现:
#!/usr/bin/env python #coding=utf-8 ChoiceOne =''' 1.查看余额 2.购物 3.退出 ''' ChoiceTwo = ''' 1.商品列表 2.已选择商品 3.结算 4.退出 ''' ShopList = [ ["iPhone 7 Plus",6388], ["NBShoes",588], ["MacBook",13800], ["返回上一层",""], ] #导入模块 import sys,fileinput global UserName global UserPass def Login(): #设置尝试密码的次数为0 RetryNum = 0 #格式化输入的用户名 OldName = "Null" #开始程序 while RetryNum < 3: #输入用户信息 UserName = input("请输入用户名: ").strip() UserPass = input("请输入密码: ").strip() #打开用户信息文件 UserList = open("UserInfo","r") #查看锁定的用户 UserLockF = open("LockUserFile","r") #遍历锁定的用户有哪些 for LockUser in UserLockF.readlines(): #判断输入的用户是否已被锁定 if UserName == LockUser.strip("\n"): sys.exit("用户已被锁定") #遍历用户信息文件 for i in UserList.readlines(): #比对账户密码是否正确 if UserName == i.split(":")[0] and UserPass == i.split(":")[1].strip("\n"): UserList.close() UserLockF.close() UserAcount = [0,UserName,i.split(':')[2],] return UserAcount else: print("账号或密码错误!") #密码不正确判断本次输入和上次输入用户名是否一致 if UserName == OldName: RetryNum += 1 else: RetryNum = 1 OldName = UserName else: #超过三次锁定用户 f = open("LockUserFile","a") f.write(UserName+"\n") f.close() print("尝试密码过多,已被锁定!") #初始化Login函数,并接受返回值,包括用户登录状态、用户名和账户余额 UserAcount = Login() #print(UserAcount) #创建空购物车列表 SelectShopList = [] #格式化已购商品总价 SelectShopTotal = 0 #如果Login函数执行成功接收的第一个返回值为0,开始购物车程序 while UserAcount[0] == 0: print(ChoiceOne) #打印商品列表 SelectFirst = input("请输入你的选择: ").strip() #选择商品-第一次选择,并去除空格 if int(SelectFirst) not in range(1,4): #判断选择是否在可选范围内 print("输入错误,请重新输入。") # continue #输入错误重新的输入 if int(SelectFirst) == 1: print("你的余额是:",UserAcount[2]) #返回余额 continue #再次执行上面的循环 if int(SelectFirst) == 2: #选择的是进入商城 while True: print(ChoiceTwo) #打印商城的功能列表 SelectSecond = input("请输入你的选择: ") #输入选择的商城功能 if int(SelectSecond) not in range(1,5): #判断选择是否在可选列表 print("输入错误,请重新输入。") continue #输入错误返回重输 if int(SelectSecond) == 1: #选择商品界面 while True: #进入商城购物程序 for SL in ShopList: print(ShopList.index(SL),SL[0],SL[1],) #打印所有商品 ShopSelect = input("请输入你要买的商品:").strip() #选择需要的商品 if int(ShopSelect) not in range(0,len(ShopList)): #判断选择的是否在可选范围 print("输入错误,请重新输入。") continue #输入错误返回重新输入 elif int(ShopSelect) == len(ShopList)-1: #输入最后一个序列,返回上一级 break else: SelectShopList.append(ShopList[int(ShopSelect)][0]) #加入选择的商品到选择商品的列表中 SelectShopTotal += ShopList[int(ShopSelect)][1] #计算商品总额 print("你选择的商品有:") #打印所有选择的商品和价格 for i in SelectShopList: print(i) print("总价为: ",SelectShopTotal) if int(SelectSecond) == 2: #查看已经选择的商品 if len(SelectShopList) == 0: #如果列表长度为一即没有选择任何商品 print("你没有选择任何商品。") else: for i in SelectShopList: #打印所有的商品 print(i) print("总价为: ", SelectShopTotal) if int(SelectSecond) == 3: #结算 if int(UserAcount[2]) >= SelectShopTotal: #如果余额大于所选商品的金额 UserBanlance = int(UserAcount[2]) - SelectShopTotal #计算剩余的余额 #打印所有购买的商品、总额、余额 print("你购买的商品有:%s,消费总额是:%s,你的账户余额是%s"%(SelectShopList,SelectShopTotal,UserBanlance)) for line in fileinput.input("UserInfo",inplace=1): line = line.replace(UserAcount[2],str(UserBanlance),) print(line,) else: print("你的钱不够了,请重新购买。") #余额不足以购买选择的商品 SelectShopList.clear() #清空购物车 continue if int(SelectSecond) == 4: #退出 sys.exit("欢迎下次光临") if int(SelectFirst) == 3: #退出 sys.exit("欢迎下次光临。")
代码示例
3、代码文件:
1)LockUserFile #用于锁定用户的文件
2)README #使用帮助
3)UserInfo #用户账号密码以及余额文件
test:test:1230
dukuan:dukuan:389352
Python学习(一):编写购物车的更多相关文章
- 从0开始的Python学习013编写一个Python脚本
通过之前的学习我们已经了解了Python的很多基础运用了,现在我们尝试着做一个有使用价值的小脚本. 问题 需求: 我想要一个可以给我备份重要文件的程序. 需求分析: 首先文件是有存储路径,文件的路径和 ...
- Python学习之编写三级菜单(Day1,作业二)
作业二:多级菜单 三级菜单 可依次进入各子菜单 在各级菜单中输入B返回上一级Q退出程序 知识点:字典的操作,while循环,for循环,if判断 思路: 1.开始,打印一级菜单让用户进行选择(可以输入 ...
- Python学习之编写登陆接口(Day1,作业一)
作业一:编写登陆接口 输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定(下次登陆还是锁定) 知识点:while循环,for循环,文件操作,if判断,列表操作 思路: 1.登陆,三次登陆失败,锁定 ...
- Python学习笔记_购物车案例
goods_dic = { "iphone":6000, "ipad":3000, "T-shirt":100, "coffee& ...
- python之编写购物车(第二天)
作业: 编写购物车 具体实现了如下功能: 1.可购买的商品信息显示 2.显示购物车内的商品信息.数量.总金额 3.购物车内的商品数量进行增加.减少和商品的删除 4.用户余额的充值 5.用户购买完成进行 ...
- Python学习计划
---恢复内容开始--- Python学习计划 https://edu.csdn.net/topic/python2?utm_source=blog4 匠人之心,成就真正Python全栈工程师 ...
- Python学习--01入门
Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...
- Python 学习小结
python 学习小结 python 简明教程 1.python 文件 #!/etc/bin/python #coding=utf-8 2.main()函数 if __name__ == '__mai ...
- python学习笔记-python程序运行
小白初学python,写下自己的一些想法.大神请忽略. 安装python编辑器,并配置环境(见http://www.cnblogs.com/lynn-li/p/5885001.html中 python ...
- python学习笔记-python解释器
刚开始学习python,首先要了解一下python解释器. 什么是python解释器? 编写python代码保存后,我们会得到一个以.py为扩展名的文本文件.要运行此文件,就需要python解释器去执 ...
随机推荐
- 微服务配置内容《网上copy》=========》如何创建一个高可用的服务注册中心
前言:首先要知道什么是一个高可用的服务注册中心,基于spring boot建成的服务注册中心是一个单节点的服务注册中心,这样一旦发生了故障,那么整个服务就会瘫痪,所以我们需要一个高可用的服务注册中心, ...
- PHP防止SQL注入和XSS攻击
PHP防止SQL注入和XSS攻击PHP防范SQL注入是一个非常重要的安全手段.一个优秀的PHP程序员除了要能顺利的编写代码,还需要具备使程序处于安全环境下的能力.说到网站安全,就不得不提到SQL注入( ...
- Web Mining and Big Data 公开课学习笔记 ---lecture1
1.1 LOOK Finding "stuff" on the web or computer or room or hidden in data Finding documen ...
- Windows下载安装Numpy、Scipy、py-matplotlib
一.安装环境 Windows10 64.python2.7 二.Numpy下载 1.下载Numpy: 下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/# ...
- php提供的对称加密算法
KEY 是之前定义的常量 Mcrypt::encrypt(); Mcrypt::decrypt(); defined('ROOT') or exit('Access Denied'); class M ...
- phpcms网站搬家 至 服务器 完整并且详细过程
上传服务器空间后,才会通过搜索域名进行网页访问. 上传的过程肯定会有很多东西要修改,例如数据库怎么上传.路径怎么修改等..... 这就让大家看下,自己不断尝试后的完整搬家步骤!!! 一.上传服务器 ( ...
- 如何编写一个稳定的网络程序(TCP)
本节我们看一下怎样才能编写一个基于TCP稳定的客户端或者服务器程序,主要以试验抓包的方式观察数据包的变化,对网络中出现的多种情况进行分析,分析网络程序中常用的技术及它们出现的原因,在之后的编程中能早一 ...
- UPDATE/INSERT用法研究
UPDATE和INSERT语法相信大家都很熟悉,UPDATE的基本语法结构是 : UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 INSERT的基本语法是: INSERT ...
- 安装cuda8.0中所遇到的问题-解决办法
正是申请季高峰,但还是被老师抓着干活.之前一直以为cuda已经装好,才知道是骗自己的.我的显卡是640,ubuntu14.4, 比较low. 我是按照这个教程走的,http://m.blog.csdn ...
- 设置应用栏(Setting Up the App Bar)
今天星期五,刚从体育场打完球回来,洗了洗脚.明天还要继续上班,也是非常艰难.近期我的小腰有点不舒服,就早点睡觉歇息. 所以今天就简单的翻译一篇Android官方站点上的文章,我会加一些补充. 原文地址 ...