2015-12-14 71 views
0

我希望从用户浮动接受了一些,给一个答案用PI值数乘以圆周率值的号码= 3.14乘以在python

继承人我的代码:

print "Enter a no." 
n = raw_input('enter here: ') 
result = 1 
def gen_pi(x): 
    result = x*3.14 
    return float(result) 

gen_pi(n) 

它给了我一个错误,无法将非整数序列与float相乘。这是什么意思?代码有什么问题?

回答

0

raw_input结果是str这意味着nstr,然后在你的函数,xstr不能乘以float

您需要将x转换为浮点数,然后再乘以pi

有很多地方要做到这一点,但我建议你做它传递给gen_pi前:

gen_pi(float(n)) 

这样,gen_pi总是可以假设它的工作与float和代码可以简化:

def gen_pi(x): 
    return x * 3.14 

还要注意的是,如果你想更多精度(也可能多一点代码的清晰度),你可以使用math.pi

import math 
def gen_pi(x): 
    return x * math.pi 
+0

另外,由于'3.14'已经是一个浮点数,'result'(在'gen_pi'中)也是一个浮点数。因此'返回float(result)'应该只是'return result'。 – aneroid

+1

@aneroid - 对。当你在评论时,我显然是在写这篇文章。 – mgilson