python - 《think python 3》一书中day_num问题的解决方案
问题描述
《How to Think Like a Computer Scientist: Learning with Python 3》第 3 版一书的 4.17 节有练习
“编写一个函数 day_name,将整数 0 到 6 转换为一天的名称。假设第 0 天是“星期日”。再次,如果函数的参数无效,则返回 None。“
我编写了以下代码,大部分都解决了这个问题,除了我无法理解如何为无效参数返回“无”。请协助...
def day_name(x):
days=["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
return days[x]
print(day_name(5))
如果 i print(day_name(7))
,它返回 python 错误而不是 "None"
解决方案
向您的函数添加验证。您可以明确地执行此操作:
if x in range(7):
return days[x]
else:
return None
这称为跳跃前days[x]
的查看:在尝试选择它之前检查它是否存在。
或者您可以让选择失败并捕获错误:
try:
return days[x]
except IndexError:
return None
推荐阅读
- reactjs - 构建生产 React 项目时,Webpack 默认会摇树吗?
- neo4j - Levenshtein(编辑距离)算法在本机图形数据库中的执行速度是否比 O(n*m) 快?
- python - 编码 Newb:Python:从递归函数返回值的问题
- angular - angular v8 - 如何在开发模式下也获得生产构建模板错误
- reactjs - 传播参数
到 T 上没有 Typescript 抱怨 - git - 在特定行号以下的文件中进行阶段更改
- google-data-studio - Google DataStudio 如何从两个过滤的记分卡制作饼图?
- ffmpeg - 在 FFMPEG 中裁剪和转换时创建缩略图文件
- haskell - 无法将类型“PersistEntityBackend U”与“SqlBackend”匹配
- r - R 和 if 语句中的数据框