体育大乐透彩票代码怎么写,简单写一个实习体育彩票大乐透选票的功能。
体育大乐透彩票系统的代码:
import random
class Lottery:
def __init__(self):
self.lottery_type = 'sports_lottery'
self.lottery_number = 12
self.max_number = 99
self.lottery_price = 2
self.prize_table = {
0: 0,
1: 0,
2: 0,
3: 5,
4: 10,
5: 100,
6: 1000,
7: 10000,
8: 100000,
9: 1000000,
10: 5000000,
11: 10000000,
12: 50000000
}
def generate_lottery_numbers(self):
return random.sample(range(1, self.max_number + 1), self.lottery_number)
def check_lottery_numbers(self, user_numbers, lottery_numbers):
count = 0
for number in user_numbers:
if number in lottery_numbers:
count += 1
return count
def calculate_prize(self, count):
return self.prize_table[count]
class User:
def __init__(self, name, balance):
self.name = name
self.balance = balance
self.lottery_numbers = []
def buy_lottery(self, lottery):
if self.balance >= lottery.lottery_price:
self.balance -= lottery.lottery_price
self.lottery_numbers.append(lottery.generate_lottery_numbers())
return True
else:
return False
def check_lottery_result(self, lottery):
for lottery_numbers in self.lottery_numbers:
count = lottery.check_lottery_numbers(lottery_numbers, lottery.generate_lottery_numbers())
prize = lottery.calculate_prize(count)
self.balance += prize
print("Your numbers: ", lottery_numbers)
print("Lottery numbers: ", lottery.generate_lottery_numbers())
print("You matched ", count, " numbers")
print("You won ", prize, " dollars")
# Example usage
lottery = Lottery()
user = User("John", 100)
user.buy_lottery(lottery)
user.check_lottery_result(lottery)
这个代码示例包含了一个Lottery
类和一个User
类,其中Lottery
类用于生成彩票号码、检查中奖情况和计算奖金,User
类用于购买彩票、检查中奖情况和更新用户余额。您可以根据自己的需求进行修改和扩展。
选票功能会用python 随机库random.choices方法可以实现。如——
搞错了,是 random.sample 取样方法,因为选号不可重复。
代码运行效果截屏图片
python 代码
#!/sur/bin/nve python
# coding: utf-8
from random import sample
tip = f"{' 这里只模拟机选 ':~^33}"
green = '\033[32;1m'
gray = '\033[37;2m'
nocolor = '\033[0m'
clear = '\033[2J'
print(f"{clear}{green}\n{' 大乐透模拟出票 ':=^43}\n{gray}\n{tip:^43}\n{nocolor}")
s = input(f"{gray}\n{' 五注直接回车 ':^43}\n{'':~^50}\n{nocolor}{'单注(Y)__':>18}").strip() # 接收键盘录入并去除前后空格。
def choice(n=5):
''' 随机出票 '''
for i in range(n):
first = sample(range(1, 36), k=5)
back = sample(range(1, 13), k=2)
print(first, back)
if __name__ == '__main__':
print(f"{gray}\n{'':~^50}\n{green}\n")
if s in list('yY'):
choice(1) # 单注。
else:
choice() # 五注。
print(f"{gray}\n{'':~^50}\n\n{green}\n\n{'':=^50}\n{nocolor}")
号码输出显示还可以优化。
fun = lambda x: f"{x:0>2}"
print(f"{'':>16}{' '.join(map(fun, first))},{' '.join(map(fun, back))}")
可以帮到您,请点个“关注”呗
使用 def 自定义函数优化代码,提高代码可读性
import requests
import time
import pymongo
def connect_mongo(): #连接数据库
client = pymongo.MongoClient('localhost', 27017) # 建立连接
book_qunar = client['qunar'] # 建立名为“qunar” 的数据库
return book_qunar['sheet_qunar'] # 在数据库中创建新 “sheet_qunar”
sheet_qunar = connect_mongo()
def get_json(url): #获得链接为url的数据的JSON
str = requests.get(url)
time.sleep(1)
return str.json()
def get_list(dep,item): #获取产品列表: dep为出发地,item为目的地
url = 'https://touch.dujia.qunar.com/' \
'list?modules=list%2CbookingInfo%2' \
'CactivityDetail&dep={}&query={}&' \
'dappDealTrace=true&mobFunction=%E' \
'6%89%A9%E5%B1%95%E8%87%AA%E7%94%B1' \
'%E8%A1%8C&cfrom=zyx&it=dujia_hy_dest' \
'ination&date=&needNoResult=true&origina' \
'lquery={}&width=480&height' \
'=320&quality=90&limit=0,' \
'20&includeAD=true&qsact=search&' \
'filterTagPlatform=mobile_touch'.format(dep, item, item)
time.sleep(1)
str = get_json(url)
routeCount = int(str["data"]["limit"]["routeCount"]) # 取出产品数
for limit in range(0, routeCount, 20): # 获取产品信息
url = 'https://touch.dujia.qunar.com/' \
'list?modules=list%2CbookingInfo%2' \
'CactivityDetail&dep={}&query={}&' \
'dappDealTrace=true&mobFunction=%E' \
'6%89%A9%E5%B1%95%E8%87%AA%E7%94%B1' \
'%E8%A1%8C&cfrom=zyx&it=dujia_hy_dest' \
'ination&date=&needNoResult=true&origina' \
'lquery={}&width=480&height' \
'=320&quality=90&limit={},' \
'20&includeAD=true&qsact=search&' \
'filterTagPlatform=mobile_touch'.format(dep, item, item, limit)
time.sleep(1)
str = get_json(url)
# 产品的数据类型
result = {
'date': time.strftime('%Y-%m-%d', time.localtime(time.time())),
'dep': dep,
'arrive': item,
'limit': limit,
'result': str
}
sheet_qunar.insert_one(result) #向表中插入数据
if __name__ == "__main__": #当前py直接运行时为true,若为导入的py则为false
url = 'https://touch.dujia.qunar.com/depCities.qunar' #出发点列表的链接
dep_dic = get_json(url)
for dep_item in dep_dic["data"]:
for dep in dep_dic["data"][dep_item]:
url = 'https://touch.dujia.qunar.com/golfz/sight/arriveRecommend?dep={}&exclude=&extensionImg=255,175'.format(dep)
arrive_dic = get_json(url)
arrive_city = [] #存放当前出发点能到的所有目的地
for arr_item in arrive_dic["data"]:
for arr_item_1 in arr_item["subModules"]:
for query in arr_item_1["items"]:
if query["query"] not in arrive_city: #使得当前出发点对应的目的地不重复
arrive_city.append(query["query"])
for item in arrive_city:
get_list(dep,item)
运行结果