Python教程:写一个简易的抽奖程序

本文介绍了如何使用Python编写一个简易的抽奖程序,包括分析需求、设定中奖方法、实现动态中奖率、增加多个奖项以及会员等级中奖率的判断。通过随机函数和数据库交互,实现了中奖率的动态调整,适合初学者练习编程思维。
摘要由CSDN通过智能技术生成

不知道有多少人是被这个头图骗进来的:)

事情的起因是这样的,上周有同学问小编,看着小编的示例代码敲代码,感觉自己也会写了,如果不看的话,七七八八可能也写的出来,但是一旦自己独立写一段程序,感觉到无从下手。

其实这个很正常,刚开始学习写代码,都是跟着别人的套路往下写,看的套路少,很难形成自己的套路,这就和做数学题是一样的,做一道题就想会所有的题目,这个可能性微乎其微,都是通过大量的练习来摸索到自己的套路。

正好快过年了,各个公司都会搞一些抽奖活动,小编今天就来聊一下,如果要写一个简单的抽奖程序,小编是怎么写的。

分析需求

我们先整理下思路,目标是什么?

目标是要写一个抽奖程序,那么抽奖程序的核心是什么?

当然是如何判断一个人中奖了。那么如何判断一个人中奖呢?

是不是可以通过随机函数来操作呢?

中奖方法

一步一步来,我们先通过随机函数来判断是否中奖。代码是不是可以先写成下面这样:

import random

# 判断中奖函数
def lottery():
    flag = random.randint(0, 9)
    if flag < 2:
        return True
    else:
        return False

首先,我们获取 0 ~ 9 之间的随机正整数(这里不讨论 random 是不是真随机,从狭义上来讲我们可以认为它是随机的),如果中奖率为 20% 的话,我们可以认为小于 2 的数字为中奖,其余的为没有中奖。然后中奖后返回 True ,没有中奖返回 False 。

我们加一个入口测试函数,测试一下上面的代码是否能正常运行,并且中奖率是否能维持在大约 20 % 左右。

if __name__ == '__main__':
    # 中奖次数
    a = 0
    # 没有中奖次数
    b = 0
    for i in range(1000000) :
        if (lottery()):
            a += 1
        else:
            b += 1

    print('共计中奖:', a, ',未中奖:', b)

执行结果:

共计中奖: 200145 ,未中奖: 799855

上面的测试总共循环了 1 百万次,大约执行需要 2 ~ 3 秒左右,速度还是蛮快的。可以看

希望抽奖软件简单、实用,适用于公司、集团晚会、商场活动等多种场合,中奖显示的信息可根据需要配置,很灵活,而且提供了抽奖名单导入、中奖名单导出、中奖信息清除等实用功能。 希望抽奖软件介绍: 一、部署部分: 1、 首先安装Framework2.0包或包含该版本包的更高版本的Framework包。 2、 直接运行:希望抽奖软件.exe。 3、 按F9进入配置界面,可修改包括奖项设置、抽奖设置、环境(背景图片、背景音乐、抽奖音乐等)设置;按F12可以暂停或启动背景音乐。 4、 另:la.mdb为抽奖数据库,主要有三个表,people为参与抽奖人员名单,lottery表为奖项设置,lotterySet表为一些环境和抽奖控制参数。感兴趣的可以查看一下!! 二、使用部分 1、 第一次启动程序因为背景图片、音乐等素材未配置,需要首先配置此类信息,主窗口按“F9”键进入配置界面: 1) 音乐背景设置:设置背景主题图片、点击抽奖按钮启动的抽奖音乐、点击停止时的中奖音乐以及主题背景音乐。背景音乐提供了暂停功能,在主窗体按功能键“F12”,按一次即暂停,再按一次继续播放;点击“抽奖”后会播放抽奖滚动音乐,点击“停止”后会播放中奖音乐;如果觉得素材中的音乐不合适,可以重新配置自己的音乐设置。注:配置音乐背景后必须到“抽奖设置”页签点击“设置生效”按钮启用新的设置。 2) 软件注册设置,未注册软件有使限制,使用时可以看到什么限制。 3) 抽奖设置:在“奖项设置”里可以添加删除奖项的设置,如果添加、删除、修改了奖项的名字、奖品名字、排序号必须点击“设置生效”重新加载,如果仅改变字体大小不需要重新加载(字体大小为中奖时主窗体显示的字体大小,根据自己需要配置)。 4) 在“抽奖设置”里可以随时配置抽奖个数,比如现在是每次抽1个,就配置1,下一个奖项可能每次抽3个,则配置3即可(根据自己需要配置,建议不要配置太多,怕影响性能)。滚动间隔为抽奖时滚动的频率,默认1微妙,根据需要随时配置。导入抽奖名单前请先下载“抽奖名单导入模版”,填完毕后即可导入,根据数据的多少时间长短不一,请耐心等待。 2、 都配置好后,即可返回主窗体进行抽奖。 显示顺序依次为:人员序号/工号/抽奖序号、姓名、手机(联系方式)、部门、备注;如果不需要某一项可以在导入的时候置空或直接删除该列(导入模版内有说明);导入抽奖名单后如果不需要某人参与抽奖可以在“抽奖设置”中“删除序号”
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值