用Python中的原始输入读取值

用Python中的原始输入读取值,python,Python,我试图在Python中进行集成,但每当我输入一个值时,我的输出总是结果为0。原因是什么 例如: (*注意:eq在area\u-under\u-graph()函数下的eq只是它的一半,因为另一半是工作,所以我没有发布:) 对于上面的代码,我尝试在这里输入值:(也许您可以尝试使用相同的(:) 我应该得到7/3,也就是2.333,但我最终得到了2。问题似乎出在等式的第一部分 很抱歉提出这个新问题。您开始时的代码错误。您需要在阅读用户输入后分配变量: value_of_a() 应该是: a = val

我试图在Python中进行集成,但每当我输入一个值时,我的输出总是结果为0。原因是什么

例如:

(*注意:
eq
area\u-under\u-graph()
函数下的
eq
只是它的一半,因为另一半是工作,所以我没有发布:) 对于上面的代码,我尝试在这里输入值:(也许您可以尝试使用相同的(:)

我应该得到7/3,也就是2.333,但我最终得到了2。问题似乎出在等式的第一部分


很抱歉提出这个新问题。

您开始时的代码错误。您需要在阅读用户输入后分配变量:

value_of_a()
应该是:

a = value_of_a()
也不需要编写单独的函数来输入每个变量。您可以使用一个函数来获取参数:

def get_user_value(name):
    return raw_input("Enter value for %s\n" % name)

a = get_user_value("a")
b = get_user_value("b")
# etc..
但是,您忽略所有这些值,并在
area\u under\u curve()
方法中再次读取它们。这可能不是您想要做的。此外,在该方法中,您假设所有参数都是整数。如果您使用的是Python 2.5,这里的除法是整数除法:

m1/m2

当结果实际上应该是非整数(如0.125)时,它可能返回0。您需要使用浮点而不是整数来进行计算。您可以在Python 2.5中使用浮点(m)来完成此操作。在Python 3.0中,除法运算符默认执行您想要的操作。

//code>在Python2中执行整数除法,这意味着
a/b
是Python2.x中
c*b的最大整数。在Python2.x中,将一个整数除以另一个整数将得到一个整数。使用
from\uuuuu future\uuu导入除法,或者通过将其中一个整数传递给
float()

将其转换为一个浮点。问题是您使用的是整数算术-查看您在任何地方都遇到的所有
int
调用。整数算术(在Python 2.x中)将只返回整数,因此您永远不会得到2.33,只有2


使用
float()
而不是
int()
,事情应该会成功。

请阅读上一个问题的答案。它与此非常相似。您应该通过阅读来学习编程,而不是通过反复试验。虽然THC4k的答案对于您眼前的问题是正确的,但您似乎不知道(来自本问题和上一个问题)对结构化程序中的函数之间的控制如何流动有一个奇怪的误解。在再次调用之前,将每个步骤作为一个单独的函数依次调用的所有这些东西都非常奇怪,而不是任何人通常编写程序的方式。请注意,隐式int除法通常被认为是一个错误,并且它在Python 3中发生了变化。请看,随机旋转其中一个并不总是足够的。
float(5)+6/7
例如,返回5.0。要知道将哪一个更改为float,您必须了解前置规则。我怀疑海报不理解这一点,因此对他来说,更好的建议是将所有这些更改为float。
def get_user_value(name):
    return raw_input("Enter value for %s\n" % name)

a = get_user_value("a")
b = get_user_value("b")
# etc..
m1/m2