抽奖系统-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"
]
}

相关内容

热门资讯

华夏幸福继续减持 厦门国际银行... 5月18日,河北金融监管局发布批复显示,同意厦门国际银行股份有限公司受让华夏幸福基业控股股份公司持有...
离境退税2.0版政策上线 境外... 本文转自【央视新闻客户端】; 今天(18日),我国离境退税2.0版政策正式上线,以后境外旅客来华购物...
原创 在... 老周坐在东京中野区那间不大的公寓里,又把账本翻了一遍。手边是厚厚的日元工资条,电脑屏幕上开着国内某二...
探索“筷子夹火箭”的商业航天公... 上证报中国证券网讯 国内唯一“不锈钢箭体+液氧甲烷动力+筷子捕获臂回收”技术路线的商业火箭公司再度融...
5月30日晚8点开启!首次全场... 潮新闻客户端 记者 周夏林 又好又便宜的京东618,今年来得有点“聪明”。 5月18日,京东宣布,2...
2026年太和县黄金回收权威机... “家里压箱底的金项链断了,金戒指戴旧了,想去回收却又担心被压价、被掉包。”这是我在太和县做珠宝行业多...
A股“下半场”怎么走?券商最新... 【导读】券商密集召开中期策略会 中国基金报记者 孙越 临近年中,2026年券商中期策略会正迎来密集召...
爱德泰由董事长白长安夫妇控股9... 瑞财经 吴文婷近日,深圳市爱德泰科技股份有限公司(以下简称“爱德泰”)在港交所递交招股书,中信证券、...
前CIA资助研究员:美寻获4种... 近日,一名曾接受美国中央情报局(CIA)资助的前政府研究员曝出惊人消息,声称美国已从坠毁的不明飞行物...
原创 欧... 2026年5月,全球巧克力设备圈炸开了一口大锅。 一百多年来,生产线上那几根核心精磨辊筒,一直被瑞士...
商务部等六部门:加力扩大入境消... 商务部、财政部、国家税务总局等6部门日前发布《关于加力优化离境退税措施扩大入境消费的通知》,此次政策...
飞天没涨价,但茅台真正的变革,... 2026年5月16日零时整,i茅台App推送了一条公告。 不是限量发售,不是新品上架,是涨价。 四款...
“不含白酒”!消费主题ETF营... 【导读】“不含白酒”成了消费主题ETF的营销新卖点? 见习记者 闫军 近期,有基金公司宣传食品饮料E...
金价又崩了!5月这波下跌,藏着... 昨天看行情的时候,我一度以为自己眼花了。 5月18日亚市早盘,现货黄金伦敦金直接失守4500美元/盎...
拿下百年药企、进军医院市场,广... (本文作者为 牛刀财经NiuDaoCJ,钛媒体经授权发布) 文 | 牛刀财经NiuDaoCJ ...
一心卖车的蔚来,终于被看懂了 作者 | 定焦One 陈颐 中国资本市场对新能源汽车的态度,最近一年发生了转变。 具身智能、飞行汽...
原创 杨... 赚的不多,拿的不少。 作者 | 于婞 编辑丨高岩 来源 | 野马财经 与明星爱人黄圣依再见1年后,“...
历史首次!东莞A股上市公司,市... 据东莞市上市公司协会消息,截至2026年5月15日收盘,东莞64家A股上市公司总市值首次突破万亿元,...
对标行业龙头先导智能,格林晟港... 在锂电制造的中段——从极片到电芯成型的核心环节,有一项设备至关重要:叠片机,它直接决定了电池的能量密...
银行存款大局已定?明后年,存款... 银行存款的大局,已经从“怎么多赚点利息”,变成了“怎么少亏点、别踩坑”。 2025年以来,存款利率一...