python 练习2
购物订单系统:
#!usr/bin/env python
# encoding: utf-8
import sys
i = 0
inventory_dic = {'Car':1000,'SUV':5000,'Mac':300,'iPhone':1500,'Pen':10}
account_dic = {'wyh':123,'cloudsea':456}
balance = {'wyh':10000,'cloudsea':5000}
detail_list = []
#把锁定的用户读取到空列表中
l = []
f = open('lock.txt','r')
for n in f.readlines():
s = n.strip('\n')
l.append(s)
f.close() #验证用户名和密码
def verification(aot,pw):
if aot not in account_dic.keys():
print('你的账户名错误!')
return 0
elif pw != account_dic[aot]:
print('你的密码错误!')
return 0
else:
print('欢迎进入购物菜单!')
return 1 while True:
aot = input('请输入你的账户:').strip()
pw = int(input('请输入密码:'))
if aot in l:
print('你的账号被锁定,请联系你的管理员解锁!')
sys.exit()
if verification(aot,pw) == 0:
i += 1
if i == 3:
print('锁定账号,请联系你的管理员!')
with open('lock.txt','a') as p:
p.write(aot +'\n')
sys.exit()
continue
else:
print('你的账户余额:%s'% balance[aot])
break #进入购物系统 while True:
for k,v in inventory_dic.items():
print('%s:%s'%(k,v))
Num = input('请选择你要购买的商品名称(退出:q):')
if Num == 'q':
print(detail_list)
print('你的余额:%s' % balance[aot])
sys.exit()
elif balance[aot] < min(inventory_dic.values()):
print('你的余额太少,请充值后在进行购买!')
sys.exit()
elif balance[aot] < inventory_dic[Num]:
print('你的余额%s:你买不起,请从新选择'%balance[aot])
continue
elif Num in inventory_dic.keys():
detail_list.append(Num)
balance[aot] = balance[aot] - inventory_dic[Num]
print('你的余额:%s' % balance[aot])
continue
else:
print('你选择的商品不在清单中,请从新选择。')
continue
python 练习2的更多相关文章
- Python中的多进程与多线程(一)
一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个 ...
- Python高手之路【六】python基础之字符串格式化
Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...
- Python 小而美的函数
python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况 any any(iterable) ...
- JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议
软件开发是现时很火的职业.据美国劳动局发布的一项统计数据显示,从2014年至2024年,美国就业市场对开发人员的需求量将增长17%,而这个增长率比起所有职业的平均需求量高出了7%.很多人年轻人会选择编 ...
- 可爱的豆子——使用Beans思想让Python代码更易维护
title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Pyth ...
- 使用Python保存屏幕截图(不使用PIL)
起因 在极客学院讲授<使用Python编写远程控制程序>的课程中,涉及到查看被控制电脑屏幕截图的功能. 如果使用PIL,这个需求只需要三行代码: from PIL import Image ...
- Python编码记录
字节流和字符串 当使用Python定义一个字符串时,实际会存储一个字节串: "abc"--[97][98][99] python2.x默认会把所有的字符串当做ASCII码来对待,但 ...
- Apache执行Python脚本
由于经常需要到服务器上执行些命令,有些命令懒得敲,就准备写点脚本直接浏览器调用就好了,比如这样: 因为线上有现成的Apache,就直接放它里面了,当然访问安全要设置,我似乎别的随笔里写了安全问题,这里 ...
- python开发编译器
引言 最近刚刚用python写完了一个解析protobuf文件的简单编译器,深感ply实现词法分析和语法分析的简洁方便.乘着余热未过,头脑清醒,记下一点总结和心得,方便各位pythoner参考使用. ...
- 关于解决python线上问题的几种有效技术
工作后好久没上博客园了,虽然不是很忙,但也没学生时代闲了.今天上博客园,发现好多的文章都是年终总结,想想是不是自己也应该总结下,不过现在还没想好,等想好了再写吧.今天写写自己在工作后用到的技术干货,争 ...
随机推荐
- NGINX轻松管理10万长连接
先说说服务为什么使用HTTPs长连接技术?有如下几个原因:对响应时间要求较高:服务走的是公网,客户端与服务端的TCP建立的三次握手和断开的四次握手都需要40ms左右(真实数据包计算出来的),共需要80 ...
- Centos7下Rinetd安装与应用(转)
Linux下做地址NAT有很多种方法.比如haproxy.nginx的4层代理,linux自带的iptables等都能实现.haproxy.nginx就不说了,配置相对简单:iptables配置复杂, ...
- linux 之网络命令
write 给用户发消息,用户必须在线,以ctrl+d保存结束 语法: write 用户 wall发广播信息(write all) 语法:wall 信息 mail 查看发送电子邮件 发送语法 : m ...
- png 变透明
using System.Drawing Image image; image = Image.FromFile("d:\\1.png"); Bitmap bitma ...
- 理解 ASP.NET Web API 中的 HttpParameterBinding
背景 问题的起因是这样的.群里面一个哥们儿发现在使用 ASP.NET WebAPI 时,不能在同一个方法签名中使用多次 FromBodyAttribute 这个 Attribute .正好我也在用 W ...
- editplus注册码
EditPlus5.0注册码 注册名 Vovan 注册码 3AG46-JJ48E-CEACC-8E6EW-ECUAW EditPlus3.x注册码 EditPlus注册码生成器链接 http://ww ...
- java中的数据导出到Excel表中
整个项目中导出数据到.Excel的源码 import java.io.BufferedOutputStream; import java.io.FileInputStream; import java ...
- C#客户端和服务端数据的同步传输 (转载)
客户端: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;u ...
- iframe刷新
<div title="基本信息" style="padding:2px; "> <iframe id="newsrc& ...
- Polar Code(1)极化码SC译码迭代公式的理解
采用对数似然比求解的迭代公式推导: 考虑 如上图,将L的部分看为一个整体,用 exp(a)和exp(b)代替,并对式子左右都取对数,则公式变为如下所示: 对数似然比 上述公式等效一下公式: 进一步可等 ...