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爬虫scrapy的LinkExtractor
使用背景: 我们通常在爬去某个网站的时候都是爬去每个标签下的某些内容,往往一个网站的主页后面会包含很多物品或者信息的详细的内容,我们只提取某个大标签下的某些内容的话,会显的效率较低,大部分网站的都是按 ...
- python爬虫之git的使用(windows下pycharm使用)
相信很多同学学会了git或者github以后都不知道怎么跟windows上的pycharm连在一起工作,那么下面我们开始介绍简单的安装和使用方法. 一.安装 1.首先你的有一个github的账户.注册 ...
- python之路--MRO和C3算法
一 . MRO(method resolution order) 多继承的一种方法,一种查找的顺序 在python3 里面是一种新类式MRO 需要用都的是C3算法 class A: pass clas ...
- python time模块介绍(日期格式化 时间戳)
import time # 1.time.time() 用于获取当前时间的时间戳, ticks = time.time() print(ticks) # 1545617668.8195682 浮点数 ...
- 【.NET】.NET MVC4 微信扫一扫功能实现-附全部代码
写在前面的 首先在调用微信的JS-SDK接口的时候需要仔细阅读一下官方的注意事项,否则可能事倍功半.这里先大概概述一下主要的流程,首先,使用微信扫一扫需要一个已经通过认证的公众号:其次,需要知道 ...
- Lodop打印连续的纸张
连续的纸张,有时有会被误解为没有高度,高度自适应,其实不是,这属于纸张连续打印,纸张高度和实际单个纸张高度相同.纸张高度自适应适用于没有高度的那种小票打印(卷纸没有纸张分界线),不是这种连续纸张.关于 ...
- EChart.js 笔记一
一直对数据可视化比较感兴趣,当年 Alibaba 年报晚会上的大屏显示可谓是技惊四座,够震撼,将数据之美展现得淋漓尽致. 国内的前端数据可视化插件中,echart.js 算是热度很高的,也容易上手,算 ...
- C# WebSocket模拟发送接收
WebSocket服务端 C#示例代码 using System; using System.Collections.Generic; using System.Linq; using System. ...
- git指令详解总结
Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多优势,其中之一就是远程操作非常简便.本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Gi ...
- CSS遮罩效果和毛玻璃效果
前面的话 本文将详细介绍CSS遮罩效果和毛玻璃效果 遮罩效果 普通遮罩 一般地,处理全屏遮罩的方法是使用额外标签 <style>.overlay{ position:fixed; top: ...