我正准备编写一个评估多项式的程序。但是下面的代码只是一个尝试。下面的代码给出了一个在“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最多五次..
答案 0 :(得分:2)
尝试使用raw_input()并记住raw_input()始终返回一个字符串。所以你必须将返回的字符串转换为如下的整数:
>>> x = int(raw_input("foo: "))
然后可以测试像x&gt;这样的东西。 2等没有转换为整数,会发生以下情况:
>>> "2" > 1
True
>>> "2" > 3
True
答案 1 :(得分: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]
答案 2 :(得分:0)
首先:做得好 - 这只是一个小错误:删除你最后一行中的“句法空白”,或者完全删除它
其次:不要忘记添加值;-) - 关于标题,最好使用python列表。
答案 3 :(得分:0)
问题似乎(对我来说)你的循环依赖于2个变量,你可能期望它只依赖于1。
也许这会更好一些:
while t > 0:
x = input("n: ")
if x <= 0:
print "Not possible!"
else:
print x**t
t-=1