我刚刚开始学习python,无法让这段代码正常工作。
def percentage():
while True:
try:
x = int(input('First number:'))
y = int(input('Second number:'))
fraction = x/y
percentage = fraction * 100
final = "%d" % percentage
return final
except ZeroDivisionError:
pass
except ValueError:
pass
if percentage() <= 1:
print('E')
elif percentage() >= 99:
print('F')
else:
print(percentage(), "%")
只有当我输入x = 999和y = 1000时,才会打印“F”。任何其他值只是不断地提示用户。当百分比函数返回〈= 1时,代码应该输出“E”,当它返回〉= 99时,代码应该输出“F”,当返回任何其他值时,代码应该输出实际的百分比数字。
2条答案
按热度按时间niwlg2el1#
当
final
是一个字符串时,我得到了一个类型错误,然后你试图将它与一个整数进行比较。然而,你所问的问题是由于percentage()
的3次调用引起的。相反,调用它一次,并将返回值赋给一个变量,然后对该变量运行测试:brccelvz2#
我将重新构造程序,以便percent函数将
percentage
作为浮点数而不是字符串返回,并在print语句中处理字符串格式。我们还应该使用
p = percentage()
之类的变量将某个变量设置为等于函数的输出,然后在条件中使用p
,这样我们就不会在条件中意外地多次运行percentage()。程序运行示例: