我正在研究 cs50 python 在试图理解提出问题的预期解决方案时,编程课程中的一些问题集陷入了困境。
要求添加将输入字符串转换为代表美元金额的浮点数的先决条件代码。
下面的代码片段提供了两种不同的解决方案。
第一段显示了老师添加的部分。我应该填写dollar_to_float和percent_to_float函数中的空白。
立即学习“Python免费学习笔记(深入);
第二个概述了我解决问题的方法。它涉及修改先决条件代码以获得预期结果。
代码1(具有独立功能的原始代码)def main(): dollars = dollars_to_float(input("how much was the meal? ")) percent = percent_to_float(input("what percentage would you like to tip? ")) tip = dollars * percent print(f"leave ${tip:.2f}") def dollars_to_float(d): return float(d.replace("$", "")) def percent_to_float(p): return float(p.replace("%", "")) / 100 main()
def main(): dollars = float(input("How much was the meal? ")) percent = float(input("What percentage would you like to tip? ")) tip = dollars * percent / 100 print(f"Leave ${tip:.2f}") main()
让我困惑的是为什么使用第一种方法,以及它是否是开发人员首选的编码实践。
结果是一样的,但基于以下差异,处理解决方案的方法是不同的:
差异函数定义:
输入处理:
小费计算:
模块化:将转换逻辑分解为单个函数(dollars_to_float percent_to_float)使代码更加模块化。每个函数都有一个职责,使其更容易测试和维护。
可重用性:如有必要,单个函数可以在程序的其他部分重用。
清晰度:转换的意图更清晰。每个函数名称都描述了它的功能,使代码更容易阅读和理解。
简单:由于没有定义额外的函数,代码更简单、更短。一切都是在主函数中完成的。
直接性:对于小脚本来说,直接处理输入和转换逻辑更容易理解。
模块化和清晰度:在项目较大或输入处理复杂的地方,代码1方法是首选。它使代码库更容易管理和理解。编写模块化代码是编程中常见的最佳实践。
简单和简洁:对于小脚本或当输入非常简单(例如,确保它是纯数字)时,代码2由于其简单性,该方法通常是足够的,并被广泛使用。
我做了一些研究,了解了小而简单的脚本。由于其简单性和简单性,在主函数中直接处理输入和转换是很常见的(代码2)。
然而,在更大或更复杂的应用程序中,将逻辑分解为单独的函数可以提高模块化、可重用性和清晰度,使代码库更容易管理和理解(代码) 1)。
以上是比较 Python 更多关于模块化和输入处理(带代码示例)的详细信息,请关注其他相关文章!
腾讯云香港服务器,无需备案,轻松搭建!
比较 Python Python教程中的模块化和输入处理(带代码示例)
轻松掌握:视频复制粘贴的高效技巧
Go 对比框架的异步编程能力-Golang
从 TypeScript 到 Golang:后端之旅更顺畅-Golang
文件夹复制失败,原因何在?速查解决之道!
Go 并发和协程场景中框架的性能-Golang
Go 对比框架的异步编程能力-Golang
从 TypeScript 到 Golang:后端之旅更顺畅-Golang
Go 并发和协程场景中框架的性能-Golang
用于Web开发的C 框架与C 库-C
哪种C 支持跨平台移动开发的框架?-C
C 框架和C 对比图书馆的学习曲线-C
哪种C 最适合开发游戏移动应用的框架?-C
Golang框架的生态系统支持云原生开发所需的技术吗?-Golang
哪种C 该框架提供了最强大的错误处理和日志记录功能?-C
哪种C 最适合基础设施移动开发的框架?-C
C 框架与C 图书馆的差异比较-C
如何将Golang框架与Java集成?-Golang