新手写作,用来练习与提高python编写、思考能力,有错误的地方请指正,谢谢!
第一次写博客,课题是一位大神的博客,本着练习的目的,就自己重写了一遍,有很多不足的地方,希望借博客记录下自己的成长; 
#!/usr/bin/env python
#coding:utf-8
import sys
class Shop(object):
def __init__(self):
self.Red = "\033[1;31m"
self.Gre = "\033[1;32m"
self.Res = "\033[0m"
with open('user_file.txt','r') as fp:
user_list = eval(fp.readline()) # 用户的名字与密码转换成字典
with open('lock_name.txt','r') as fp2:
lock_name = eval(fp2.readline()) # 锁定的用户为列表
with open('money_list.txt','r') as fp3:
money_list = eval(fp3.readline())
def nameCheck(self,a):
if a in self.user_list and a not in self.lock_name:
return 0 #如果名字在user_file里面,且没在锁定文件里面的话,返回0
elif a in self.user_list and a in self.lock_name:
return 1 #名字在user_file里面,且被锁定,返回1
else:
return 2 #否则返回2 def passwdCheck(self,a,b):
count = 3
while count > 1:
try:
if b == self.user_list[a]:
return 0
else:
count -= 1
print "密码错误,剩余%d次" % count
b = raw_input("请再次输入你的密码: ")
except KeyError :
return 2
else:
return 1 def checkAfter(self,b,c,dd):
if b == 0 and c == 0 :
print self.Gre,"恭喜你(%s),登陆成功!!!,欢迎你来到我们的商店!"%dd,self.Res #成功后动作进到商店
self.shopCounts()
elif b == 1 :
print self.Red,"对不起,你(%s)的账号被锁定,请联系客服!!!"%dd,self.Res #不成功则动作回到初始位置
pass
elif c == 1 :
print "密码错误,账号将被锁定"
self.nameLock(dd)
else:
print self.Red,"账号(%s)不存在,是否创建用户"%dd,self.Res #不存在则动作到注册位置
self.signName() def shopCounts(self):
shop_list = {"phone":2000,"ipad":1500,"ice_box":500}
for key,value in shop_list.items():
print key," : ",value #打印商店内容 def signName(self):
while True:
sign_name = raw_input("请输入你要注册的账号:")
value = self.nameCheck(sign_name)
passwd = raw_input("输入你的密码: ")
if value == 2:
print "congratulations,账号可用"
money = raw_input("输入账号资金: ")
if money.isdigit():
print """name: %s
passwd: %s
money: %d""" %(sign_name,passwd,int(money))
self.user_list.setdefault(sign_name,passwd)
self.money_list.setdefault(sign_name,money)
confirm = raw_input("是否确认以上信息: ")
if confirm.upper() == "Y":
with open('user_file.txt','r+') as fp:
fp.write(str(self.user_list))
with open('money_list.txt','r+') as fp2:
fp2.write(str(self.money_list))
break
else:
print "重新来过"
continue
else:
print "资金错误,返回重来"
continue
else:
print "账号不可用"
continue
def nameLock(self,a):
self.lock_name.append(a)
with open('lock_name.txt','r+') as fp:
fp.write(str(self.lock_name)) maomao = Shop()
while True:
name = raw_input("请输入你的账号:") if name.upper() == "Q":
sys.exit()
else:
passwd = raw_input("请输入你的密码:")
b = maomao.nameCheck(name)
c = maomao.passwdCheck(name,passwd)
maomao.checkAfter(b,c,name)

Python小练习-购物商城(一部分代码,基于python2.7.5)的更多相关文章

  1. 微信小程序购物商城系统开发系列-目录结构

    上一篇我们简单介绍了一下微信小程序的IDE(微信小程序购物商城系统开发系列-工具篇),相信大家都已经蠢蠢欲试建立一个自己的小程序,去完成一个独立的商城网站. 先别着急我们一步步来,先尝试下写一个自己的 ...

  2. 微信小程序购物商城系统开发系列

    微信小程序购物商城系统开发系列 微信小程序开放公测以来,一夜之间在各种技术社区中就火起来啦.对于它 估计大家都不陌生了,对于它未来的价值就不再赘述,简单一句话:可以把小程序简单理解为一个新的操作系统. ...

  3. Python实现ATM+购物商城

    需求: 模拟实现一个ATM + 购物商城程序 额度 15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 每月22号出账单,每月10号为还款日,过期未还,按欠 ...

  4. python 信用卡系统+购物商城见解

    通过完成信用卡系统+购物商城 使自己在利用 字典和列表方面有了较大的提升,感悟很深, 下面将我对此次作业所展示的重点列表如下: #!/usr/bin/env python3.5 # -*-coding ...

  5. 微信小程序购物商城系统开发系列-工具篇

    微信小程序开放公测以来,一夜之间在各种技术社区中就火起来啦.对于它 估计大家都不陌生了,对于它未来的价值就不再赘述,简单一句话:可以把小程序简单理解为一个新的操作系统.新的生态,未来大部分应用场景都将 ...

  6. python采用sqlachmy购物商城

    一.流程图: 二.目录结构: C:\USERS\DAISY\PYCHARMPROJECTS\S12\MARKET │ __init__.py │ __init__.pyc │ ├─backend │ ...

  7. Python作业之购物商城

    作业:购物商场 1.商品展示,价格 2.银行卡余额 3.付账 程序流程图如下: 代码如下: ShopDisplay = {'} print(ShopDisplay) ShoppingCartPrice ...

  8. python小程序——购物

    流程图  代码程序 saving = int(input('请输入你的工资:'))shopping = [['iphone',5800],['mx6',2000],['pythonbook',80], ...

  9. day2编写购物商城(1)

    作业:购物商城 商品展示,价格 买,加入购物车 付款,钱不够     具体实现了如下功能: 1.可购买的商品信息显示 2.显示购物车内的商品信息.数量.总金额 3.购物车内的商品数量进行增加.减少和商 ...

随机推荐

  1. MySQL查找数据中相同的数据,并进行删除

    查找表中多余的重复记录,重复记录是根据某个字段来判断 select * from 表名 where 字段 in (select 字段 from 表名 group by 字段 having count( ...

  2. visual studio c++项目文件分类混乱整理

    演示环境: win10 + vs2015 (下面简称VS)+ visual assist (下面简称VA) 1.混乱 装了VA的VS,有个快捷键,可快速切换 .h 文件和 .cpp(.cc, .cxx ...

  3. 【LeetCode】370. Range Addition 解题报告(C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 只修改区间起终点 日期 题目地址:https://le ...

  4. 【LeetCode】448. Find All Numbers Disappeared in an Array 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 方法一:暴力求解 方法二:原地变负做标记 方法三:使用set ...

  5. 【LeetCode】172. Factorial Trailing Zeroes 解题报告(Java & Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 递归 循环 日期 题目描述 Given an integer ...

  6. 【LeetCode】1047. Remove All Adjacent Duplicates In String 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 栈 日期 题目地址:https://leetcode ...

  7. 1275 - Internet Service Providers

    1275 - Internet Service Providers    PDF (English) Statistics Forum Time Limit: 2 second(s) Memory L ...

  8. react hooks 如何自定义组件(react函数组件的封装)

    前言 这里写一下如何封装可复用组件.首先技术栈 react hooks + props-type + jsx封装纯函数组件.类组件和typeScript在这不做讨论,大家别白跑一趟. 接下来会说一下封 ...

  9. 一个网关服务性能问题的Dump分析

    本篇文章分为三部分,首先简单介绍一下分析的工具Windbg,其次针对一个网关服务性能问题进行逐步刨析,最后针对性能问题的分析总结. 一 Windbg介绍 1.Windbg是个非常强大的调试器,它设计了 ...

  10. 洛谷 P2397:yyy loves Maths VI (mode)(摩尔投票算法)

    题目背景 自动上次redbag用加法好好的刁难过了yyy同学以后,yyy十分愤怒.他还击给了redbag一题,但是这题他惊讶的发现自己居然也不会,所以只好找你 题目描述 [h1]udp2:第一题因为语 ...