展开全部

import re

class derivative:

def __init__(self,s):

self.s='+'+s if s[0] not in ['+','-'] else s

def __analysis__(self):

self.ite=list(re.finditer('[+-]',self.s))

self.items=[x for x in re.split(r'[+-]',self.s) if x!='']

self.pm=[self.s[i.span()[0]] for i in self.ite]

self.var=[k[k.find('^')-1] for k in self.items if k.find('^')>-1][0]

self.ratio=[]

self.power=[]

for item in self.items:

j=item.find('^')

k=item.find(self.var)

if j>-1:

self.power.append(int(item[j+1]))

elif k>-1:

self.power.append(1)

else:

self.power.append(0)

for item in self.items:

k=item.find('*')

if k>-1:

self.ratio.append(int(item[k-1]))

elif item.find(self.var)>-1:

self.ratio.append(1)

else:

self.ratio.append(int(item))

self.items=[t[1] for t in sorted(list(zip(self.power,self.items)),reverse=True)]

self.ratio=[t[1] for t in sorted(list(zip(self.power,self.ratio)),reverse=True)]

self.pm=[t[1] for t in sorted(list(zip(self.power,self.pm)),reverse=True)]

self.power.sort(reverse=True)

def __derivative__(self):

power=[x-1 if x>1 else 0 for x in self.power]

ratio=[]

for i in range(len(self.power)):

if self.power[i]>1:

ratio.append(self.power[i]*self.ratio[i])

elif self.power[i]==1:

ratio.append(self.ratio[i])

else:

ratio.append(0)

items=[]

for i in range(len(self.power)):

if ratio[i]==0:

continue

item=self.pm[i]

if ratio[i]>0:

item+=str(ratio[i])

if power[i]>0:

item+='*'+self.var

if power[i]>1:

item+='^'+str(power[i])

items.append(item)

self.out_s=''.join(items)

if self.out_s[0] == '+':

self.out_s=self.out_s[1:]

def der(self):

self.__analysis__()

self.__derivative__()

return self.out_s

s='2*x^3+3*x^2+5*x+1'

d=derivative(s)

print(d.der())

s='-5*x^6-3*x^3+12-4*x^4'

d=derivative(s)

print(d.der())

“不恰当的输入”不知道要处理什么级别的错误32313133353236313431303231363533e4b893e5b19e31333365646237,所以没搞。自己根据需求去搞吧。

python面向对象作业_python面向对象编程作业相关推荐

  1. python udp通信_Python网络编程(三)

    回顾 在<Python进阶记录之网络编程(二)>中,我们介绍了UDP端口号的基本概念和作用以及Python中UDP服务端的端口绑定和简单创建.今天我们利用UDP server和UDP cl ...

  2. python 鱼骨图_python面向对象编程,鱼骨图分析法

    一.面向对象编程 ​ 面向过程编程,核心是编程二字,过程指的是解决问题的步骤,即先干什么.后干什么.再干什么.然后干什么-- 与工厂的工艺流程差不多,前后都有影响 优点:复杂的问题流程化,进而简单化, ...

  3. python通过银行卡号_python面向对象编程实例---银行账号

    转载自python面向对象编程示例---银行账号 | 酷python​www.coolpython.net 在最初接触面向对象编程时,你会感到有些不习惯,但这种编程范式却有助于我们思考问题,前提是你准 ...

  4. python编程语言继承_Python 面向对象编程——继承和多态

    <基本定义> 在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Ba ...

  5. python面向对象图片_Python面向对象-概念、类、实例

    OOP--Object Oriented Programming,面向对象编程,是一种程序设计思想.该思想将对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 区别于面向过程的程序设计即把计 ...

  6. python封装举例_Python面向对象封装操作案例详解

    本文实例讲述了Python面向对象封装操作.分享给大家供大家参考,具体如下: 目标 封装 小明爱跑步 存放家具 01. 封装 封装 是面向对象编程的一大特点 面向对象编程的 第一步 -- 将 属性 和 ...

  7. python self理解_Python面向对象总结,让你快速掌握面向对象常用的用法

    python等面向对象的提出是为了更好的处理和管理同属一个类别的事情,这样就可以省去多余重复的基础代码,让程序变得更加简洁和强大.对于学习编程的朋友来说,熟悉掌握面向对象是非常重要的. 下面开始讲讲关 ...

  8. python面向对象继承_Python 面向对象 --- 继承

    目标 单继承 多继承 面向对象三大特性 1,封装 根据 职责 将 属性 和 方法 封装 到以抽象的 类 中 2,继承 实现代码的重用,相同的代码不需要重复的缩写 3,多态 不同的对象调用相同的方法,产 ...

  9. python字符串操作作业_python 第二天作业

    #python 中的循环 #先介绍for循环 #格式 #for 临时变量 in 可迭代对象 # 循环体 #name = 'neusoft' #for a in name : # print(a) # ...

最新文章

  1. 通过sqlserver日志恢复误删除的数据
  2. Python 列表的应用场景有哪些?你使用对了吗?
  3. 转载:vscode gcc makefile git 配置入门
  4. Java语言程序设计(一)填空题
  5. 单片机加减法计算器_大神们!汇编,数码管显示简易加减计算器
  6. java day24【Stream流、方法引用】
  7. 机器学习与深度学习视频讲解
  8. 服务器pci-e硬盘,来一发干货,PCI-E SSD硬盘使用须知
  9. idea主菜单栏(main menu)消失解决办法,无需重启
  10. excel之筛选、删除技巧
  11. 3DMax如何通过光子图渲染
  12. Vue-cli配置代理服务器,解决跨域请求问题
  13. Java 6-2:收放自如,融汇贯通,让线程不再疯癫——线程的阻塞和关闭
  14. 'Sheet1$' 不是一个有效名称的解决方法
  15. Azkaban重新编译,解决:Could not connect to SMTP host: smtp.163.com, port: 465【2022年01月10日】
  16. 如何让Div层悬浮在Flash Object对象之上!
  17. 折叠屏:手机厂商的「续命良药」
  18. mysql试题百度云_MYSQL练习题及答案
  19. 计算机毕业设计springboot小组学习系统
  20. CC11XX系列的介绍和区别

热门文章

  1. C/C++学习之路: STL
  2. 直播预告│据说这是人工智能领域里最难的一门学问……
  3. 腾讯云黑石TStack一体机柜斩获2019数博会领先科技成果双重“优秀项目奖”
  4. TEG Cheers | 腾讯技术工程运维技术沙龙精彩回顾(内置现场视频)
  5. nginx源码分析configure脚本详解
  6. nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
  7. 使用idea编写代码作为生产者,Kafka接收其发来的信息【小案例】(一)
  8. Scala _04Scala字符串
  9. 全面的GC原理及调优
  10. leetcode 738. Monotone Increasing Digits | 738. 单调递增的数字(Java)