【发布时间】:2021-10-16 16:50:56
【问题描述】:
请帮帮我,我在做一个在线课程,有人问我这个问题
fractional_part 函数将分子除以分母,只返回小数部分(0 到 1 之间的数字)。完成函数的主体,使其返回正确的数字。 注意:由于除以 0 会产生错误,因此如果分母为 0,则函数应返回 0 而不是尝试除法。
这是我的代码:
def fractional_part(numerator, denominator):
# Operate with numerator and denominator to
# keep just the fractional part of the quotient
if denominator == 0 or numerator == 0:
print("0")
else:
fraction = numerator / denominator
while fraction > 1:
fraction1 = fraction - 1
return fraction1
print(fractional_part(5, 5)) # Should be 0
print(fractional_part(5, 4)) # Should be 0.25
print(fractional_part(5, 3)) # Should be 0.66...
print(fractional_part(5, 2)) # Should be 0.5
print(fractional_part(5, 0)) # Should be 0
print(fractional_part(0, 5)) # Should be 0
这是我的输出:
UnboundLocalError:在赋值之前引用了局部变量“fraction1”
【问题讨论】:
-
fraction1在while fraction > 1:中定义。这意味着如果fraction为 1 或更小,则不会定义fraction1 -
在语句的 else 部分,在 while 循环中。如果分数小于 1,fraction1 = fraction - 1 将被忽略并跳转到 return 语句。在 return 语句中,它不知道 fraction1 是什么,因为您从未使用过它/从未将其分配给某物
-
您好,欢迎来到 StackOverflow。请花点时间阅读这篇关于如何提问的文章stackoverflow.com/help/how-to-ask 也阅读这篇关于如何以最低要求提出一个好问题的文章stackoverflow.com/help/minimal-reproducible-example。
标签: python php python-3.x function