python简单购物车改进版
# -*- coding: utf-8 -*- """ ┏┓ ┏┓ ┏┛┻━━━┛┻┓ ┃ ☃ ┃ ┃ ┳┛ ┗┳ ┃ ┃ ┻ ┃ ┗━┓ ┏━┛ ┃ ┗━━━┓ ┃ 神兽保佑 ┣┓ ┃ 永无BUG! ┏┛ ┗┓┓┏━┳┓┏┛ ┃┫┫ ┃┫┫ ┗┻┛ ┗┻┛ """ #功能选择1.注册2.登入3.购物车4.充值5.支付 #商品列表需要是以下形式的列表['序号:商品名称:价格'] #许先创建一个login.txt文件 #可以往shop_list列表中添加商品 shop_list=['1:电脑:5000','2:手机:3000','3:衣服:1000','4:鞋子:500','5:零食:100','6:玩具:50','7:水果:50'] import os def login(): '''用户名和密码的注册''' username=input('请输入用户名>>>:').strip() userpwd=input('请输入密码>>>:').strip() with open(r'login.txt','a+t',encoding='utf-8')as f: for line in f: res=line.strip('\n').split(':') if res[0]==username: print('用户名已注册过') break else: f.write('%s:%s\n'%(username,userpwd)) print('注册成功') f.close() return username def enter(): '''用户的登入认证''' username = input('请输入用户名>>>:').strip() userpwd = input('请输入密码>>>:').strip() with open(r'login.txt', 'r+', encoding='utf-8')as f: for line in f: res=line.strip('\n').split(':') if res[0]==username and res[1]==userpwd: print('登入成功') break else: print('用户名还没注册') f.close() return username def shop(): '''选择商品和数量,加入新列表中''' commodity_list=[] while True: print('0:退出') for commodity in shop_list: print(commodity) input_number = input('请选择商品号码>>>:').strip() if int(input_number) not in range(0, len(shop_list)+1): print('选择错误') ': break else: shop_count = input('请选择商品数量>>>:').strip() print() for commodity in shop_list: commodity_number,commodity_name,commodity_price=commodity.split(':') if input_number==commodity_number: commodity_list.append('%s:数量:%s'%(commodity_name,shop_count)) print(commodity_list) return commodity_list def price(commodity_list): '''计算购物商品总价''' total_price=0 for commodity in shop_list: for buy in commodity_list: commodity_number, commodity_name, commodity_price = commodity.split(':') buy_name,buy_none,buy_count=buy.split(':') if commodity_name==buy_name: total_price+=int(buy_count)*int(commodity_price) print(commodity_list) print('商品总价:%s'%total_price) return total_price def recharge(username_enter): '''给账户充值''' if username_enter==False: print('你还没有登入') else: money=input('请输入你要充值的金额>>>:').strip() with open(r'login.txt','r',encoding='utf-8')as f_1,\ open(r'.login.temp.txt','w',encoding='utf-8')as f_2: for line in f_1: res=line.strip('\n').split(':') if res[0]==username_enter: f_2.write('%s:%s:%s\n'%(res[0],res[1],money)) print('充值成功,你充值的金额是%s' % money) else: f_2.write('%s\n'%line.strip('\n')) os.remove('login.txt') os.rename('.login.temp.txt','login.txt') f_1.close() f_2.close() return money def pay(total_price,username_enter): '''支付功能,把充值的钱减去选购商品总价,最后显示余额''' remaining_sum=0 if username_enter==False: print('你还没有登入') else: with open(r'login.txt','r',encoding='utf-8')as f_1,\ open(r'.login.temp.txt','w',encoding='utf-8')as f_2: for line in f_1: res=line.strip('\n').split(':') if res[0]==username_enter and len(res)<3: print('你的账户还没充值') if res[0]==username_enter and len(res)==3: remaining_sum=int(res[2])-int(total_price)#remaining_sum拿到余额 f_2.write('%s:%s:%s\n'%(res[0],res[1],remaining_sum)) print('付款成功,还剩余额:%s' % remaining_sum) else: f_2.write('%s'%line) os.remove('login.txt') os.rename('.login.temp.txt', 'login.txt') f_1.close() f_2.close() return remaining_sum username_enter=False username_login=False total_price=False money=False while True: print(''' 功能选择: 0.退出 1.注册 2.登入 3.购物 4.充值 5.支付 ''') num=input('请输入序号>>>:').strip() ':break ': username_login=login()#拿到返回值:注册成功的用户名 ': username_enter=enter()#拿到返回值:登入成功的用户名 ': commodity_list=shop()#拿到返回值:选购商品列表 total_price=price(commodity_list)#拿到返回值:选购商品的总价 ': money=recharge(username_enter)#拿到返回值:拿到充值的金额 ': pay(total_price,username_enter) else: print('序号选择错误')
python简单购物车改进版的更多相关文章
- Python 简单购物车
product_list =[ ('huawei',3000), ('hongmiNote3',3000), ('sanxing',2600), ('ThinkPad870',15000), ('Ip ...
- python实现简单购物车系统(练习)
#!Anaconda/anaconda/python #coding: utf-8 #列表练习,实现简单购物车系统 product_lists = [('iphone',5000), ('comput ...
- Python实例---简单购物车Demo
简单购物车Demo # version: python3.2.5 # author: 'FTL1012' # time: 2017/12/7 09:16 product_list = ( ['Java ...
- 简单购物车程序(Python)
#简单购物车程序:money_all=0tag=Trueshop_car=[]shop_info={'apple':10,'tesla':100000,'mac':3000,'lenovo':3000 ...
- 用Python实现简单购物车
作业二:简单购物车# 实现打印商品详细信息,用户输入商品名和购买个数,则将商品名,价格,购买个数加入购物列表,# 如果输入为空或其他非法输入则要求用户重新输入 shopping_list = [] w ...
- python 简单搭建非阻塞式单进程,select模式,epoll模式服务
由于经常被抓取文章内容,在此附上博客文章网址:,偶尔会更新某些出错的数据或文字,建议到我博客地址 : --> 点击这里 可以看我的上篇文章 <python 简单搭建阻塞式单进程,多进程, ...
- python 简单搭建阻塞式单进程,多进程,多线程服务
由于经常被抓取文章内容,在此附上博客文章网址:,偶尔会更新某些出错的数据或文字,建议到我博客地址 : --> 点击这里 我们可以通过这样子的方式去理解apache的工作原理 1 单进程TCP服 ...
- Python简单爬虫入门三
我们继续研究BeautifulSoup分类打印输出 Python简单爬虫入门一 Python简单爬虫入门二 前两部主要讲述我们如何用BeautifulSoup怎去抓取网页信息以及获取相应的图片标题等信 ...
- Python简单爬虫入门二
接着上一次爬虫我们继续研究BeautifulSoup Python简单爬虫入门一 上一次我们爬虫我们已经成功的爬下了网页的源代码,那么这一次我们将继续来写怎么抓去具体想要的元素 首先回顾以下我们Bea ...
随机推荐
- python之路--MySQL多表查询
一 介绍 我们在写项目的时候一般都会建一个数据库,数据库里面会存很多的表,不可能把所有的数据都放在一张表里,因为分表来存数据节省空间,数据的组织结构更清晰,解耦和程度更高,但是这些表本质上还不是一个整 ...
- linux audit审计(3)--audit服务配置
audit守护进程可以通过/etc/audit/auditd.conf文件进行配置,默认的auditd配置文件可以满足大多数环境的要求. local_events = yes write_logs = ...
- JS检测是否是360浏览器
// JavaScript Document //application/vnd.chromium.remoting-viewer 可能为360特有 var is360 = _mime("t ...
- PDO访问Mysql数据库
$dsn = 'mysql:host=127.0.0.1;dbname=myblog'; $username = 'root'; $pwd = '; $pdo = new PDO($dsn,$user ...
- react用class关键字来创建组件
创建组件之前,首先学习一个ES6的写法,叫做展开运算符. 比如我这里有两个数组.如何将第二个数组o2中的所有属性导入到数组o1中呢?一个个输太麻烦,所以就用到了展开运算符. var o2={ age: ...
- MySQL参数调优
目录 连接相关参数 文件相关参数 缓存相关参数 MyISAM参数 InnoDB参数 连接相关参数 max_connections 允许客户端并发连接的最大数量,默认值是151,一般将该参数设置为50 ...
- Python图形库Turtle
画笔绘制状态函数 函数 描述 pendown() 放下画笔 penup() 提起画笔,与pendown()配合使用 pensize(width) 设置画笔线条的粗细为指定大小 画笔运动函数 函数 描述 ...
- VMware ezmomi工具使用
用两个静态IP克隆模板: ezmomi clone --template centos67 --hostname test01 --cpus 2 --mem 4 --ips 172.10.16.203 ...
- kibana get 查询失效
kibana版本:5.4 在使用kibana 查询数据时,如果我们根据数据id 来获得一条数据,写法 get 索引名称/类型名称/文档主键 如:get testindex/testtype/01 这样 ...
- 基于网络编程 TCP协议 及 socket 基本语法
socket是什么 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面, ...