-
猜拳小游戏通过随机数和条件判断实现,玩家输入石头、剪刀或布,程序随机选择并判定胜负:石头胜剪刀,剪刀胜布,布胜石头,相同为平局;代码包含输入验证与循环控制,支持扩展如统计比分和添加图形界面。
-
FileNotFoundError是OSError的子类,当操作不存在的文件或目录时触发,如open()、os.remove()等操作。常见场景包括读取、删除或移动不存在的文件。可通过try-except捕获异常,并用os.path.exists()或pathlib.Path.exists()提前检查路径,推荐结合使用以应对多任务环境中的文件变动风险。
-
轮盘赌选择根据适应度比例分配选中概率,适应度越高被选概率越大。首先计算总适应度与各个体累积概率,再生成随机数在累积概率序列中查找对应个体。Python实现通过遍历累积概率判断随机值落点区域,返回对应个体。示例中A、B、C、D适应度为10、30、20、40,经1000次测试后选中次数分布接近理论概率。需注意适应度非负、避免除零,并可优化搜索效率。适用于遗传算法、强化学习等场景。
-
掌握生成器和迭代器协议可提升数据处理效率。首先理解迭代器协议要求__iter__()返回迭代器,__next__()返回元素并抛出StopIteration;通过类实现可自定义迭代行为。接着使用生成器函数,用yield暂停执行并保存状态,简化迭代器创建。再利用生成器表达式(x*2forxinrange(5))按需生成数据,节省内存。生成器支持多次暂停与恢复,适合复杂控制流。最后处理终止与异常:StopIteration标志结束,close()触发GeneratorExit以清理资源。
-
答案是根据需求选择:简单操作用函数,需封装状态时用类。函数适合无状态、一次性逻辑,如计算、转换;类适合管理数据与行为,如对象属性和方法。例如,计算圆面积用函数defcalculate_area(radius)更简洁;而银行账户需保存余额并提供存款、查询等操作,用classBankAccount更合理。选择原则:无状态用函数,有状态用类,先写函数再按需重构为类。