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 ...
随机推荐
- 小波包分解 仿真 matlab
clc;close all;clear;fs = 100000;t = 1: 100;x = sin(2*pi*4000* t/fs) + sin(2*pi*40000*t/fs); %db8[Lo_ ...
- too many open files 报错
看到这种某个程序或sock 打开文件数超出了限制,可以在/etc/security/limits.conf 这个文件中设置某个用户的可打开文件数. 例如: root hard nofile 16384 ...
- C# IComparable接口、IComparer接口和CompareTo(Object x)方法、Compare()方法
在项目中经常会用到字符串比较,但是有时候对字符串的操作比较多,规则各异.比如有的地方我们需要用排序规则,有的地方需要忽略大小写,我们该如何写一个比较容易操作的比较方法呢?重新实现IComparer接口 ...
- webbrower判断页面是否加载完成的好方法
public void WaitPageCompleted(int timeOutSec) { ; ; j < timeOutSec * ; j++) { _wb.Invoke(new Acti ...
- 如何将Sphinx生成的html文档集成进入Django
参考 http://stackoverflow.com/questions/10594618/django-and-sphinx-how-to-view-the-html-sphinx-generat ...
- 设计模式--建造者模式Builder(创建型)
一.首先看建造者模式的UML图: 二.再来看一个建造者模式的例子 class Builder { public: virtual void BuildHead() {} virtual void Bu ...
- DataGridView里CheckBox实现全选控制
1. checkbox点击事件 private void myStyleDataGridView1_CellClick(object sender, DataGridViewCellEventArgs ...
- 106运用SWITCH语句打印星期几的单词
package com.chongrui.test;/*运用SWITCH语句打印星期几的单词 * */ public class TypeConvertion { public static void ...
- Struts中文件上传的一些规则...
1.action中定义规范 如果jsp中file的name="xxx",那么后台action中的属性要做相应更改为 private File xxx; private String ...
- Foreach 原理
public class Person { private string[] friends = { "asf", "ewrqwe", "ddd&qu ...