對數據按等級分類
要求: 一個數n,如果:
1. n > 9, n為A類
2. n < 9 and n > 8, n為B類
3. n < 8 and n > 7, n為C類
4. n <7 and n > 6, n為D類
4. n < 6, n為E類
使用if-else結構必然是能夠完成要求的,但是顯得不夠優雅,不妨嘗試一下如下方法:
1. 使用zip打包數據
def grade(score): grades = list(zip("ABCD", (9, 8, 7, 6))) return next((grade for grade, limit in grades if score >= limit), "E") print([grade(9), grade(5), grade(7)])
輸出結果:
['A', 'E', 'C']
解釋:
使用zip()函數對數據和類型打包為元組對,然後把元組對打包為一個列表,如果查看grades裡面的內容就會使如下:
[('A', 9), ('B', 8), ('C', 7), ('D', 6)]
這時候去通過數值去判斷對應的類型,如果不在這中間,說明是比6還要小的,則為E類.在這個地方使用了列表解析,我在前面的文章中對此有過比較詳細的說明,如果不懂,可以去看一下: 列表解析,集合解析,字典解析,
2. 使用字典包裝數據:
grades = {"A": 9, "B": 8, "C": 7, "D": 6} def convert_grade(src): for ltrgrd, numgrd in grades.items(): if src >= numgrd: return ltrgrd return "E" print(convert_grade(5))
這個代碼非常簡單,就不做多餘的說明.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用