您好,登錄后才能下訂單哦!
小編給大家分享一下python實(shí)現(xiàn)彩票系統(tǒng)的方法,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
功能:1、注冊(cè) 2、登錄 3、充錢 4、提現(xiàn) 5、下注 6、開(kāi)獎(jiǎng) 7、退出
簡(jiǎn)述:彩民需要用身份證號(hào)碼開(kāi)戶注冊(cè)一個(gè)彩票號(hào)碼,購(gòu)買彩票時(shí)需要先登錄,可以充值以及提現(xiàn)。購(gòu)買的彩票金額可以自己給定。此系統(tǒng)主要采用面向?qū)ο蟮姆椒?,信息存?chǔ)方式采用pickle模塊來(lái)進(jìn)行存儲(chǔ)。
系統(tǒng)主函數(shù):
from lotterysystem import lotterySystem import displayview import os import pickle import time def main(): displayview.display() path = r"H:\myPythonFile\彩票系統(tǒng)\彩票系統(tǒng)\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("請(qǐng)選擇您的操作:") if operation == '1': islogin = lotterysystem.register() elif operation == '2': islogin = lotterysystem.login() print("登錄成功!") elif operation == '3': if islogin: lotterysystem.charge(islogin) else: print("請(qǐng)先登錄...") elif operation == '4': if islogin: lotterysystem.embody(islogin) else: print("請(qǐng)先登錄...") elif operation == '5': if islogin: buyLotteryNum, buymoney = lotterysystem.buylottery(islogin) else: print("請(qǐng)先登錄...") elif operation == '6': if islogin: lotterysystem.kaijiang(islogin, buymoney, buyLotteryNum) else: print("請(qǐng)先登錄...") elif operation == '7': if islogin: lotterysystem.quit(islogin) print("退出成功!") f = open(path, "wb") pickle.dump(uersdict, f) f.close() return -1 else: print("請(qǐng)先登錄...") else: print("操作有誤!系統(tǒng)自動(dòng)退出...") return -1 if __name__ == "__main__": main()
用pickle模塊讀取文件信息時(shí),文件必須有內(nèi)容,否則會(huì)報(bào)錯(cuò)。所以,第一次執(zhí)行該程序時(shí),必須先將信息寫入文件后才能讀。
系統(tǒng)界面函數(shù):
def display(): print(""" ******************************************* * * * * * 歡迎來(lái)到木子李彩票系統(tǒng) * * * * * ******************************************* """) def chooseview(): print(""" ******************************************* * 1、注冊(cè) 2、登錄 * * 3、充錢 4、提現(xiàn) * * 5、下注 6、開(kāi)獎(jiǎng) * * * * 7、退出 * ******************************************* """)
系統(tǒng)功能函數(shù):實(shí)現(xiàn)注冊(cè)等功能
from uers import Uers from card import Card import check import random class lotterySystem(): def __init__(self, userDict): self.userDict = userDict def register(self): name = input("請(qǐng)輸入您的名字:").strip() if not check.checkName(name): return -1 idCard = input("請(qǐng)輸入您的身份證號(hào)碼:").strip() if not check.checkIdentity(idCard): return -1 phoneNum = input("請(qǐng)輸入您的電話號(hào)碼:").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("請(qǐng)輸入預(yù)存款金額:")) if not check.checkPrestoredMoney(prestoredMoney): return -1 onePassword = input("請(qǐng)?jiān)O(shè)置您的密碼:").strip() for x in range(2): if not check.checkPassword(onePassword): print("密碼輸入不正確!") else: break else: print("密碼輸入不正確!開(kāi)戶失敗...") return -1 card = Card(cardNum, onePassword, prestoredMoney) uers = Uers(name, idCard, phoneNum, card) self.userDict[cardNum] = uers print("恭喜您!注冊(cè)成功,請(qǐng)牢記您的卡號(hào):", cardNum) return cardNum def login(self): cardNum = input("請(qǐng)輸入您的卡號(hào):").strip() password = input("請(qǐng)輸入您的密碼:").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("請(qǐng)輸入充值金額:")) 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("請(qǐng)輸入提現(xiàn)金額:")) if money < self.userDict.get(cardNum).card.cardMoney: pass else: print("余額不足!提現(xiàn)失敗...") return -1 self.userDict.get(cardNum).card.cardMoney -= money print("提現(xiàn)成功,余額: %d 元" % self.userDict.get(cardNum).card.cardMoney) def buylottery(self, cardNum): lotteryNum = input('請(qǐng)輸入所購(gòu)買的彩票的序列號(hào)(6位數(shù)字,只含0和1):') while True: for x in lotteryNum: if len(lotteryNum) == 6: pass else: lotteryNum = input('輸入位數(shù)有誤!請(qǐng)重新輸入...:') if x == '0' or x == '1': pass else: lotteryNum = input('輸入數(shù)字有誤!請(qǐng)重新輸入...:') break buymoney = int(input("請(qǐng)輸入購(gòu)買金額:")) if buymoney < self.userDict.get(cardNum).card.cardMoney: pass else: print("余額不足!購(gòu)買失敗...") return -1 self.userDict.get(cardNum).card.cardMoney -= buymoney print("購(gòu)買成功!購(gòu)買號(hào)碼為:",lotteryNum) print('購(gòu)買彩票需要 %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('開(kāi)獎(jiǎng)號(hào)碼為:', lotteryStr) lotteryNum = input("werwe") if lotteryNum == lotteryStr: self.userDict.get(cardNum).card.cardMoney += buymoney * 200 print("恭喜您中了 %d 元大獎(jiǎng)!!!您的彩票卡余額還有 %d 元" % (buymoney * 200, self.userDict.get(cardNum).card.cardMoney)) else: print("很遺憾沒(méi)中獎(jiǎng),繼續(xù)努力!") def quit(self, cardNum): print('您的余額還有 %d 元' % self.userDict.get(cardNum).card.cardMoney)
系統(tǒng)驗(yàn)證函數(shù):主要用于驗(yàn)證身份證、手機(jī)號(hào)、卡號(hào)等是否正確
import random def checkName(user): if len(user) != 1: print("用戶名長(zhǎng)度不合法!") 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 # 檢查身份證號(hào)碼是否合法 def checkIdentity(identity): if len(identity) != 1: print("身份證長(zhǎng)度不合法!") return False for x in identity: if x >= '0' and x <= '9': pass else: print("身份證輸入不合法!") return False return True # 檢查電話號(hào)碼是否合法 def checkPhone(identity): if len(identity) != 1: print("電話號(hào)碼長(zhǎng)度不合法!") return False for x in identity: if x >= '0' and x <= '9': pass else: print("電話號(hào)碼輸入不合法!") return False return True # 檢查預(yù)存款金額是否合法 def checkPrestoredMoney(money): if money > 0: return True else: print("預(yù)存款金額輸入有誤!") return False # 檢查密碼是否正確 def checkPassword(password): AgainPassword = input("請(qǐng)確認(rèn)您的密碼:").strip() if password == AgainPassword: return True else: return False # 產(chǎn)生一個(gè)卡號(hào) def getlotteryCardNum(): bankCardNum = "" for i in range(6): bankCardNum += chr(random.randrange(10) + 48) return bankCardNum if __name__ == "__main__": pass
用戶信息:主要用于存儲(chǔ)用戶的信息。
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)
卡信息:主要用于存儲(chǔ)卡的信息
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)
看完了這篇文章,相信你對(duì)“python實(shí)現(xiàn)彩票系統(tǒng)的方法”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。