《如何像计算机一样思考》一书第4.17节有练习 科学家:用 Python 学习 3》第 3 版
“编写一个函数 day_name,将整数 0 到 6 转换为日期的名称。假设第 0 天是“星期日”。如果函数的参数无效,则再次返回 None。”
我编写了以下代码,它解决了大部分问题,但我无法理解如何为无效参数返回“None”。请帮忙...
def day_name(x):
days=["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
return days[x]
print(day_name(5))
如果我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
关于python - "think python 3"书中day_num问题的解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54630330/