【发布时间】:2020-01-20 09:32:46
【问题描述】:
刚加入社区,最近接触了python3。我目前正在通过资源“如何像使用 Python3 的计算机科学家一样思考,第 3 版”进行学习。我正在完成第 4 章的一些练习:函数并遇到了这个问题: Problem in question
目前我对这个问题的尝试是这样的(请原谅格式):
print('-----------Ex 2-----------')
days_of_week = ('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday')
def day_name(n):
if n >= 0 and n < 7:
return str(days_of_week[int(n)])
else:
return 'None'
print(day_name(1))
print('-----------Ex 3-----------')
def num_day(day_name):
for day in days_of_week:
if day == day_name:
return(days_of_week.index(day_name))
else:
return 'None'
print(num_day("Tuesday"))
对于练习 2,一切似乎都运行良好,但是对于练习 3,该函数返回当天的索引以及“无”,如下所示:Result
非常感谢任何解释为什么会发生这种情况以及如何删除“无”的存在
谢谢!
【问题讨论】:
-
在 Ex 3 中,该方法不返回任何内容。因此无。返回值而不是 print()。
-
除了下面给出的解释之外,您还可以将函数
def num_day(day_name):主体简化为 1-linerreturn days_of_week.index(day_name) if day_name in days_of_week else None。这利用了三元表达式,参见例如here.
标签: python python-3.x list