支付宝集五福是2016年春节期间诞生的一个支付宝互动小游戏,近些年演变成了集五福的活动。使用手机扫福字可以随机获取爱国福、富强福、和谐福、友善福、敬业福中的任意一张卡。集齐五福后可以合成一张福卡,凭借此福卡,用户可以参与奖金的瓜分。同一个账户可以分到一个随机的现金红包。
下面编写程序模拟春节期间支付宝集五福的过程。在D:\PythonCode\ch10路径下新建一个文件夹blessing,用于保存主程序ch10-6.py和包pack。在包pack中创建名为__init__.py的程序文件,代码如下。
# 程序文件__init__.py
import random # 导入随机模块
def get_card(): # 获取福卡
cards = ['爱国福', '富强福', '和谐福', '友善福', '敬业福'] # 福卡列表
one = random.sample(cards, 1) # 从福卡中随机取出一张
return one # 返回获取到的福卡
def print_cards(card): # 输出当前拥有的所有福卡
print('目前已有的福卡:')
for i, j in card.items(): # 遍历福卡字典
print(i, ': ', j, '\t', end='') # 输出福卡
def all_cards(card): # 判断五福是否集齐
flag = 1 # 1表示集齐五福
for i, j in card.items():
if j == 0: # 当任意一种福卡的数量为0时,不能合成五福
flag = 0
return flag # 返回判断标识
主程序ch10-6.py的相关代码如下。
# 程序文件ch10-6.py
import sys # 导入内置模块sys
import pack # 导入自定义的包
print('开始支付宝集五福!')
dict1 = {'爱国福':0,'富强福':0,'和谐福':0,'友善福':0,'敬业福':0}
while pack.all_cards(dict1) == 0: # 判断是否集齐五福
input('\n请按Enter键获取五福!')
card = pack.get_card()[0] # 获取福卡
print('恭喜你得到:' + card)
dict1[card] += 1 # 获取福卡后在字典dict1中加1
pack.print_cards(dict1) # 输出获取的福卡
print('\n恭喜你已经成功集成五福!快来一起瓜分奖金吧!')
执行程序文件ch10-6.py,结果如下。
(base) D:\PythonCode\ch10\blessing>python ch10-6.py
开始支付宝集五福!
请按Enter键获取五福!
恭喜你得到:和谐福
目前已有的福卡:
爱国福 : 0 富强福 : 0 和谐福 : 1 友善福 : 0 敬业福 : 0
请按Enter键获取五福!
恭喜你得到:富强福
目前已有的福卡:
爱国福 : 0 富强福 : 1 和谐福 : 1 友善福 : 0 敬业福 : 0
请按Enter键获取五福!
恭喜你得到:敬业福
目前已有的福卡:
爱国福 : 0 富强福 : 1 和谐福 : 1 友善福 : 0 敬业福 : 1
请按Enter键获取五福!
恭喜你得到:爱国福
目前已有的福卡:
爱国福 : 1 富强福 : 1 和谐福 : 1 友善福 : 0 敬业福 : 1
请按Enter键获取五福!
恭喜你得到:爱国福
目前已有的福卡:
爱国福 : 2 富强福 : 1 和谐福 : 1 友善福 : 0 敬业福 : 1
请按Enter键获取五福!
恭喜你得到:友善福
目前已有的福卡:
爱国福 : 2 富强福 : 1 和谐福 : 1 友善福 : 1 敬业福 : 1
恭喜你已经成功集成五福!快来一起瓜分奖金吧!