python面向对象作业_python面向对象编程作业
展开全部
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面向对象编程作业相关推荐
- python udp通信_Python网络编程(三)
回顾 在<Python进阶记录之网络编程(二)>中,我们介绍了UDP端口号的基本概念和作用以及Python中UDP服务端的端口绑定和简单创建.今天我们利用UDP server和UDP cl ...
- python 鱼骨图_python面向对象编程,鱼骨图分析法
一.面向对象编程 面向过程编程,核心是编程二字,过程指的是解决问题的步骤,即先干什么.后干什么.再干什么.然后干什么-- 与工厂的工艺流程差不多,前后都有影响 优点:复杂的问题流程化,进而简单化, ...
- python通过银行卡号_python面向对象编程实例---银行账号
转载自python面向对象编程示例---银行账号 | 酷pythonwww.coolpython.net 在最初接触面向对象编程时,你会感到有些不习惯,但这种编程范式却有助于我们思考问题,前提是你准 ...
- python编程语言继承_Python 面向对象编程——继承和多态
<基本定义> 在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Ba ...
- python面向对象图片_Python面向对象-概念、类、实例
OOP--Object Oriented Programming,面向对象编程,是一种程序设计思想.该思想将对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 区别于面向过程的程序设计即把计 ...
- python封装举例_Python面向对象封装操作案例详解
本文实例讲述了Python面向对象封装操作.分享给大家供大家参考,具体如下: 目标 封装 小明爱跑步 存放家具 01. 封装 封装 是面向对象编程的一大特点 面向对象编程的 第一步 -- 将 属性 和 ...
- python self理解_Python面向对象总结,让你快速掌握面向对象常用的用法
python等面向对象的提出是为了更好的处理和管理同属一个类别的事情,这样就可以省去多余重复的基础代码,让程序变得更加简洁和强大.对于学习编程的朋友来说,熟悉掌握面向对象是非常重要的. 下面开始讲讲关 ...
- python面向对象继承_Python 面向对象 --- 继承
目标 单继承 多继承 面向对象三大特性 1,封装 根据 职责 将 属性 和 方法 封装 到以抽象的 类 中 2,继承 实现代码的重用,相同的代码不需要重复的缩写 3,多态 不同的对象调用相同的方法,产 ...
- python字符串操作作业_python 第二天作业
#python 中的循环 #先介绍for循环 #格式 #for 临时变量 in 可迭代对象 # 循环体 #name = 'neusoft' #for a in name : # print(a) # ...
最新文章
- 通过sqlserver日志恢复误删除的数据
- Python 列表的应用场景有哪些?你使用对了吗?
- 转载:vscode gcc makefile git 配置入门
- Java语言程序设计(一)填空题
- 单片机加减法计算器_大神们!汇编,数码管显示简易加减计算器
- java day24【Stream流、方法引用】
- 机器学习与深度学习视频讲解
- 服务器pci-e硬盘,来一发干货,PCI-E SSD硬盘使用须知
- idea主菜单栏(main menu)消失解决办法,无需重启
- excel之筛选、删除技巧
- 3DMax如何通过光子图渲染
- Vue-cli配置代理服务器,解决跨域请求问题
- Java 6-2:收放自如,融汇贯通,让线程不再疯癫——线程的阻塞和关闭
- 'Sheet1$' 不是一个有效名称的解决方法
- Azkaban重新编译,解决:Could not connect to SMTP host: smtp.163.com, port: 465【2022年01月10日】
- 如何让Div层悬浮在Flash Object对象之上!
- 折叠屏:手机厂商的「续命良药」
- mysql试题百度云_MYSQL练习题及答案
- 计算机毕业设计springboot小组学习系统
- CC11XX系列的介绍和区别
热门文章
- C/C++学习之路: STL
- 直播预告│据说这是人工智能领域里最难的一门学问……
- 腾讯云黑石TStack一体机柜斩获2019数博会领先科技成果双重“优秀项目奖”
- TEG Cheers | 腾讯技术工程运维技术沙龙精彩回顾(内置现场视频)
- nginx源码分析configure脚本详解
- nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
- 使用idea编写代码作为生产者,Kafka接收其发来的信息【小案例】(一)
- Scala _04Scala字符串
- 全面的GC原理及调优
- leetcode 738. Monotone Increasing Digits | 738. 单调递增的数字(Java)