利用Python制作一个发红包的小游戏

news/2024/12/5 12:01:35/

        本系统的内容是综合应用python程序设计的知识,实际并实现了一款简单发红包的小游戏,具体功能如下:

(1)拼手气红包:随机金额

(2)普通红包:能够通过输入的红包人数与红包金额实现平均分配

(3)专属红包:记录专属人的姓名,输入专属金额

(4)查询红包发放情况:主要能查询到专属金额的人员以及红包金额信息

红包的金额不能出现负值。

一、页面部分代码:

import random
import timedef main_content():print()print("------------------------------")print("************ 红包类别 ************")print("1. 随机红包")print("2. 普通红包")print("3. 专属红包")print("4. 查询专属人金额信息")print("5. 退出")print()# 退出系统模块
def quit_back():print("欢迎下次使用!!!")quit()

二、随机红包代码:

# 随机红包
def random_red_package():list_random_num=[]while True:try:num = int(input("请输入随机红包的分配人数:"))if num>=20000:print("人数超出范围,不符合分配要求,请重新输入")print()continuebreakexcept:print("输入分配人数不为整数,重新输入")# 循环判断是否超出当前人数生成随机红包的范围要求(0.01-200)while True:money=f"{random.uniform(0.01,200.0):.2f}"money=float(money)if money/num<0.01:continueelse:breakmoney = int(input("请输入红包金额:"))# print(f"随机红包总金额为:{money}元")# 为每个人分配随机红包for i in range(num):if i!=num-1:# 判断下次单人随机红包剩余的红包金额是否小于剩余待分配人数的最小分配额度:即0.01while True:div_money=f"{random.uniform(0.01,money):.2f}"div_money=float(div_money)if money-div_money<0.01*(num-i-1):continueelse:breakmoney-=div_moneyprint(f"第{i+1}个人的随机红包大小为:{div_money}元,剩余红包金额为:{money:.2f}元")list_random_num.append(div_money)else:print(f"第{i+1}个人的随机红包大小为:{money}元,剩余红包金额为:{0}元")list_random_num.append(money)money-=money# print(list_random_num)print("出现红包大小相同时,只提示先出现的!")print(f"最大红包为第{list_random_num.index(max(list_random_num))}个, 红包大小为:{max(list_random_num)}元")print(f"最小红包为第{list_random_num.index(min(list_random_num))}个, 红包大小为:{min(list_random_num)}元")

三、普通红包代码:

# 普通红包
def commond_red_package():while True:try:num = int(input("请输入普通红包的分配人数:"))if num >= 20000:print("人数超出范围,不符合分配要求,请重新输入")print()continuebreakexcept:print("输入分配人数不为整数,重新输入")div_money=float(input("请输入红包金额:"))# div_money=f"{random.uniform(0.01,200):.2f}"# div_money=float(div_money)print(f"随机生成的普通红包总金额为:{div_money}")print(f"每个人平均每人分得{div_money/num:.2f}元")# 读取info.txt商品列表清单文件---# 文件读取操作---return count, info_all  ---over
def read_list(file_name):info_all = []# 可读可写文件打开模式try:with open(file_name, "r", encoding="utf-8") as f:lines = f.readlines()count = 0# if lines:for line in lines:if line != "\n":line=line[:-1]info_all.append(line)count += 1return count, info_all# 不存在时创建    即不存在文本文件就创建------此处为在桌面创建一个文件夹except IOError:with open(file_name, "w", encoding="utf-8") as f:count = 0return count, info_all# info.txt用户信息文件存储操作---over
def save_list(list,file_name):with open(file_name, "w", encoding="utf-8") as f:for i in list:f.write(f"{i[0]},{i[1]}\n")print("\t\t\t保存成功!!!")

四、专属红包代码:

# 专属红包
def exclusive_red_package():name=input("请输入专属红包的对象名:")while True:try:money=float(input("请输入专属金额的金额大小:"))money=f"{money:.2f}"money=float(money)breakexcept IOError:print("金额输入有误请重新输入金额")# 读取txt中的人名以及金额信息count,info_list=read_list("专属红包个人信息.txt")# 判断是否存在此人if count==0:# 不存在---添加该专属人信息list_split=[]list_split.append([name,money])else:# 存放namelist_split_pep = []# 存放name和moneylist_split=[]for i in info_list:# 人名list_split_pep.append(i.split(",")[0])# 人名+对应专属红包金额list_split.append(i.split(","))if name not in list_split_pep:# 不存在---添加该专属人信息list_split.append([name,money])else:# 存在---则累加金额# 由于name唯一,所以可以通过index方法定位下标对应的索引元素作为一维数组的索引以此定位到name对应的专属红包金额list_split[[list_split_pep.index(name)]][1]+=money# 保存信息save_list(list_split,"专属红包个人信息.txt")

五、查询功能代码:

# 查询专属人金额信息
def find_exclusive_info():count,info=read_list("专属红包个人信息.txt")print("当前查询到的专属红包相关信息如下:")print()print(info[0])for i in range(count):info_=info[i].split(",")print(f"第{i+1}个人的信息为:name:{info_[0]};\tmoney:{info_[1]}")print()print("五秒后回到主页!!!")time.sleep(5)

主程序:

# 主程序---over
def main():while True:global cart_list_allmain_content()option=input("请输入红包类别序号:")if option=="1":random_red_package()elif option=="2":commond_red_package()elif option == "3":exclusive_red_package()elif option == "4":find_exclusive_info()elif option=="5":quit_back()else:print("序号输入错误,请重新输入序号!!!")if __name__=="__main__":main()

运行结果如下:

 

 

以上即是本文的全部内容,喜欢可以点赞收藏~


http://www.ppmy.cn/news/465437.html

相关文章

微信公众号怎么发红包?

#微信公众号怎么发红包# 利用微信公众号给粉丝派发红包是日常运营中不可或缺的一种营销方式&#xff0c;活动中植入了微信红包元素&#xff0c;可以大大吸引用户的关注&#xff0c;不管是给公众号引流还是提升粉丝活跃度都是非常有效的&#xff0c;但是还有不少公众号运营者不…

python模拟简单发红包

import random def redEnv(k,rest):mround(round(random.random()/100.01,2)*rest,2)return m totalfloat(input(请输入红包金额&#xff1a;)) numint(input(请输入红包个数:)) remaintotal for i in range(num-1):moneyredEnv(i,remain)remain-moneyprint(红包{0:d}:{1:.2f}.…

python 发红包import random用redenv_python 发红包

红包1 import random def redpacket(cash,person): lst[] sum10 cash cash * 100 while cash>0 and person >1: money random.randint(1,cash) person-1 cash-money lst.append(money/100) sum1 money/100 else: lst.append(cash/100) sum1 cash/100 random.… import…

Python发红包

文章目录 1. 题目&#x1f50d;1.1 输入样例1.2 输出样例 2. 题解✨2.1 代码 1. 题目&#x1f50d; 使用random()模拟10次发红包的情况。 1.1 输入样例 请输入红包总金额&#xff1a;100 请输入红包总数量&#xff1a;8​ 1.2 输出样例 [11, 34, 16, 14, 2, 16, 2, 5] [65…

ipad上能免费下载Python并运行吗?

前言 一般也是可以&#xff0c;直接 在 Ipad App store 里搜索 python 即可&#xff0c;如下: 不过小编并不觉得 ipad 适合 写 python&#xff0c;建议最好还是在电脑上如 mac 进行编程。 读者福利&#xff1a;知道你对Python感兴趣&#xff0c;便准备了这套python学习资料 …

模仿微信发红包代码

package test; import java.util.ArrayList; import java.util.List; /** * Description: <br> * * author <a hrefmailto:lianle1jd.com>连乐</a> * date 2016/3/1 12:10 */ public class Test { public static void main(String[] args) { int size 10;…

python发红包实现

import randomdef lucky_money(n, amount):""":param n: 红包个数:param amount: 红包金额&#xff08;以元为单位&#xff09;:return: 生成器&#xff0c;n个红包的金额&#xff0c;以分为单位 """lst list(random.sample(range(1, amount*…

微信发红包-测试用例(全)

功能 1.在红包钱数&#xff0c;和红包个数的输入框中只能输入数字 2.红包里最多和最少可以输入的钱数 200 0.01 3.拼手气红包最多可以发多少个红包 100 3.1超过最大拼手气红包的个数是否有提醒 4.当红包钱数超过最大范围是不是有对应的提示 5.当发送的红包个数超过最大范围是…