要求:

一、启动程序后,选择是商家还是用户

1、选择商家用户

输入用户名,密码进入

选择增加商品及价格:格式:  商品名称 价格

选择编辑商品及价格:根据提示进行操作

2、选择用户

输入用户名,密码进入

判断是否是第一次登录,如果是,提示进行充值

充值完成,显示商品列表,输入商品名称进行购买,检测余额是否够,够就直接扣款,不够提示余额不足。

3、可随时退出,退出时,打印已购买商品和余额。

python 版本 3.5

主函数:

#Author by Andy
#_*_ coding:utf-8 _*_
import sys,time,os
sys.path.append("E:\my python study\day2")
import login_new
#定义显示商品列表函数
def product_list():
with open(r'E:\my python study\files\product_list.txt',encoding='utf-8') as f:
for index,item in enumerate(f.readlines()):
print(item,end='')
print('\n') #定义增加商品函数
def add_product():
while True:
with open(r'E:\my python study\files\product_list.txt', 'a+', encoding='utf-8') as f:
Product=input('请输入增加的商品名称及价格:')
if Product=='q' or Product=='Q':
product_list()
exit()
else:
f.write(Product)
f.write('\n')
f.close()
product_list()
#定义修改商品价格函数
def edit_product():
while True:
f2 = open(r'E:\my python study\files\product_list.txt', 'r+', encoding='utf-8')
with open(r'E:\my python study\files\product_list.txt','r+',encoding='utf-8') as f:
print("您的商品列表:")
product_list()
old=input("请输入要修改的商品名称及价格:")
if old == 'q' or old == 'Q':
print(product_list())
exit()
else:
new=input("请输入修改后的商品名称及价格:")
if new == 'q' or new== 'Q':
print(product_list())
exit()
else:
for line in f:
if old in line:
line=line.replace(old,new)
f2.write(line)
print(product_list())
#定义判断是否第一次登录及充值函数
def chk_first_login():
if os.path.exists(r"E:\my python study\files\balance.txt"):
with open(r'E:\my python study\files\balance.txt', 'r', encoding='utf-8') as f:
for Balance in f.readlines():
print('欢迎光临,您目前的余额为:', Balance)
else:
with open(r'E:\my python study\files\balance.txt', 'w+', encoding='utf-8') as f:
print('欢迎光临,第一次使用,请先充值!')
Balance = input('请输入充值金额:')
f.write(Balance)
print('正在充值,请稍候', end='')
for i in range(10):
sys.stdout.write('.')
sys.stdout.flush()
time.sleep(1)
print('\n充值成功!祝您购物愉快^_^') #定义获取价格函数
def get_price(x):
with open(r'E:\my python study\files\product_list.txt',encoding='utf-8') as f:
item=[]
price=[]
for i in f.readlines():
item.append(i.split()[0])
price.append(i.split()[1])
s=zip(item,price)
d={}
for k,v in s:
d[k]=v
if x not in d.keys():
print("输入错误,请重新输入!")
buy_main()
else:
return int(d[x]) #定义获取余额函数
def get_balance():
with open(r'E:\my python study\files\balance.txt', 'r', encoding='utf-8') as f:
balance=f.read()
return int(balance) #定义购物车记录函数
def shopping_record(record):
with open(r'E:\my python study\files\shopping_cart.txt', 'a+', encoding='utf-8') as f:
for i in record:
f.write('%s\n'%(i))
#定义获取购物记录函数
def get_shopping_record():
with open(r'E:\my python study\files\shopping_cart.txt', 'r', encoding='utf-8') as f:
print(f.read())
#定义购买函数
def buy_main():
choice=input("输入商品名称购买商品,退出请按q!:")
if choice == 'q' or choice =='Q':
print('我的购物车:',end='')
get_shopping_record()
print("欢迎下次光临,再见!")
exit()
else:
Price = int(get_price(choice))
print("您要购买的商品价格为:%s" %(Price))
Balance=get_balance()
if Price > Balance:
print("\033[31;1m对不起,您的余额不足!\033[0m")
else:
print("您购买的%s 已添加至购物车"%(choice))
Balance=str(Balance - Price)
with open(r'E:\my python study\files\balance.txt', 'w+', encoding='utf-8') as f:
f.write(Balance)
Shopping_cart=[]
Shopping_cart.append(choice)
shopping_record(Shopping_cart)
#######################################################################################################################
def fun_customers():
login_name = input("Login:")
login_pass = input("Password:")
login_new.confirm(login_name,login_pass)
chk_first_login()
time.sleep(1)
print("我们有一下商品供您选购:")
product_list()
while True:
buy_main()
def fun_seller():
login_name = input("Login:")
login_pass = input("Password:")
login_new.confirm(login_name, login_pass)
print("您的商品列表:")
product_list()
while True:
print("增加商品输入a,修改商品价格输入)c:")
choice=input(":")
if choice=='a':
add_product()
elif choice=='c':
edit_product()
else:
print("输入错误,请重新输入!")
##################################################################################################################### print("商家入口输入s")
print("用户入口输入c")
role=input(":")
while True:
if role =='c' or role=='C':
fun_customers()
elif role == 's' or role == 'B':
fun_seller()
elif role == 'q' or role == 'Q':
print("谢谢使用!")
else:
print('输入错误,请重新输入!')

  

用户名密码判断函数:

#Author by Andy
#_*_ coding:utf-8 _*_
#定义校验用户名及密码函数
def confirm(x,y):
login_name = x
login_pass = y
_username = open(r"E:\my python study\files\username.txt")
username_list = []
for username in _username.readlines():
username_list.append(username.strip("\n"))
_username.close()
_password = open(r"E:\my python study\files\password.txt")
password_list = []
for passwd in _password.readlines():
password_list.append(passwd.strip("\n"))
_password.close()
passwd_dict = {}
s = zip(username_list, password_list)
for k, v in s:
passwd_dict[k] = v
if passwd_dict[login_name] != login_pass:
print ("username or password wrong!")
return 1
else:
# print ("Welcome!")
return 0

  

  

python3 购物程序的更多相关文章

  1. python-001 第一个Python3.x程序 hello world

    我们可以使用以下命令来查看我们使用的Python版本: (d:\ProgramData\Anaconda3) C:\Users\Administrator.2016-20160920ET>pyt ...

  2. [terry笔记]python购物程序

    如下是一个购物程序: 先输入工资,显示商品列表,购买,quit退出,最后格式化输出所买的商品. count = 0 while True: #做一个循环判断,如果输入的不是数字,基于提示,三次后退出 ...

  3. python ATM购物程序

    需求: 模拟实现一个ATM + 购物商城程序 额度 15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 每月22号出账单,每月10号为还款日,过期未还,按欠 ...

  4. pyhton购物程序

    要求: 启动程序后,让用户输入工资,然后打印出带有序号的商品列表 用户输入商品序号购买相应的商品,或者输入 ' q ' 退出购买界面 选择商品后,检查余额是否足够,够则直接扣款,不够则提示余额不足 用 ...

  5. windows主用python3 个别程序使用python2的方法

    原始需求: 平时执行命令都默认用python3,遇到个别程序需要python2的时候也能用python2. 实现: 1.先装python3,添加环境变量,这时在cmd里输入python可以显示出是版本 ...

  6. Python3.4程序异常判断

    实例代码[更多实例,请访问:www.yeayee.com] 1 #idle中按F5可以运行代码 2 #引入外部模块 import xxx 3 #random模块,randint(开始数,结束数) 产生 ...

  7. 用Pyinstaller把Python3.7程序打包成可执行文件exe

    1.通过pip3 install pyinstaller 安装成功 2.然后执行命令,首先:需要切换到程序所在的目录 执行命令 pyinstaller -F -w <文件名.py>,-F代 ...

  8. Python 简单购物程序

    # Author:Eric Zhao# -*- coding:utf-8 -*-'''需求:启动程序后,让用户输入工资,然后打印商品列表允许用户根据商品编号购买商品用户选择商品后,检测余额是否够,够就 ...

  9. python3编写程序,实现打印100以内的素数。

    代码如下: for x in range(2, 100): for y in range(2, x): if x % y == 0: break else: print(x, end="\t ...

随机推荐

  1. python学习笔记系列----(三)数据结构

    这一章主要是介绍了python一些常用的数据结构,比如list,tuple,dictionary,set,以及一些实用遍历技巧,主要讲的还是list. 3.1 list 主要介绍了list的一些常用的 ...

  2. httpclient4 文档翻译

    前言超文本传输协议(HTTP)也许是当今互联网上使用的最重要的协议了.Web服务,有网络功能的设备和网络计算的发展,都持续扩展了HTTP协议的角色,超越了用户使用的Web浏览器范畴,同时,也增加了需要 ...

  3. 【笔记】js parentsNode,lastChild,appendChild,insertBefore,nextSibling的意义及运用

    这几天看书看到这几个属性做几个笔记 parentNode:顾名思义,就是获取某元素的父元素等同于jq的parent(). *注意一下,在调用parentNode 方法的时候 调用的对象必须是用ID 或 ...

  4. js 函数总结

    函数的基本语法如下所示: function functionName(arg0, arg1,...,argN) { statements } 函数如果有返回值则return 后的语句将不会被执行,返回 ...

  5. YbSoftwareFactory 代码生成插件【十六】:Web 下灵活、强大的审批流程实现(含流程控制组件、流程设计器和表单设计器)

    程序=数据结构+算法,而企业级的软件=数据+流程,流程往往千差万别,客户自身有时都搞不清楚,随时变化的情况更是家常便饭,抛开功能等不谈,需求变化很大程度上就是流程的变化,流程的变化会给开发工作造成很大 ...

  6. iOS 图片的按照比例拉伸

    // 这是一个UIImage 的分类 (  UIImage+Extension.h   ) UIImage+Extension.h #import <UIKit/UIKit.h> @int ...

  7. [转]在windows环境中使用varnish

    varnish 的windows 版本下载地址: http://sourceforge.net/projects/cygvarnish/files/windows-zip-bundle/ 启动:var ...

  8. Lucene.net应用

    1.加入盘古分词方法 /// <summary> /// 对输入的搜索的条件进行分词 /// </summary> /// <param name="str&q ...

  9. 鸟哥的linux私房菜学习记录之软件安装RPM,SRPM,YUM

  10. JavaScript中const、var和let区别浅析

    在JavaScript中有三种声明变量的方式:var.let.const.下文给大家介绍js中三种定义变量的方式const, var, let的区别. 1.const定义的变量不可以修改,而且必须初始 ...