抽奖系统-Python小项目练手【1】
admin
2024-05-06 07:50:17
0

抽奖系统-Python项目练手【1】

为了响应部分同学的学习需求,让同学们尽快的上手项目,对于Python的知识点能尽快的掌握,从今天开始,将不定期的更新一些简单的容易上手的小项目给大家学习使用。

第一个项目,就选择抽奖系统。抽奖系统顾名思义,就是有着抽奖功能的一个界面

简单构思一下,需要有的几个功能

  • 1.随机数生成
  • 2.json数据读取
  • 3.数据展示

那现在就开始做我们第一个练手项目吧!

一、随机数

首先要考虑随机数是如何生成的,这里并不困难,直接使用Python自带的random库即可,这里便简单介绍即可

python标准库中的random函数,可以生成随机浮点数、整数、字符串,甚至帮助你随机选择列表序列中的一个元素,打乱一组数据。

random.randint(n,m) #生成一个n到m之间的随机数
random.random()  #生成一个0到1之间的浮点数
random.uniform(n,m) #生成一个n到m之间的浮点数
random.choice([])  #从列表之间随机选取一个数

二、.json数据读取

这一功能我写的时候,因为对于Python的文件读取不太熟悉,花了一些时间去专门查了一些资料后完成的。
里面需要考虑到比如行过滤等内容,虽然说本次使用的json数据好像并不需要,不过我也加在里面,以便后续使用

import jsondef load_json(path):lines = []  # 第一步:定义一个列表, 打开文件with open(path, 'r', encoding="utf-8") as f:for row in f.readlines():  # 第二步:读取文件内容if row.strip().startswith("//"):  # 第三步:对每一行进行过滤continuelines.append(row)  # 第四步:将过滤后的行添加到列表中.return json.loads("\n".join(lines))  # 将列表中的每个字符串用某一个符号拼接为一整个字符串,用json.loads()函数加载,这样就大功告成啦!!def load_list(path):lines = []  # 第一步:定义一个列表, 打开文件with open(path, 'r', encoding="utf-8") as f:for row in f.readlines():  # 第二步:读取文件内容if row.strip().startswith("//"):  # 第三步:对每一行进行过滤continuelines.append(row)  # 第四步:将过滤后的行添加到列表中.return lines#
# print(load_json("随机英文名.json"))# 判断数据是否存在于json数据的value里,如果存在返回TRUE,不存在返回FALSE
def test_json(data, test_data):  # data为字典,test_data为测试数据或者查找数据for value in data.values():# print(value, end='  ')if test_data in value:return Trueelse:return False

三、数据展示

如何展示数据呢,方法有很多种,本次项目为了方便,我使用了Python的flask框架,

 新建Python空项目后,直接pip install flask安装即可

直接使用最基础的flask框架模板

# //pip install flask
# 抽奖系统
from flask import Flask, render_template
from json文件读取 import load_json, load_list
from random import randintapp = Flask(__name__)# 读取数据
name = load_list("随机英文名.json")# 生产随机数据
def RandomData(data):num = randint(2, len(data) - 3)# print(name[num])return data[num]@app.route('/')
def index():return render_template("index01.html", name=name)
#
@app.route('/choujiang')
def choujiang():return render_template("index01.html", name=name, data=RandomData(name))app.run(debug=True)

index.html代码如下



Title



hallo

抽奖 恭喜您抽到了:{{data}}

至此,整体项目完成,项目很简单,适合新手练手使用,如果有同学想继续完善,将他变成一个精美的界面,也十分欢迎去尝试,如果有中途遇到什么问题,也很欢迎私聊我一起来讨论嗷!

本次项目使用的模拟数据如下:
随机英文名.json

{
"names":
[
"Dwight Baker",
"Sam Jerry",
"Monica Dillon",
"Adelaide Garden",
"George Connor",
"Omar Maria",
"John Ackermann",
"Borg Thomas",
"Mamie Carmen",
"Jonathan Bethune",
"Edgar Bartholomew"
]
}

相关内容

热门资讯

南昌闲置金饰变现 回收金项链需... 随着近年黄金价格持续波动,不少持有闲置黄金首饰的居民都有变现需求,回收金项链是其中较为常见的业务类型...
原创 7... 昨天刷到日本三菱电机的动向有点荒诞:这家做家电的巨头最近牵头搞了个回收项目,每年拆23万台废旧家用空...
公募FOF基金经理展望下半年:... ◎记者 陈玥 2026年上半年,全球市场在流动性宽松与产业趋势共振的驱动下,上演了一出“冰火两重天”...
全市场规模最大ETF易主!黄金... 截至7月6日收盘,全亚洲规模最大的黄金ETF标的——黄金ETF华安(518880)报8.63元,本月...
上半年IPO申报放量升温,科创... 2026年上半年的IPO市场,在6月迎来了集中交卷。Wind数据显示,上半年三大交易所合计新增受理I...
管好养老钱壮大耐心资本 保险资... 段国圣,理学硕士,工学博士,经济学博士后,数学副教授,应用经济学研究员(教授)。深耕保险投资30余年...
惠州A股上市公司一年半市值翻倍... 每经记者:孔泽思 每经编辑:袁东 |2026年7月7日 星期二| NO.1 深圳集成电路产业去年营收...
植物性饮食的新课题:荷兰研究揭... 周末的家常餐桌上,一家人尝试用植物性替代品替代肉鱼和奶制品,孩子吃得香,老人也在细嚼慢咽中尝试豆类与...
周一(7月6日),美股行业ET... 周一(7月6日),美股行业ETF多数收涨,全球科技股指数ETF涨2.18%,半导体ETF涨2.03%...
想在吉林做卤味加盟怎么判断企业... 有意向了解卤味加盟的创业者,往往首先关注合作企业的专业度,当前休闲卤味消费市场规模稳步增长,不同企业...
华府消息|北约盟友经历从奉承特... (来源:华府圈内) 今天是《华府消息》连续更新的第2218天 7月4日独立日烟花表演期间,纽约布鲁克...
兴财说 | A股风格高低切换,... (来源:兴华基金) ►►► 权益市场表现 01 市场表现回顾 数据来源:iFinD,统计区间:20...
加息押注削弱 黄金白银连续上涨 (来源:金砖汇通) 贵金属分析 现货黄金交投于4130美元附近,美联储9月加息押注下降推动金价走高...
SpaceX“二把手”官宣向“... 转自:财联社 财联社7月7日讯(编辑 赵昊)SpaceX总裁兼首席运营官格温·肖特韦尔(Gwynne...
沈阳茅台回收怎么挑选合规的回收... 随着国内礼品消费市场的发展,不少居民手中都持有闲置的高端礼品,包括名酒、黄金、奢侈品等,有变现需求的...
北京再开店 沃尔玛试水“平价山... (来源:北京商报) 沃尔玛想要翻开新篇章。近日,北京商报记者从沃尔玛中国独家获悉,公司正在北京积极推...
午盘:美股涨跌不一 科技股推动... 来源:环球市场播报 北京时间7月7日晚,美股周一午盘涨跌不一,科技股普涨推动纳指走高。市场关注的焦点...
【原创】海北州组织开展公平竞争... 为严格落实公平竞争审查制度“进党校、进机关、进企业”工作要求,持续规范各行业领域政策制定行为,破除市...
“物流界滴滴”赴港IPO:地上... 瑞财经 吴文婷 近日,地上铁绿色科技(深圳)股份有限公司(以下简称“地上铁”)在港交所递交招股书,联...
原创 一... 2026年7月2日,美国劳工部发布6月非农就业报告,美国6月新增就业岗位只有5.7万个,连市场预期的...