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 ...
随机推荐
- Python目录
- How do I get the path of the current executed file in Python?
First, you need to import from inspect and os from inspect import getsourcefile from os.path import ...
- 【webGl】threejs实现一个简单的动画-弹跳的小球
在这里,我们将动态画面简称为动画(animation).正如动画片的原理一样,动画的本质是利用了人眼的视觉暂留特性,快速地变换画面,从而产生物体在运动的假象.而对于Three.js程序而言,动画的实现 ...
- LeetCode 36 Valid Sudoku
Problem: Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board ...
- 1.vim常用方法
vim编辑器 ASCII vi: vim: 全屏,模式化 vim模式: 编辑模式(命令模式) 输入模式 末行模式 模式转换: 编辑-->输入 i,a,o (o:在当前光标所在行的 ...
- shell 输出九九乘法表
#/bin/bash i= j= )) do while(($j<=$i)) do echo -ne $j×$i=$[$j*$i]"\t" j=$[$j+] done ech ...
- 怎么理解js中的事件委托
怎么理解js中的事件委托 时间 2015-01-15 00:59:59 SegmentFault 原文 http://segmentfault.com/blog/sunchengli/119000 ...
- Vi命令备忘
备忘 Ctrl+u:向文件首翻半屏: Ctrl+d:向文件尾翻半屏: Ctrl+f:向文件尾翻一屏: Ctrl+b:向文件首翻一屏: Esc:从编辑模式切换到命令模式: ZZ:命令模式下保存当前文件所 ...
- Linux学习笔记之兄弟连
systemctl --user enable pulseaudio说明:安装完成后系统没有声音,用该命令可以打开.ifconfig eth0 192.168.118.1说明:给网卡设置IP地址.ap ...
- javase-常用三种遍历方法
javase-常用三种遍历方法 import java.util.ArrayList; import java.util.Iterator; import java.util.List; public ...