请帮助我,我正在上一门在线课程,有人问我这个问题
分数部分函数将分子除以分母,只返回分数部分(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
更改为fraction
,将解决fraction1
未定义的问题。然后,您需要在第一个if
之后添加fraction = 0
,以解决denominator
或numerator
是否为0
您必须在代码中定义
fraction1
您仅在
while
循环内创建fraction1
变量,并且while
循环仅在fraction > 1
时运行如果
fraction <= 1
怎么办?在代码的任何地方都没有创建任何名为fraction1
的变量最后,函数返回未定义的
fraction1
此外,必须在循环内将
fraction
减少1,否则循环将无限期地继续下去相关问题 更多 >
编程相关推荐