博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python小练习-购物商城(一部分代码,基于python2.7.5)
阅读量:5216 次
发布时间:2019-06-14

本文共 3517 字,大约阅读时间需要 11 分钟。

新手写作,用来练习与提高python编写、思考能力,有错误的地方请指正,谢谢!
第一次写博客,课题是一位大神的博客,本着练习的目的,就自己重写了一遍,有很多不足的地方,希望借博客记录下自己的成长; 
#!/usr/bin/env python#coding:utf-8import sysclass 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: %spasswd: %smoney: %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)

 

 

 

转载于:https://www.cnblogs.com/Mail-maomao/p/6870277.html

你可能感兴趣的文章
Linux课程笔记 http基础
查看>>
『TCP/IP详解——卷一:协议』读书笔记——09
查看>>
python模块整理8-glob(类似grep)和fnmatch(匹配文件名)
查看>>
PHP 实时获取文件大小
查看>>
JZOJ 1003【东莞市选2007】拦截导弹——dp
查看>>
git
查看>>
Java的初始化块、静态初始化块、构造函数的执行顺序及用途探究
查看>>
[原]Kettle连接SQL Server 2005 Express数据库
查看>>
jQuery插件开发全解析<转>
查看>>
ActiveMQ两种模式PTP和PUB/SUB<转>
查看>>
转 : React Native 开发之 IDE 选型和配置
查看>>
条件分支和循环
查看>>
使用jsp/servlet简单实现文件上传与下载
查看>>
es快照备份和跨集群恢复
查看>>
Http协议
查看>>
专家:明年楼市可能迎来最困难时期
查看>>
[摘]C++中list的用法
查看>>
Excel Sheet Column Title
查看>>
《Windows Mobile平台应用与开发》写作工作顺利进行中
查看>>
编程语言的分类
查看>>