使用 Python 过程的结果进行算术运算
Arithmetic with the Result of Python Procedures
我在 python 中定义了一个过程,它输出一个数字,并且想添加在两个不同输入上调用该过程的结果。但是,当我尝试对过程的结果执行算术运算时,出现了错误消息
TypeError: unsupported operand type(s) for -: 'NoneType' and
'NoneType'.
我尝试使用 int() 函数,但显然这不能对 'NoneType' 结果进行操作。我将如何添加这两个结果?
有问题的代码段是:
def leapYear(year):
if year % 4 != 0:
year = 365
else:
if year % 100 != 0:
year = 366
else:
if year % 400 != 0:
year = 365
else:
year = 366
def daysBetweenDates(year1, month1, day1, year2, month2, day2):
dpY = leapYear(year2) - leapYear(year1)
这是我尝试解决 Udacity 问题的一部分(我对编码还比较陌生)。
您需要明确 return 您希望使用的函数的结果。因此,您需要将以下行添加到 leapYear
函数的末尾:
return year
单级缩进。
完整示例:
def leapYear(year):
if year % 4 != 0:
year = 365
else:
if year % 100 != 0:
year = 366
else:
if year % 400 != 0:
year = 365
else:
year = 366
return year
def daysBetweenDates(year1, month1, day1, year2, month2, day2):
return leapYear(year2) - leapYear(year1)
如果未明确 return 编辑值,则 Python 函数 return 是 None
值。
也就是说,您可以使用 datetime
模块,尤其是 datetime.timedelta
对象,让您的生活更轻松。
您在 leapYear()
过程中忘记了 return year
,默认情况下它将 return None
.
使用这个:
def leapYear(year):
if year % 4 != 0:
year = 365
else:
if year % 100 != 0:
year = 366
else:
if year % 400 != 0:
year = 365
else:
year = 366
return year
def daysBetweenDates(year1, month1, day1, year2, month2, day2):
dpY = leapYear(year2) - leapYear(year1)
我在 python 中定义了一个过程,它输出一个数字,并且想添加在两个不同输入上调用该过程的结果。但是,当我尝试对过程的结果执行算术运算时,出现了错误消息
TypeError: unsupported operand type(s) for -: 'NoneType' and 'NoneType'.
我尝试使用 int() 函数,但显然这不能对 'NoneType' 结果进行操作。我将如何添加这两个结果?
有问题的代码段是:
def leapYear(year):
if year % 4 != 0:
year = 365
else:
if year % 100 != 0:
year = 366
else:
if year % 400 != 0:
year = 365
else:
year = 366
def daysBetweenDates(year1, month1, day1, year2, month2, day2):
dpY = leapYear(year2) - leapYear(year1)
这是我尝试解决 Udacity 问题的一部分(我对编码还比较陌生)。
您需要明确 return 您希望使用的函数的结果。因此,您需要将以下行添加到 leapYear
函数的末尾:
return year
单级缩进。
完整示例:
def leapYear(year):
if year % 4 != 0:
year = 365
else:
if year % 100 != 0:
year = 366
else:
if year % 400 != 0:
year = 365
else:
year = 366
return year
def daysBetweenDates(year1, month1, day1, year2, month2, day2):
return leapYear(year2) - leapYear(year1)
如果未明确 return 编辑值,则 Python 函数 return 是 None
值。
也就是说,您可以使用 datetime
模块,尤其是 datetime.timedelta
对象,让您的生活更轻松。
您在 leapYear()
过程中忘记了 return year
,默认情况下它将 return None
.
使用这个:
def leapYear(year):
if year % 4 != 0:
year = 365
else:
if year % 100 != 0:
year = 366
else:
if year % 400 != 0:
year = 365
else:
year = 366
return year
def daysBetweenDates(year1, month1, day1, year2, month2, day2):
dpY = leapYear(year2) - leapYear(year1)