Skip to content

Python内置函数

常用数学运算函数

函数名功能说明示例
abs()返回参数的绝对值abs(-2)、abs(3.77)
divmod()返回两个数值的商和余数divmod(10,3)
max()返回可迭代对象的元素的最大值或者所有参数的最大值max(-1,1,2,3,4)、max('abcef989')
min()返回可迭代对象的元素的最小值或者所有参数的最小值min(-1,12,3,4,5)
pow()求两个参数的幂运算值pow(2,3)、pow(2,3,5) 注:2的3次方 2的3次方对5求余
round()返回浮点数的四舍五入值round(1.456778)、round(1.45677,2)
sum()对元素类型是数值的可迭代对象的每个元素求和sum((1,2,3,4))、sum((1,2,3,4),-10)

常用的转换函数

函数名功能说明示例
bool()根据传入的参数返回一个布尔值bool('str')、bool(O)
int()根据传入的参数返回一个整数int(3)、int(3.6)
float()根据传入的参数返回一个浮点数float(3)、float('3.4')
complex()根据传入参数返回一个复数complex('1+2j')、complex(1,2)
str()返回一个对象的字符串表现形式str(123)、str('abc')
ord()返回 Unicode字符对应的整数ord('a')
chr()返回整数所对应的 Unicode字符chr(97)
bin()将整数转换成二进制字符串bin(3)
oct()将整数转换成八进制数字符串oct(10)
hex()将整数转换成十六进制字符串hex(15)

常用的序列操作函数

函数名功能说明
all()判断可迭代对象的每个元素是否都为True值
any()判断可迭代对象的元素是否有为True值的元素
range()产生一个序列,默认从0开始
map()使用指定方法去操作传入的每个可迭代对象的元素,生成新的可迭代对象
filter()使用指定方法过滤可迭代对象的元素
reduce()使用指定方法累积可迭代对象的元素
zip()聚合传入的每个迭代器中相同位置的元素,返回一个新的元组类型迭代器
sorted()对可迭代对象进行排序,返回一个新的列表
reversed()反转序列生成新的可迭代对象
python
all()    #是括号中每个元素都为true返回为true
any()    #是括号中一个个元素为true则返回为true
range()    #函数在前面介绍过不做过多介绍

m1=map(lambda x,y:x*y,[3,4,5],[4,5,6])   #运用lambda进行循环运算
type(m1)     #查看m1的属性
print(m1)    #打印m1
print(list(m1))    #打印将m1转换为列表并打印出来

f1=filter(lambda x:x%2,[1,2,3,4,5])    #筛选奇数
print(list(f1))
[1,2,3]

reduce()   #reduce在Python3中已经不是内置函数了,
from functools import reduce
r1=reduce(lambda x,y:x+y,(1,2,3,4,5))
print(r1)
15

z1=zip([1,3,5],[2,4,6])
print(list(z2))
[(1,2),(3,4),(5,6)]

r1=range(10)
r2=reversed(r1)    #反转可迭代对象
print(r2)

类与对象

对象(object):是对应客观世界的事物,将描述事物的一组数据和与这组数据有关的操作封装在一起,形成一个实体,这个实体就是对象(object)

类(Class):具有相同或相似性质的对象的抽象就是类(Class)

封装性:将数据和数据操作组织在一起,定义一个新类的过程就是封装

继承性:类之间的关系,一个类共享了一个或多个其他类定义的数据和操作,继承的子类可以对被继承的父类的操作进行扩展和重新定义

多态性:通常指类中的方法重载,即一个类中有多个同名(不同参数)的方法,方法调用时,根据不同参数执行不同的方法。

理解方法:“cut”这个单词,理发师是开始剪头发,演员则是停止表演

私有方法:在类中,__name、__department、title等,以两个“”下划线开头的方法叫做私有方法,私有方法只能在类内部使用。

创建类:

python
class Dog:     #创建Dog类
    num=0       #类变量
    def __init__(self):    #构造方法
        self.id=0       #成员变量
        self.color="yellow" 
    def enjoy(self):    #成员方法
        print("wangwang")
        print(self.color,self.id)
dog=Dog(1,"red")    #创建对象dog
dog.enjoy()

创建对象:

python
class Dog:    #创建类
    num=0      #创建类变量
    def __init__(self,id=0,color="yellow"):    #构造方法
        self.id=id
        self.color=color
    def enjoy(self):       #成员方法
        print("wangwang")
    def show(self,weight):
        print("重量{}公斤".format(weight))
        print("颜色{}".format(self.color))

dog=Dog(color="red")    #创建对象dog
dog.weight=52      #为对象添加属性
dog.show(dog.weight)
dog.enjoy()

构造方法

类中定义的名字为__int__()的方法(以两个下划线“__”开头和结尾)被称为构造方法,既可以增加参数,又可以使用默认值

示例如上所示,不做过多阐述

析构方法

Python中__del__()方法是析构方法,析构与构造相反,是用来释放对象所占空间

python
class Dog:
    num=0
    def __init__(self,id=0,color="yellow"):    #构建方法
        self.id=id
        self.color=color
    def enjoy(self):
        print("wangwang")
    def __del__(self):  #构建析构方法
        print("对象已被清楚")
dog=Dog(color="red")
dog.id=52
dog.enjoy()

成员变量和类变量

理解:对象是对客观事物的抽象,类是对对象的抽象,类和对象相当于犬类和金毛,类改变属性,对象属性改变,但对象改变属性,类属性不一定更改。

方法成员的方法类的方法既可以成员使用,又可以类使用
类有四种方法成员方法普通方法类方法静态方法
区别由对象调用,方法第一个参数默认是self,构造方法,析构方法就是类中的函数只能由类名调用使用@classmethod来标识方法,既可以通过对象名调用,又可以通过类名调用无区别用@staticmethod来标识静态方法,参数列表无任何参数,既可以通过对象名调用,又可以通过类名调用无区别,

类方法

格式如下:

python
class 类名:
    @classmethod
    def 类方法名(cls):
        方法体

例子

python
class demo:
    def inst(self):
        print("inst method")
    @classmethod
    def class1(cls):
        print("class method")
a=demo()     #构建对象
a.inst()      #对象名调用
a.class1()
demo.class1()     #类名调用

静态方法

静,态方法参数列表无任何参数,所以无法访问成员变量 结构:

python
class 类名:
    @staticmethod
    def 静态方法名(cls):
        方法体

例子

python
class demo:
    def inst(self):      #成员方法
        print("inst method")
    @staticmethod    #静态方法
    def class1():
        print("class method")

a=demo()
a.inst()
a.class1()    #对象名调用
demo.class1()      #类名调用

类的继承

例子:

python
class anim:    #构建父类
    def __init__(self):  
         print("父类anim")
    def inst(self):
         print("父类anim成员方法")
class cat(anim):    #构建子类
    def __init__(self):
        print("构建子类cat")
    def run(self):
         print("子类cat成员方法")
a=cat()     #给子类定义对象
a.run()      #子类方法
a.inst()      #父类方法

方法重写:

python
class anim:
    def __init__(self):
        print("父类anim")
    def inst(self):
        print("父类anim成员方法")
    def run(self):
        print("父类run方法")
class cat(anim):
    def __init__(self):
        print("构建子类cat")
    def run(self):    #定义run方法准备重写
        super().run()     #使用super()调用父类方法进行重写
        print("子类重写run方法")
b=anim()       #构造父类类对象
b.run()
a=cat()       #构造子类对象
a.run()
a.inst()

类的多态:

由于参数类型不或参数个数不同,导致执行效果各异的现象就是多态

python
示例: 
class anim:
    def __init__(self,aname):
        self.name=aname
    def enjoy(self):
        print("nanana")
class cat(anim):
    def enjoy(self):
        print(self.name," miaomiao")
class dog(anim):
    def enjoy(self):
        print(self.name," wangwnang")
class per:
    def __init__(self,id,name):
        self.name=name
        self.id=id
    def drive(self,ani):
        ani.enjoy()
a=cat("mike")
b=dog("dahuang")
c=per("zhang3",9)
c.drive(a)
c.drive(b)
结果:
mike  miaomiao
dahuang wangwnang