无法将50个豆子全部捡起来
问题描述:
无法将50个豆子全部捡起来,如下,只捡起了34个豆子
相关截图:

相关代码:
# coding: utf-8
import random
import asyncio
# 豆子总数
beans = list(range(1, 51))
async def child_a():
a_beans = []
a_result = 0
for b in beans:
a_beans.append(b)
beans.remove(b)
a_result += 1
await asyncio.sleep(random.random())
print(a_beans)
return a_result
async def child_b():
b_beans = []
b_result = 0
for b in beans:
b_beans.append(b);
beans.remove(b)
b_result += 1
await asyncio.sleep(random.random())
print(b_beans)
return b_result
async def main():
result = await asyncio.gather(child_a(), child_b())
return result
if __name__ == '__main__':
result = asyncio.run(main())
print("a_beans:", result[0])
print("b_beans:", result[1])7
收起
正在回答
1回答
同学,你好!不要用for 循环将beans的每个豆子加入到豆子列表中,使用while beans: 判断beans 中是否有豆子,有豆子便执行取豆子。另外取豆子可以使用随机函数random.choice()随机出一个豆子加入到当前函数的a_beans豆子列表中,再将随机出的豆子从beans 列表中移除

祝学习愉快~
Python全能工程师
- 参与学习 人
- 提交作业 16415 份
- 解答问题 4469 个
全新版本覆盖5大热门就业方向:Web全栈、爬虫、数据分析、软件测试、人工智能,零基础进击Python全能型工程师,从大厂挑人到我挑大厂,诱人薪资在前方!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星