小慕喊你来抽奖作业,对于线程进程的应用感觉无处下手,请老师指点
问题描述:
虽然写的代码能够实现功能,但是自己感觉不知道如何加入进程和线程的应用,还请老师指点
相关截图:
相关代码:
# coding:utf-8
import random
import sys
import threading
prize_list = [
'一等奖:手机,价值3999元',
'二等奖:平板电脑,价值1999元',
'三等奖:加湿器,价值198元'
]
for i in range(1, 18):
prize_list.append(i)
# 预设3个大奖正,放入奖品列表,增加17个整形数字到奖品列表,凑成20个奖品的列表
phone_num_list = []
# 预设空的电话列表
def prize(prize_list):
if len(prize_list) != 0: # 判断奖品列表不为空,然后执行抽奖
a = random.choice(prize_list)
prize_list.remove(a)
if type(a) == int: # 判断从奖品列表的取到的值,如果为整形那就是没中奖,告知用户感谢参与
print('谢谢您的参与!')
else:
print('恭喜您获得{}'.format(a)) # 判断从奖品列表的取到的值,不是整形那就是中奖了,告知用户中奖
else: # 当奖品;列表为空时,提示用户20个抽奖名额用完,并退出程序
print('抽奖活动只有20个名额,本次活动已结束!')
sys.exit()
def phone(phone_num):
if phone_num in phone_num_list:
return 1 # 判断电话是否在电话列表中,在的话返回1
else:
phone_num_list.append(phone_num)
pass # 判断电话是否在电话列表中,不在的话跳过
if __name__ == '__main__':
while True:
phone_num = input('请输入您的手机号码:')
if phone(phone_num) == 1:
print('您已经参加过抽奖活动')
continue
prize(prize_list)
17
收起
正在回答
1回答
同学,你好!
1、phone_num_list可提前定义好,不用从键盘输入
2、每个用户参与抽奖,直接传入用户的手机号即可
3、创建多线程,调用抽奖函数,并且传递phone_num参数,结合线程锁实现多人参加抽奖活动
祝:学习愉快!
Python全栈工程师2020
- 参与学习 人
- 提交作业 5213 份
- 解答问题 2433 个
Facebook曾声称“只招全栈工程师”!全栈用人需求猛增,市面人才紧缺。 0基础进击Python全栈开发,诱人薪资在前方!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星