有没有带佬知道为什么从第二个print开始就只有一个值了a
下面print的也不是最后一个return 哭哭
您的代码命名有问题:1. Python 类名命名应采用“驼峰命名法”,单词首字母大写,不用下划线。2. 变量名不可以与Python 关键字相同(如您的拆分列表变量list与内置函数list()重名,list()函数被变量list覆盖,list()不可用。);Python 变量命名规则为字母开头,一般不用大写字,单词用下划线“_”连接,您第一次拆分多项式的变量List。
我复刻了您图片中的代码(未修改您的变量命名),修正了变量a、b处的return ,改用了print() 。但您最后一条return 后面是字符串与list 相加,我用join()方法拼接了字符列表。您return 1、return 0那段,算起起来是接收多项式中的常量或x的一次方的,也应该赋值给变量而不可以用return关键字,没太弄明白,没作改动。
#!/usr/bin/nve python
# coding: utf-8
class ProcessDerivative:
def __init__(self, polynomial):
self.polynomial = polynomial
def get_first_derivative(self):
import re
str1 = self.polynomial
List = re.split('\+|-', str1)
print(List)
result_two = []
for i in List:
print(i)
# import re # 不用重复加载re。
list = re.split('\*|\^', i)
if len(list) == 1 and int(list[0]) is False:
return 1
elif len(list) == 1 and int(list[0]) is True:
return 0
elif len(list) == 2:
try:
int(list[0])
return list[0]
except:
a = str(int(list[1])) + '*' + str(int(list[0])) + '^' + str(int(list[1]) - 1)
print(a)
else:
b = str(int(list[2])*int(list[0])) + '*' + str(list[1]) + '^' + str(int(list[2])-1)
print(b)
result_two = list
return 'The first derivative is: ' + ''.join(result_two) # e.g. The first derviative is: '6*x^2+6*x+5'"
if __name__ == '__main__':
result = ProcessDerivative('3*x^3+2*x^2')
print(result.get_first_derivative())
result_two = List[0]
return 'The first derivative is: ' + result_two # e.g. The first derviative is: '6*x^2+6*x+5'"
\在字符串里是转义符啊,你把加号给转义了
改成'\\+|-'
或者
r'\+|-',r表示字符串里\不再是转义符