Python数学除法运算返回0

print "------------ EPIDEMIOLOGY --------------\n"

def divide(A,B):
    return A/B

print " [Population] point Prevalence rate: "
A = input("Enter value for people with disease: " )
B = input("Enter value for total population: " )    
prevalence = divide(A,B)
print " Population Prevalence rate is: ",prevalence

A和B是用户输入,不知道它们是整数还是浮点数.当我运行这个程序时,我的答案总是0. (我是Python的新手).我如何修复此问题或更改我的功能以避免此问题?

代码的输入部分有效,数学没有.

解决方法:

你得到的答案是0,因为你正在使用Python2并执行整数除法.疾病人群不能高于总人口的事实是每个合理输入得到零的原因(除非两个值相同).

两个修复:

def divide(a,b):
    if b == 0:
        # decide for yourself what should happen here
    else:
        return float(a)/b

这将确保您的函数执行浮点除法,而不管您传递给它的数字.第二个修复是你应该在Python2中使用raw_input并将输入转换为数字(这里的float会很好).

a = float(raw_input("Enter value for people with disease: ")) # add error checking as needed
b = float(raw_input("Enter value for total population: " )) # add error checking as needed

input()的问题是它等效于eval(raw_input()).

上一篇:python – 寻找另一种divmod函数


下一篇:在C#中/ =意味着什么?