python一切皆对象,所有内容都是由对象展开的,对象是由类实例化而来。
python中存储的所有数据都是对象。
每个对象都有一个身份、一个类型和一个值。
身份:eg:school=“beida” 会以 “beida”创建一个字符串对象,其身份是其在内存中的地址,id(school)可查看,而school就是引用这个具体位置的名称
类型:对象的类别,用于描述对象的内部表示及它支持的方法和操作。
创建特定类型的对象时,有时也将该对象称之为该类型的实例。
实例被创建后,其身份和类型就不可改变。
如果对象值是可以修改的,则成为可变对象--列表、字典
如果对象值是不可以修改的,则称之为不可变对象。--字符串、数值
如果某个对象包含对其他对象的引用,则称之为容器。
大多数对象都拥有大量的特定属性和方法
属性:与对象相关的值
方法:被调用时将在对象上执行某些函数的操作,使用()运算符
使用(.)运算符可以访问属性和对象
类:数据和方法
一般来讲,方法是公共的,数据是私有的
对象的身份和类型
python内置函数id可返回一个对象的身份,即该对象在内存中的位置
is运算符可以比较两个对象的身份。
type()用于返回一个对象的类型。
对象类型本身是一个对象,称之为对象的类。该对象的定义是唯一的,切对于某类型的所有实例都是相同的。所有类型对象都有一个指定的名称,可用于执行类型检查,如list,dict
两个对象比较
1.值比较:对象中的数据是否想用
2.身份比较:两个变量引用是否为同一变量
3.类型比较:两个对象的类型是否相同。
eg: num1=5
num2=5
值比较:num1==num2
身份比较:num1 is num2
类型比较:type(num1) is type(num2)
核心数据类型:
数字:int,long,float,complex,bool
字符:str,unicode
列表:list
字典:dict
元组:tuple
文件:file
其他类型:类类型,集合,None,frozenset
其它文件文件类工具:pipes,fifes,sockets
python属于动态强类型语言
类型转换
str(),repr()讲非字符串转换为字符串
int():转换为整数
float():转换为浮点数
list():将字符串转换为列表
tuple():将字符串转换为元组
set():讲字符串转换为集合
dict(d):使用key,value元组序列转换字典,根据键值对创建字典eg:l1=[("a",1),("b",2),("c",3)] d1=dict(l1)==>d1:{‘a’:1,'b':2,‘c’:3}
frozenset(s):讲字符串s转换为不可变集合
chr(s):将(0~255)的一个整数转换为对应的字符串
ord(s):将字符转换成整数值
hex(s):将整数转换为16进制字符串
数字类型--不可变类型
python的数字字面量:布尔型,整数,浮点数,复数;
布尔型:True:1;False:0
序列类型
序列表示索引为非负整数的有序对象集合,包括字符串、列表、元组
字符串是字符的
列表和元组是任意Python对象的序列
字符和元组属于不可变对象,而列表支持插入、删除、替换元素
所有序列都支持迭代
字符类型:
字符串字面量:把文本放入单引号,双引号,三引号,前后符号保持一致。三者并无区别,只是三引号可以多行,三引号可以三个单引号或者双引号。
如果要使用unicode格式,则在字符串之前使用字符u进行标识,如u“lizhencong”(python2),python3则不需要
###我定义了一个函数printName(),printName()表示调用函数,printName表示引用函数对象
文档字符串:模块,类或者函数的第一条语句为字符串,该字符串成为文档字符串,可以使用__doc__属性引用。
字符串的操作:
适用于字符串的运算
s[i]为索引运算
s[i:j]为切片运算,i显示,j不显示,一共显示j-i个数。
扩展切片[i:j:step]:切片后的结果会生成一个新的对象,字符串不支持直接修改,所以取出子字符串占用内存,生成新的对象
正索引的绝对值+副索引的绝对值=字符串的个数
min(s)和max(s)只适用于对元素排序的序列,相应的取最大值和最小值
sum(s):只适用于数字序列
适用于字符串的操作
a.captitalise():首字母大写
a.index():找到某个字符串首次出现的位置
a.join(t):将a作为分隔符连接序列t
a.replace():字符串替换
a.split():字符串划分,返回一个序列
a.strip():字符串修剪
浙公网安备 33010602011771号