Python培训12期-day2作业-购物车
- #!/usr/bin/env python
- import sys
- import os
- import getpass
- 商品={
- '图书': {
- "《Puppet实战》": 39,
- "《ZooKeeper分布式过程协同技术详解》":48,
- "《代码审计》":42,
- "《白帽子讲浏览器安全》":73,
- },
- '数码家电': {
- "Iphone6S":6000,
- "MacBookAir":15000,
- "DELL-R720":33000,
- "索尼PlayStation VR":2600,},
- '食品': {
- "茉莉花茶":3,
- "康师傅红烧牛肉面":3,
- "3+2饼干":5.5,
- "红牛":7,
- },
- '生活用品': {
- "汰渍洗衣液-550ml":23,
- "清风抽纸:300抽/三层":12,
- "电神水壶":98,
- "六神花露水":19,
- }
- }
- #定义各项初始值
- money='account.txt'
- logtime=0
- afile='afile.txt'
- bfile='bfile.txt'
- SHOPING=[]
- #显示余额
- def show_money():
- with open(money,'r+') as ac:
- for line in ac.readlines():
- yue = line.strip()
- return int(yue)
- def deny_account(username):
- print("This account already locked!")
- with open(bfile,'a+') as bf: # 此处最好为a+模式,本人之前使用a模式错误账号无法写入
- bf.write(username + '\n')
- flag=False
- while logtime < 3:
- username = input('\033[31;1m请输入用户名:\033[0m')
- with open(bfile, 'r') as lock_f:
- # 取出黑名单中的用户名与输入的用户名进行匹配
- for line in lock_f.readlines():
- if len(line) == 0:
- continue
- if username == line.strip():
- sys.exit('\033[32;1m用户 %s 已经被锁定!\033[0m' % username)
- # 如果用户名为空重新输入
- if len(username) == 0:
- print('用户名不能为空,请重新输入')
- continue
- with open(afile,'r') as af:
- for line in af.readlines():
- user,pwd = line.strip().split()
- if username == user:
- password = getpass._raw_input('请输入用户%s的密码:'%username).strip()
- if username == user and password == pwd:
- print('登陆成功!')
- flag=True
- break
- else:
- if logtime<3:
- print('密码错误请重新输入!')
- logtime+=1
- break
- else:
- if logtime<3:
- print('用户不存在!')
- logtime += 1
- if flag==True:
- print('Welcome %s come in TG!' % username)
- break
- else:
- deny_account(username)
- if flag==True:
- while True:
- if show_money() < 0:
- name1 = "\033[1;31;1m您的账户余额不足,请尽快充值!"
- print(name1.center(50, '-'))
- else:
- print('*'*50)
- 欢迎信息 = '\033[1;31;1m欢迎登录没有小菊花的网上超市!\033[0m'
- print(欢迎信息.center(54, '*'))
- print('\033[1;32;1m*\033[1m' * 50)
- for lei in 商品:
- print('\033[1;35;1m%s\033[1m'%lei)
- # print('\033[1;35;1m%s\033[1m'%lei)
- print('\033[1;32;1m*\033[1m'*50)
- 选择类 = input('\033[1;34;1m请选择类目:\033[0m')
- #二级流程
- for s in 商品[选择类]:
- print('\033[1;32;1m-\033[1m' * 50)
- print(s)
- 选择商品=input('请选择商品:')
- n = input('输入数量:')
- jiage=商品[选择类][选择商品]
- print('\033[1;31;1m本商品单价为:%d¥,本次共计添加%d个,总价为%d*%d=%d¥\033[0m'%(jiage,int(n),jiage,int(n),jiage*int(n)))
- SHOPING.extend([jiage*int(n)])
- print('\033[1;32;1m-\033[1m' * 50)
- xuanze=input('\033[1;31;1m是否继续购物,Y键返回主菜单,N进入购物车结算,请选择!\033[0m')
- #进入购物车结算
- if xuanze =='N':
- print('%s'%SHOPING)
- 结算=input('是否结算?Y/N')
- if 结算 =='Y':
- 余额=show_money()-int(sum(SHOPING))
- print(余额)
- with open(money, 'w+') as ac:
- ac.writelines('%s'%余额)
- #break
- 继续=input('是否继续购物(Y/N)?退出:N,返回上一级:Y.')
- if 继续=='Y':
- sys.exc_traceback()
- else:
- sys.exit()
- elif xuanze=='Y':
- break
- else:
- print("您选择的商品不存在!请重新选择!")
- break
- else:
- print("选择的类目不存在!")
- continue
- break
- break
afile.txt内容
carl openstack
helen tianle
lucy hr
kevin usa
bfile.txt内容随意
Python培训12期-day2作业-购物车的更多相关文章
- python基础day2作业:购物车
#功能:1.可注册账号2.登录买家账号3.可查询编辑购物车里商品4.可以余额充值5.可提示余额不足6.购物车结算 #使用:1.第一次使用先注册账号填写账号金额2.账号金额信息保存在buyer_acco ...
- 智普教育Python培训之Python开发视频教程网络爬虫实战项目
网络爬虫项目实训:看我如何下载韩寒博客文章Python视频 01.mp4 网络爬虫项目实训:看我如何下载韩寒博客文章Python视频 02.mp4 网络爬虫项目实训:看我如何下载韩寒博客文章Pytho ...
- 2015老男孩Python培训第八期视频教程
2015老男孩Python培训第八期视频教程,希望您通过本教程的学习,能学会常用方法和技巧.教程从基础知识开始讲解一直到后期的案例实战,完全零基础学习,从初学者的角度探讨分析问题,循序渐进由易到难,确 ...
- 老男孩python第六期
01 python s6 day7 上节回顾02 python s6 day7 SNMP使用03 python s6 day7 大型监控架构讲解04 python s6 day7 Redis使用05 ...
- python基础一之课后作业:编写登录接口
1 # Author : Mamba 2 3 #python基础一之课后作业:编写登录接口 4 5 # 输入用户名密码 6 # 认证成功后显示欢迎信息 7 # 用户名3次输入错误后,退出程序 8 # ...
- Python全栈学习_day002作业
Day2作业及默写 1.判断下列逻辑语句的True,False. 1)1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 & ...
- 使用 python 查看谁没有交作业
话说实验报告每天都要查人数,何不用程序实现 使用 python 查看谁没有交作业 version 1.0 程序嘛,肯定是可以改进的.使用该程序的前提是实验报告文件名中包含学号信息.将以上程序放在实验报 ...
- 【Python】:简单爬虫作业
使用Python编写的图片爬虫作业: #coding=utf-8 import urllib import re def getPage(url): #urllib.urlopen(url[, dat ...
- 老王Python培训视频教程(价值500元)【基础进阶项目篇 – 完整版】
老王Python培训视频教程(价值500元)[基础进阶项目篇 – 完整版] 教学大纲python基础篇1-25课时1.虚拟机安装ubuntu开发环境,第一个程序:hello python! (配置开发 ...
随机推荐
- [问题2015S03] 复旦高等代数 II(14级)每周一题(第四教学周)
[问题2015S03] 设 \(g(x)=x^n+a_1x^{n-1}+\cdots+a_{n-1}x+a_n\) 是数域 \(\mathbb{K}\) 上的多项式, \(V\) 是 \(\math ...
- 遗传算法在JobShop中的应用研究(part1: 绪论)
1. 什么是JobShop问题 Job,中文翻译成工件.一个工件又由若干道工序加工完成. resource, 资源.在本文的车间调度中资源指的是机器,每道工序要在某个特定机器上加工. Constrai ...
- C++11带来的优雅语法
C++11带来的优雅语法 自动类型推导 auto auto的自动类型推导,用于从初始化表达式中推断出变量的数据类型.通过auto的自动类型推导,可以简化我们的编程工作; auto是在编译时对变量进行了 ...
- 视频播放器之————JW Player参数详解
JW Player参数详解 1,安装 下载后,你可以得到一个例子,当用文本或HTML编辑器打开的时候,你可以发现swf是用一段短小的 javascript嵌入到页面上的.这个Javascript是Ge ...
- 安装 SciPy 和 scikit-learn 升级pip 及pip基本命令表
安装Scipy和scikit-learn出错,出错记录及当时最终解决办法 问题: 一.使用pip直接安装 直接pip install scipy C:\Users\Plain>pip insta ...
- 【转】Linux系统启动过程分析
[转]Linux系统启动过程分析 转自:http://blog.chinaunix.net/uid-23069658-id-3142047.html 经过对Linux系统有了一定了解和熟悉后,想对其更 ...
- MFC编程入门之七(对话框:为对话框添加控件)
创建对话框资源需要创建对话框模板.修改对话框属性.为对话框添加各种控件等步骤,前面一讲中已经讲了创建对话框模板和修改对话框属性,本节继续讲如何为对话框添加控件. 上一节中创建了一个名为"A ...
- 你真的会写单例模式吗-------Java实现
转载: 你真的会写单例模式吗--Java实现 单例模式可能是代码最少的模式了,但是少不一定意味着简单,想要用好.用对单例模式,还真得费一番脑筋.本文对Java中常见的单例模式写法做了一个总结,如有错漏 ...
- AxureRP8实战手册(基础11-20)
本文目录 基础11. 设置文本框输入为密码 基础12. 设置打开选择文件窗口 基础13. 限制文本框输入字符位数 基础14. 设置文本框提示文字 基础15. 设置文本框回车触发事件 基础16. 设置元 ...
- absolute和fixed
共同点: 改变行内元素的呈现方式,display设置为block:让元素脱离文档流,不占据空间:默认会覆盖到非定位元素上. 不同点: absolute的根元素是相对于static定位以外的第一个父元素 ...