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! (配置开发 ...
随机推荐
- CSS 定位
一.CSS 定位和浮动 它们代替了多年来的表格布局. 定位的思想很简单,相对于正常位置.相对于父元素.另一个元素甚至是浏览器窗口的位置. 浮动在 CSS1 中被首次提出.浮动不完全是定位, ...
- [问题2014S12] 解答
[问题2014S12] 解答 先证明一个简单的引理. 引理 设 \(B\) 为 \(n\) 阶半正定 Hermite 阵, \(\alpha\) 为 \(n\) 维复列向量, 若 \(\overl ...
- SQL 向上取整、向下取整、四舍五入取整的实例!round、rounddown、roundup
sql server ==================================================== [四舍五入取整截取] select round(54.56,0) === ...
- shell中 "" 跟 ''的区别
在bash里,这两个都是引号,用来表明字符串,区别是,双引号中的变量会被展开,而单引号中不再展开.举个例子:a="abc"echo "str=$a" # 结果显 ...
- IE的条件注释
<!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]--> <!--[if IE]> 所有的IE可识别 <![ ...
- iOS - Xcode 常用快捷键
Xcode 常用快捷键 1)文件: command + shift + n 新建项目 command + n 新建文件 command + control + n 新建空文件 command + o ...
- 爬虫:获取多次跳转后的页面url
<?php $url = "xxxx"; $xx = get_headers($url,true); var_dump($xx); ?> Nbimer主页 剖面加阴影应 ...
- JQuery基础核心
一.代码风格 在jQuery程序中,不管是页面元素的选择.内置的功能函数,都是美元符号“$”来起始的. 而这个“$”就是jQuery当中最重要且独有的对象:jQuery对象,所以我们在页面元素选择或执 ...
- cxf笔记记录
一.Web Service框架介绍: 1. WebService框架的作用: -- WebService只是一种思想,不是一个具体的框架. -- 它也是javaEE的规范. -- 它可以跨平台(操作平 ...
- js高级程序设计(七)BOM
window 对象 BOM 的核心对象是window,它表示浏览器的一个实例.在浏览器中,window 对象有双重角色,它既是通过JavaScript 访问浏览器窗口的一个接口,又是ECMAScrip ...