首页 > 解决方案 > 《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"

标签: pythonpython-3.x

解决方案


向您的函数添加验证。您可以明确地执行此操作:

if x in range(7):
    return days[x]
else:
    return None

这称为跳跃前days[x]的查看:在尝试选择它之前检查它是否存在。

或者您可以让选择失败并捕获错误:

try:
    return days[x]
except IndexError:
    return None

推荐阅读