如何定义函数 - 比如def polyToString(poly)
- 以标准形式返回包含多项式poly
的字符串?
例如:[-1, 2, -3, 4, -5]
表示的多项式将返回为:
"-5x**4 + 4x**3 -3x**2 + 2x**1 - 1x**0"
def polyToString(poly):
standard_form=''
n=len(poly) - 1
while n >=0:
if poly[n]>=0:
if n==len(poly)-1:
standard_form= standard_form + ' '+ str(poly[n]) + 'x**%d'%n
else:
standard_form= standard_form + ' + '+str(poly[n]) + 'x**%d'%n
else:
standard_form= standard_form + ' - ' + str(abs(poly[n])) + 'x**' + str(n)
n=n-1
return standard_form
答案 0 :(得分:3)
为什么这么难?
def poly_to_str(coefs):
return ''.join(['{:+d}x**{:d}'.format(a,n) for n, a in enumerate(coefs)][::-1])
<强>解释强>
enumerate(coefs)
为我们n
,a
提供了ax**n
的标准格式
构件'{:+d}x**{:d}'.format(a,n)
格式化每个成员{:+d}
表示打印带符号的十进制数字[..][::-1]
撤消成员数组''.join(..)
将他们加入一个字符串示例强>
print poly_to_str([-1, 2, -3, 4, -5])
输出
-5x**4+4x**3-3x**2+2x**1-1x**0
答案 1 :(得分:0)
初学者可能更容易阅读。
def poly2str(coefs):
retstr=""
for i in range(len(coefs)):
if coefs[i] < 0:
retstr += " -" + str(abs(coefs[i])) + "x**" + str(len(coefs) - i) + " "
else:
retstr += "+ " + str(abs(coefs[i])) + "x**" + str(len(coefs) - i) + " "
return retstr