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