學習python:練習5.簡單紅包程序

快過年了,最近不少羣裏都發紅包,晚上突然想用這個紅包做個練習,簡單實現了一下,效果不錯哦

覺得稍微有點困難的地方是紅包的算法,想了久了點,也不知道微信的算法是咋樣的...


效果:

wKioL1iYQvHB7oi_AABORlVfkE0027.gif


代碼:

# 簡單的拼手氣紅包

import random
from time import sleep

# 所有涉及金額的浮點數都需要用 round 方法保留2位小數,避免出現最終結果多出0.01
amount = round(float(input('請設置紅包的金額 \> ')),2)
num = int(input('請設置紅包的數量 \> '))
hb_dict = {}
xing = '趙錢孫李周吳鄭王'
ming = '一二三四五六七八九十'

while num:

    xingming = random.choice(xing)+random.choice(ming)+random.choice(ming)
    if xingming in hb_dict.keys():
        xingming = random.choice(xing)+random.choice(ming)+random.choice(ming)

    num -= 1
    if num == 0:
        print('%s搶到紅包%.2f元 紅包搶完了!' % (xingming,amount))
        hb_dict[amount] = xingming
        amount -= amount
    elif num > 0:
        hb = round(random.uniform(0.01,amount)/num,2)
        hb_dict[hb] = xingming
        # 算法: 在0.01到紅包總金額之間隨機一個浮點數 / 紅包剩餘個數
        print('%s搶到紅包%.2f元 剩餘%d個!' % (xingming,hb,num))
        amount = round((amount - hb),2)

    sleep(1)

# 轉置字典中的 key / value
# hb_dict2 = {value:key for key,value in hb_dict.items()}
max_hb = max(hb_dict.items())
print('%s運氣最佳 搶得%.2f元!!' % (max_hb[1],max_hb[0]))


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章