0

我正要编写一个计算多项式的程序。但是下面的代码只是一个尝试。下面的代码给出了一个在“counter = t”时停止的输出......我希望它在counter = 0时给出一个输出。怎么可能?我想将每个数字(输入)视为多项式的系数。如果我成功地做到了这一点,我计划创建一个列表,然后对于列表中的每个元素,例如,我会将它乘以某个提高到其索引的数字,然后将它们相加,以便我评估一个多项式..我清楚吗?我的计划会成功吗?非常感谢。。请帮忙。。

t = input("Enter degree of Polynomial: ")  
while t < 0:  
    print ("Not possible! ")  
    t = input("Enter degree of Polynomial: ")   

counter = 0  

while counter < t:  
    x = input("n: ")

    if x <= 0:
        print "Not possible!"
    else:
        print x**t  
    t-=1  

    counter += 1

输出是这样的:
输入多项式的次数:5
n:5
3125
n:4
256
n:3
27
然后它结束..它应该继续要求输入 n 最多五次..

4

4 回答 4

2

尝试使用 raw_input() 并记住 raw_input() 总是返回一个字符串。因此,您必须将返回的字符串转换为整数,例如:

>>> x = int(raw_input("foo: "))

然后可以测试 x > 2 等。如果不转换为整数,会发生以下情况:

>>> "2" > 1
True
>>> "2" > 3
True
于 2013-01-27T14:07:30.757 回答
0

像这样的东西?

while True:
    degree = int(raw_input("Enter degree of Polynomial: "))
    if degree >= 0:
        break
    print ("Not possible!")  

x = float(raw_input("x = "))

y = 0.0
for exponent in reversed(range(degree)):
    k = float(raw_input("k[{0}] = ".format(exponent)))
    y += k * (x ** exponent)

print("y = ", y)

这解决了以下形式的多项式:

y = (k[N-1] * (x ^ N-1) + (k[N-2] * (x ^ N-2) + ... + k[0]
于 2013-01-27T14:23:51.570 回答
0

首先:干得好 - 这只是一个小错误:删除最后一行中的“语法空格”,或者完全删除它

其次:不要忘记添加值 ;-) - 关于您的标题,最好使用 python 列表来完成。

于 2013-01-27T16:07:07.743 回答
0

问题似乎(对我来说)你让循环依赖于 2 个变量,你可能期望它只依赖于 1。

也许这会更好一些:

while t > 0:  
    x = input("n: ")

    if x <= 0:
        print "Not possible!"
    else:
        print x**t  
    t-=1  
于 2013-01-27T19:02:47.680 回答