需求:

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作业:购物车程序的更多相关文章

  1. python基础day2作业:购物车

    #功能:1.可注册账号2.登录买家账号3.可查询编辑购物车里商品4.可以余额充值5.可提示余额不足6.购物车结算 #使用:1.第一次使用先注册账号填写账号金额2.账号金额信息保存在buyer_acco ...

  2. Python培训12期-day2作业-购物车

    #!/usr/bin/env python import sys import os import getpass 商品={ '图书': { "<Puppet实战>": ...

  3. python3.x Day2 购物车程序练习

    购物车程序: 1.启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 4. ...

  4. Python初学者第十二天 购物车程序小作业

    12day 作业题目: 购物车程序 作业需求: 数据结构: goods = [ {"name": "电脑", "price": 1999}, ...

  5. Python3学习之路~2.2 简单的购物车程序

    程序:购物车程序 需求:启动程序后,让用户输入工资,然后打印商品列表允许用户根据商品编号购买商品用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 可随时退出,退出时,打印已购买商品和余额 代码 ...

  6. python第七天-作业[购物车]

    作业要示: 购物车程序:启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表允许用户根据商品编号购买商品用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 可随时退出 ...

  7. Python学习-购物车程序

    程序:购物车程序 需求: 启动程序后,让用户输入工资,然后打印商品列表 允许用户根据商品编号购买商品 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 可随时退出,退出时,打印已购买商品和余额 ...

  8. 利用JSP编程技术实现一个简单的购物车程序

    实验二   JSP编程 一.实验目的1. 掌握JSP指令的使用方法:2. 掌握JSP动作的使用方法:3. 掌握JSP内置对象的使用方法:4. 掌握JavaBean的编程技术及使用方法:5. 掌握JSP ...

  9. 简单购物车程序(Python)

    #简单购物车程序:money_all=0tag=Trueshop_car=[]shop_info={'apple':10,'tesla':100000,'mac':3000,'lenovo':3000 ...

随机推荐

  1. 全部leetcode题目解答(不含带锁)

    (记忆线:当时一刷完是1-205. 二刷88道.下次更新记得标记不能bug-free的原因.)   88-------------Perfect Squares(完美平方数.给一个整数,求出用平方数来 ...

  2. python之路二十一

    URL        - 两个    Views        - 请求的其他信息        from django.core.handlers.wsgi import WSGIRequest   ...

  3. bootStrap树形目录组件

    需求描述 产品添加页面,需要选择车型.在bootStrap的modal上弹出子modal来使用.车型一共有4级目录.要使用目录树.然后分活动和商品两种,需要能够通过不通参数来调用该组件.车型品牌要使用 ...

  4. 第3章 拍摄UFO——单一职责原则

    就一个类而言,应该仅有一个引起它变化的原因

  5. ALS

    最近看了一些关于ALS(肌萎缩性脊髓侧索硬化症)的电视剧和一本ALS患者的生活自述的书. 一次偶然的机会在一部日剧<我所存在的时间>中看到了ALS这种疾病,感觉这就像众病之王--癌症一样, ...

  6. 解决 odoo.py: error: option --addons-path: The addons-path 'local-addons/' does not seem to a be a valid Addons Directory!

    情况说明 odoo源文件路径-/odoo-dev/odoo/: 我的模块插件路径 ~/odoo-dev/local-addons/my-module 在my-module中创建了__init__.py ...

  7. vue笔记

    安装vue脚手架工具 sudo cnpm install -g vue-cli

  8. Python列表去除重复元素

    主要尝试了3种列表去除重复元素 #2.去除列表中的重复元素 #set方法 def removeDuplicates_set(nums): l2 = list(set(l1)) #用l1的顺序排序l2 ...

  9. CentOS7 安装中文帮助手册

    1.首先确定系统安装中文字体否 locale 2.rpm安装中文帮助手册 挂在光盘 将man-pages-zh-CN-1.5.2-4.el7.noarch.rpm拷贝到本机 rpm -ivh man- ...

  10. 查看sqlserver被锁的表以及如何解锁

    select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName from sys.dm_tran ...