【发布时间】:2020-11-21 20:46:24
【问题描述】:
有人可以帮助我使用我应该使用的正确代码吗?我还没弄明白。
我在下面发布了代码以及我在下面收到的错误结果。有些年龄报告不正确。有人可以帮我提供正确的代码吗?感谢您抽出宝贵时间并提供任何帮助。
下面有人帮我算出他们的生日。
(莎拉 = 2000/08/01,埃里克 = 2009/08/02,卡特 = 2009/07/28,乔治亚 = 2005/09/01)
这是代码:
from datetime import date
class Person:
def __init__(self, name, birthdate):
self.name = name
self.birthdate = birthdate
def get_age(self):
birthdate = self.birthdate
today = date.today()
if today.month >= birthdate.month and today.day >= birthdate.day:
self.age = (today.year - birthdate.year)
else:
self.age = (today.year - birthdate.year) - 1
return self.age
这是结果(一些年龄测试未通过):
#TEST 1#
sara.get_name() returned Sara
inputs:
outputs:
----------
#TEST 2#
sara.get_height() returned 160
inputs:
outputs:
----------
#TEST 3#
sara.get_age() returned 20
inputs:
outputs:
----------
#TEST 4#
sara.get_description() returned Sara is 160 cm high and is 20 years old.
inputs:
outputs:
----------
#TEST 5#
eric.get_age() returned 10
inputs:
outputs:
----------
#TEST 6#
** ERROR **carter.get_age() returned 10
* EXPECTED * 11
inputs:
outputs:
----------
#TEST 7#
georgia.get_age() returned 14
inputs:
outputs:
【问题讨论】:
-
尝试将代码精简到导致问题的特定部分是一个好主意,以使您的问题更加集中。见stackoverflow.com/help/minimal-reproducible-example
-
@CrazyChucky 没问题。我不知道,但感谢您通知我
-
我更新了我的帖子,只有代码和错误
-
today.month >= birthdate.month or today.day > birthdate.day可能不是您想要的。当比较今天的 7 月 31 日和 8 月 15 日的生日时,它会评估为True。我会计算并比较自 Unix 时代以来的儒略天数或秒数,但这实际上取决于你的老师的期望。如果您可以将作业的完整文本放入您的问题中,那将有所帮助。 -
单个
if,如果为True,则创建并设置self.age,但如果False也不是您想要的,则根本不创建self.age。
标签: python python-3.x python-2.7