小慕喊你来抽奖作业,对于线程进程的应用感觉无处下手,请老师指点

小慕喊你来抽奖作业,对于线程进程的应用感觉无处下手,请老师指点

问题描述:

    虽然写的代码能够实现功能,但是自己感觉不知道如何加入进程和线程的应用,还请老师指点

相关截图:

http://img1.sycdn.imooc.com//climg/607905a7090b27e208210546.jpg

http://img1.sycdn.imooc.com//climg/607905a709d9c24707240440.jpg


相关代码:

# 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)


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学,你好!

1、phone_num_list可提前定义好,不用从键盘输入

http://img1.sycdn.imooc.com//climg/60793bff09254e1a09250289.jpg

2、每个用户参与抽奖,直接传入用户的手机号即可

http://img1.sycdn.imooc.com//climg/607942eb09519f7e11030445.jpg

3、创建多线程,调用抽奖函数,并且传递phone_num参数,结合线程锁实现多人参加抽奖活动

http://img1.sycdn.imooc.com//climg/607946390913c55010800805.jpg

祝:学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师