Python3.5 Day2作业:购物车程序
需求:
1. 启动程序后,用户通过账号密码登录,然后打印商品列表。
2. 允许用户根据商品编号购买商品。
3. 用户选择商品后,检测余额是否足够,够就直接扣款,不够就提醒充值。
4. 可随时退出,退出时,打印已购买的商品和余额。
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- count = 0 # 计数器
- username = "aaa" # 登录用户名
- userpassword = "asd" # 登录密码
- #创建黑名单表
- f=open('name.txt','a')
- f.close()
- #创建用户余额存放地址
- f = open('salary.txt', 'a')
- f.close()
- f = open("name.txt", "r")
- file_list = f.readlines()
- f.close()
- lock = []
- name = input("登录用户名:")
- # 判断用户是否在黑名单
- for i in file_list:
- line = i.strip("\n")
- lock.append(line)
- if name in lock:
- print("您的账号已锁定,请联系管理员。")
- exit()
- else:
- # 如果用户没有在黑名单,判断用户是否存在。
- if name == username:
- # 如果密码连续输错三次,锁定账号。
- while count < 3:
- password = input("登录密码:")
- if name == username and password == userpassword:
- print("\033[92mWelcome to Mr.wang mall\033[0m")
- break
- else:
- print("账号密码不匹配")
- count += 1
- if count ==3:
- print("对不起,您的账号连续输错三次账号已锁定,请联系管理员。")
- f = open("aaa.txt", "w+")
- li = ['%s' % username]
- f.writelines(li)
- f.close()
- exit()
- else:
- print("对不起,您的账号连续输错三次账号已锁定,请联系管理员。")
- f = open("name.txt", "w+")
- li = ['%s' % username]
- f.writelines(li)
- f.close()
- else:
- print("用户名不存在,请输入正确的用户名。")
- exit()
- #用户购买商品列表
- shopping_list = []
- #用户购买物品名称存放列表
- goods = []
- #用户购买物品价格存放列表
- price = []
- #商品价格列表
- product_list = [
- ['Iphone',5800],
- ['Mac Pro',9800],
- ['Bike',800],
- ['Watch',10600],
- ['Coffee',31],
- ['Alex Python',120],
- ]
- #读取用户的余额,如果首次登陆余额为0
- f1 = open("salary.txt", "r")
- file_list = f1.readlines()
- f1.close()
- salary = []
- if file_list:
- print("")
- else:
- f2 = open("salary.txt", "w")
- f2.write("")
- f2.close()
- f1 = open("salary.txt", "r")
- fil_list = f1.readlines()
- f1.close()
- for i in fil_list:
- lin = i.strip("\n")
- salary.append(lin)
- salary = int(salary[0])
- #商品购买循环
- while True:
- #循环打印商品目录
- for j in range(1):
- print("----shopping list----")
- for i,ele in enumerate(product_list):
- print (i,ele[0],ele[1])
- var = (input("\033[94m请输入你要买的商品序列号(充值:t 余额:b 购买:y 退出:q):\033[0m"))
- #判断用户输入的是否为商品序号是否为数字
- if var.isdigit():
- var = int(var)
- #判断用户输入的商品序号是否在范围内
- if var >=0 and len(product_list) > var:
- p = product_list[var]
- #判断用户的余额是否足够买想要的商品
- if p[1] <= salary:
- shopping_list.append(p)
- goods.append(p[0])
- price.append(p[1])
- salary = salary -p[1]
- print("\033[94m您购买\033[0m\033[95m%s\033[0m\033[94m已加入购物车后,您的余额还有\033[0m\033[95m%s\033[0m"%(p[0],salary))
- else:
- print("\033[91m您的余额不足(余额:%s),请充值后购买(充值:t)。\033[0m"%salary)
- else:
- print("\033[91m没有找到您想要的商品,请重新输入商品编号。\033[0m")
- continue
- elif var == "t":
- num1 = input("\033[94m请输入充值金额:\033[0m")
- if num1.isdigit():
- num1 = int(num1)
- salary = salary + num1
- print("您现在的总余额是:",salary)
- else:
- print("\033[91m请输入正确的充值金额\033[0m")
- num1 = input("\033[94m请输入充值金额:\033[0m")
- continue
- elif var == "q":
- exit()
- elif var == "b":
- print("\033[91m您当前余额为:%s\033[0m"%salary)
- elif var == "y":
- print("--------shopping list------")
- goods.sort()
- s = set(goods)
- for item in s:
- print (" %s x %d"%(item,goods.count(item)))
- sum = 0
- for j in price:
- sum = sum +j
- print("您总计消费:\033[95m % s\033[0m余额:\033[95m % s\033[0m"%(sum,salary))
- print("\033[94m欢迎您下次购物\033[0m")
- f = open("salary.txt", "w+")
- la = ['%s' %salary]
- f.writelines(la)
- f.close()
- exit()
- else:
- print("\033[91m请输入正确的商品编号。\033[0m")
- continue
Python3.5 Day2作业:购物车程序的更多相关文章
- python基础day2作业:购物车
#功能:1.可注册账号2.登录买家账号3.可查询编辑购物车里商品4.可以余额充值5.可提示余额不足6.购物车结算 #使用:1.第一次使用先注册账号填写账号金额2.账号金额信息保存在buyer_acco ...
- Python培训12期-day2作业-购物车
#!/usr/bin/env python import sys import os import getpass 商品={ '图书': { "<Puppet实战>": ...
- python3.x Day2 购物车程序练习
购物车程序: 1.启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 4. ...
- Python初学者第十二天 购物车程序小作业
12day 作业题目: 购物车程序 作业需求: 数据结构: goods = [ {"name": "电脑", "price": 1999}, ...
- Python3学习之路~2.2 简单的购物车程序
程序:购物车程序 需求:启动程序后,让用户输入工资,然后打印商品列表允许用户根据商品编号购买商品用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 可随时退出,退出时,打印已购买商品和余额 代码 ...
- python第七天-作业[购物车]
作业要示: 购物车程序:启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表允许用户根据商品编号购买商品用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 可随时退出 ...
- Python学习-购物车程序
程序:购物车程序 需求: 启动程序后,让用户输入工资,然后打印商品列表 允许用户根据商品编号购买商品 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 可随时退出,退出时,打印已购买商品和余额 ...
- 利用JSP编程技术实现一个简单的购物车程序
实验二 JSP编程 一.实验目的1. 掌握JSP指令的使用方法:2. 掌握JSP动作的使用方法:3. 掌握JSP内置对象的使用方法:4. 掌握JavaBean的编程技术及使用方法:5. 掌握JSP ...
- 简单购物车程序(Python)
#简单购物车程序:money_all=0tag=Trueshop_car=[]shop_info={'apple':10,'tesla':100000,'mac':3000,'lenovo':3000 ...
随机推荐
- Android实现双击事件的两种方式
Work around的方法是先监听onTouch事件来监听连续点击次数,每次点击都布置一个间隔时间的延时任务,延时任务执行时判断间隔内是否还有点击,如果没有则发布点击次数,重置计数. 实现代码如下: ...
- ScriptedSandbox64.exe 在写Winform程序Debug时不停提交数据
抓包时发现不停的在提交数据,导致抓包内容看不到. 取消方式:Tools -> Options -> Debugging -> General -> Enable Diagnos ...
- ACM/ICPC 之 Dinic+枚举最小割点集(可做模板)(POJ1815)
最小割的好题,可用作模板. //Dinic+枚举字典序最小的最小割点集 //Time:1032Ms Memory:1492K #include<iostream> #include< ...
- using namespace std 和 using std::cin
相较using std::cin使用using namespace std不会使得程序的效率变低,或者稳定性降低,只是这样作会将很多的名字引入程序,使得程序员使用的名字集合变小,容易引起命名冲突. 在 ...
- React学习笔记-8-属性和状态详解
属性的含义和用法props=properties 英文中属性的意思.属性不可以修改,也就是属性不可以由组件进行修改,组件的属性是由父组件传递过来的,相当于组件在出生的时候带的.用法第一种:直接在调用组 ...
- Webbench性能测试
1.下载安装:立即下载 官网:http://home.tiscali.cz/~cz210552/webbench.html 2.解压缩:tar -zxvf webbench-1.5.tar.gz 3 ...
- 与你相遇好幸运,用sinopia搭建npm私服
需求: >在企业内部搭建私有npm服务器,企业开发人员上传下载自己开发的npm包 >私有npm服务器包不存在时,找npm或者taobao的镜像站点 >服务器硬盘有限,希望只缓存下载过 ...
- Tensorflow 处理libsvm格式数据生成TFRecord (parse libsvm data to TFRecord)
#写libsvm格式 数据 write libsvm #!/usr/bin/env python #coding=gbk # ================================= ...
- Linux C编程学习之开发工具3---多文件项目管理、Makefile、一个通用的Makefile
GNU Make简介 大型项目的开发过程中,往往会划分出若干个功能模块,这样可以保证软件的易维护性. 作为项目的组成部分,各个模块不可避免的存在各种联系,如果其中某个模块发生改动,那么其他的模块需要相 ...
- Java基础学习(三)
/* java中的八种基本数据类型: 整数: byte . short . int . long 小数: float double 字符: char 布尔: boolean 字符串的类型: Strin ...