侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

python实现彩票系统

Python  /  管理员 发布于 7年前   177

本文为大家分享了python实现彩票系统的具体代码,供大家参考,具体内容如下

功能:1、注册  2、登录  3、充钱   4、提现  5、下注  6、开奖  7、退出

简述:彩民需要用身份证号码开户注册一个彩票号码,购买彩票时需要先登录,可以充值以及提现。购买的彩票金额可以自己给定。此系统主要采用面向对象的方法,信息存储方式采用pickle模块来进行存储。

系统主函数:

from lotterysystem import lotterySystemimport displayviewimport osimport pickleimport time def main(): displayview.display() path = r"H:\myPythonFile\彩票系统\彩票系统\userInformation.txt" f = open(path, "rb") # uersdict = {} uersdict = pickle.load(f) # 打印出所有用户的信息 for x in uersdict:  print("name:%s idCard:%s phone:%s cardNum:%s password:%s money:%d" %    (uersdict.get(x).name, uersdict.get(x).idCard, uersdict.get(x).phoneNum,    uersdict.get(x).card.cardNum, uersdict.get(x).card.password, uersdict.get(x).card.cardMoney)) f.close() lotterysystem = lotterySystem(uersdict) islogin = None while True:  time.sleep(3)  displayview.chooseview()  operation = input("请选择您的操作:")  if operation == '1':   islogin = lotterysystem.register()  elif operation == '2':   islogin = lotterysystem.login()   print("登录成功!")  elif operation == '3':   if islogin:    lotterysystem.charge(islogin)   else:    print("请先登录...")  elif operation == '4':   if islogin:    lotterysystem.embody(islogin)   else:    print("请先登录...")  elif operation == '5':   if islogin:    buyLotteryNum, buymoney = lotterysystem.buylottery(islogin)   else:    print("请先登录...")  elif operation == '6':   if islogin:    lotterysystem.kaijiang(islogin, buymoney, buyLotteryNum)   else:    print("请先登录...")  elif operation == '7':   if islogin:    lotterysystem.quit(islogin)    print("退出成功!")    f = open(path, "wb")    pickle.dump(uersdict, f)     f.close()    return -1   else:    print("请先登录...")  else:   print("操作有误!系统自动退出...")   return -1if __name__ == "__main__": main()

用pickle模块读取文件信息时,文件必须有内容,否则会报错。所以,第一次执行该程序时,必须先将信息写入文件后才能读。

系统界面函数:

def display(): print(""" ******************************************* *           * *           * *   欢迎来到木子李彩票系统   * *           * *           * ******************************************* """) def chooseview(): print(""" ******************************************* *  1、注册   2、登录   * *  3、充钱   4、提现   * *  5、下注   6、开奖   * *           * *    7、退出     * *******************************************  """)

系统功能函数:实现注册等功能

from uers import Uersfrom card import Cardimport checkimport random class lotterySystem(): def __init__(self, userDict):  self.userDict = userDict  def register(self):  name = input("请输入您的名字:").strip()  if not check.checkName(name):   return -1  idCard = input("请输入您的身份证号码:").strip()  if not check.checkIdentity(idCard):   return -1  phoneNum = input("请输入您的电话号码:").strip()  if not check.checkPhone(phoneNum):   return -1  cardNum = check.getlotteryCardNum()  while True:   if self.userDict.get(cardNum) != None:    card = check.getBankCardNum()   else:    break  prestoredMoney = int(input("请输入预存款金额:"))  if not check.checkPrestoredMoney(prestoredMoney):   return -1  onePassword = input("请设置您的密码:").strip()  for x in range(2):   if not check.checkPassword(onePassword):    print("密码输入不正确!")   else:    break  else:   print("密码输入不正确!开户失败...")   return -1  card = Card(cardNum, onePassword, prestoredMoney)  uers = Uers(name, idCard, phoneNum, card)  self.userDict[cardNum] = uers  print("恭喜您!注册成功,请牢记您的卡号:", cardNum)  return cardNum  def login(self):  cardNum = input("请输入您的卡号:").strip()  password = input("请输入您的密码:").strip()  uers = self.userDict.get(cardNum)  if uers == None or uers.card.password != password:   print("该卡不存在或密码不正确!登录失败...")   return False  return cardNum  def charge(self, cardNum):  money = int(input("请输入充值金额:"))  if money > 0:   pass  else:   print("充值失败...")   return -1  self.userDict.get(cardNum).card.cardMoney += money  print("充值成功,余额 %d 元:" % self.userDict.get(cardNum).card.cardMoney)  def embody(self, cardNum):  print("余额: %d 元" % self.userDict.get(cardNum).card.cardMoney)  money = int(input("请输入提现金额:"))  if money < self.userDict.get(cardNum).card.cardMoney:   pass  else:   print("余额不足!提现失败...")   return -1  self.userDict.get(cardNum).card.cardMoney -= money  print("提现成功,余额: %d 元" % self.userDict.get(cardNum).card.cardMoney)  def buylottery(self, cardNum):  lotteryNum = input('请输入所购买的彩票的序列号(6位数字,只含0和1):')  while True:   for x in lotteryNum:    if len(lotteryNum) == 6:     pass    else:     lotteryNum = input('输入位数有误!请重新输入...:')    if x == '0' or x == '1':     pass    else:     lotteryNum = input('输入数字有误!请重新输入...:')   break  buymoney = int(input("请输入购买金额:"))  if buymoney < self.userDict.get(cardNum).card.cardMoney:   pass  else:   print("余额不足!购买失败...")   return -1  self.userDict.get(cardNum).card.cardMoney -= buymoney  print("购买成功!购买号码为:",lotteryNum)  print('购买彩票需要 %d 元!您的余额还有 %d 元'%(buymoney, self.userDict.get(cardNum).card.cardMoney))  return lotteryNum, buymoney  def kaijiang(self, cardNum, buymoney, lotteryNum):  lotteryStr = ''  for x in range(6):   lotteryStr += random.choice(['0', '1'])  print('开奖号码为:', lotteryStr)  lotteryNum = input("werwe")  if lotteryNum == lotteryStr:   self.userDict.get(cardNum).card.cardMoney += buymoney * 200   print("恭喜您中了 %d 元大奖!!!您的彩票卡余额还有 %d 元" % (buymoney * 200, self.userDict.get(cardNum).card.cardMoney))  else:   print("很遗憾没中奖,继续努力!")  def quit(self, cardNum):  print('您的余额还有 %d 元' % self.userDict.get(cardNum).card.cardMoney)

系统验证函数:主要用于验证身份证、手机号、卡号等是否正确

import randomdef checkName(user): if len(user) != 1:  print("用户名长度不合法!")  return False for x in user:  if x >= '0' and x <= '9' or x >= 'a' and x <= 'z' or x >= 'A' and x <= 'Z' or x == '_':   pass  else:   print("用户名输入不合法!")   return False return True# 检查身份证号码是否合法def checkIdentity(identity): if len(identity) != 1:  print("身份证长度不合法!")  return False for x in identity:  if x >= '0' and x <= '9':   pass  else:   print("身份证输入不合法!")   return False return True# 检查电话号码是否合法def checkPhone(identity): if len(identity) != 1:  print("电话号码长度不合法!")  return False for x in identity:  if x >= '0' and x <= '9':   pass  else:   print("电话号码输入不合法!")   return False return True# 检查预存款金额是否合法def checkPrestoredMoney(money): if money > 0:  return True else:  print("预存款金额输入有误!")  return False# 检查密码是否正确def checkPassword(password): AgainPassword = input("请确认您的密码:").strip() if password == AgainPassword:  return True else:  return False# 产生一个卡号def getlotteryCardNum(): bankCardNum = "" for i in range(6):  bankCardNum += chr(random.randrange(10) + 48) return bankCardNum if __name__ == "__main__": pass

用户信息:主要用于存储用户的信息。

class Uers(): def __init__(self, name, idCard, phoneNum, card):  self.name = name  self.idCard = idCard  self.phoneNum = phoneNum  self.card = card  def __str__(self):  return "%s-%s-%s-%s" % (self.name, self.idCard, self.phoneNum, self.card)

卡信息:主要用于存储卡的信息

class Card(): def __init__(self, cardNum, password, cardMoney):  self.cardNum = cardNum  self.password = password  self.cardMoney = cardMoney  def __str__(self):  return "%s-%s-%d" % (self.cardNum, self.password, self.cardMoney)

 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


  • 上一条:
    Python实现购物评论文本情感分析操作【基于中文文本挖掘库snownlp】
    下一条:
    Python实现基于POS算法的区块链
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在python语言中Flask框架的学习及简单功能示例(0个评论)
    • 在Python语言中实现GUI全屏倒计时代码示例(0个评论)
    • Python + zipfile库实现zip文件解压自动化脚本示例(0个评论)
    • python爬虫BeautifulSoup快速抓取网站图片(1个评论)
    • vscode 配置 python3开发环境的方法(0个评论)
    • 近期文章
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • Laravel 11.15版本发布 - Eloquent Builder中添加的泛型(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2018-04
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2022-01
    • 2023-07
    • 2023-10
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客