【求助】小朋友分糖果的作业
老师,关于本章节7-2中小朋友分糖果的作业的编程,需要求助。
问题描述:
我自己编写的代码如下,做不到将100糖果平分给5个小朋友,而是出现了叠加的情况:第一个小朋友分到了20个,第二个小朋友却分到了40个(在第一个小朋友的基础上增加了20个),第三个和第四个小朋友依次类推
相关截图:
相关代码:
相关代码:# coding: utf-8 import threading import random from concurrent.futures import ThreadPoolExecutor def child(): if len(candy_list) == 0: return for i in range(20): candy = random.choice(candy_list) candy_list.remove(candy) child_list.append(candy) print(child_list) return child_list if __name__ == '__main__': candy_list = [] child_list = [] for i in range(100): # 定义100个糖果,放在列表中,并打印出来 candy_list.append(i) print('candy_list is ', candy_list) for i in range(5): c = threading.Thread(target=child) c.start()
尝试过的解决方式:
方式一:线程池,每成功,但仔细想一想应该不是线程的问题,而是列表child_list的问题,是这个列表一直没变,所以产出了叠加的效果,于是尝试方式二
方式二:将列表child_list改成child_list = [][],改成二维,一维是5个小朋友,二维是20个糖果,但代码执行报错,这样操作应该是不行的,至此想不出来解决办法,请老师指导
8
收起
正在回答
1回答
同学,你好!同学粘贴的代码是乱序的,无法确定同学的代码逻辑,同学可重新粘贴下代码,代码语言选择python
方便解决同学的问题,祝学习愉快~
祝学习愉快~
Python全能工程师
- 参与学习 人
- 提交作业 16247 份
- 解答问题 4470 个
全新版本覆盖5大热门就业方向:Web全栈、爬虫、数据分析、软件测试、人工智能,零基础进击Python全能型工程师,从大厂挑人到我挑大厂,诱人薪资在前方!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星