python的内置对象类型以及支持的运算

python对象的相关术语

python程序中保存的所有数据都是围绕对象这个概念展开的

程序中存储的所有数据都是对象

每个对象都有一个身份、一个类型和一个

  • 例如:school=“MaGe Linux” 会以“MaGe Linux”创建一个字符串对象,其身份是指向它在内存中所处位置的指针(其在内存中的地址),而school就是引用这个具体位置的名称

对象的类型也称对象的类别,用于描述对象的内部表示及它支持的方法和操作

创建特定类型的对象时,有时也将该对象称为该类型的实例

实例被创建后,其身份和类型就不可改变

  • 如对象值是可修改的,则称为可变对象
  • 如果对象的值不可修改,则成为不可变对象

如果某个对象包含对其它对象的引用,则将其称为容器

大多数对象都拥有大量特有的数据类型和方法

  • 属性:与对象相关的值
  • 方法:被调用时将在对象上执行某些操作的函数
  • 使用点(.)运算符可以访问属性和方法

建议使用内置类型

身份就是对象在内存中的存储位置(即id)

任何对象都是由所谓类实例化而来

class:通常在自定义类型时使用

type:内置变量

instance:实例化

类:数据和方法

数据:变量

方法:函数

类:实例化成对象

CA:类

IA:实例化对象

IB:实例化对象

IA和IB中的数据都是从类继承过来的,如果直接继承,IA和IB的数据就一样了?

因此数据并不从类中来,而是在实例化对象时,从其他方式赋值得来的。


对象的身份和类型

python内置函数id()可返回一个对象的身份,即该对 象在内存中的位置

  • is运算符用于比较两个对象的身份
  • type()用于返回一个对象的类型
  • 对象类型本身也是一个对象,称为对象的类
  • 该对象的定义是唯一的,且对于某类型的所有实例都是相同的
  • 所有类型对象都有一个指定的名称,可用于执行类型检查,如list、dict

两个对象的比较:

1.值比较:对象中的数据是否相同

2.身份比较:两个变量名引用的是否为同一对象

3.类型比较:两个对象的类型是否相同


python核心数据类型

核心数据类型

数字:int,long(长整型),float,complex,bool

字符:str,unicode

列表:list

字典:dict

元组:tuple

文件:file

其他类型:集合(set),冻结(不可变)集合frozenset,类类型,空(None)

其他文件类工具:管道(pipes),先进先出管道(fifos),sockets

python中处理的每一样东西都是对象,一旦创建了对象,就完成了和某些操作的集合的绑定,它所支持的操作也就确定下来了。

python属于动态类型的语言,但对于变量类型本身来讲,python属于强类型的,只要类型不匹配,就返回异常。

类型转换:

str(),repr()和format()     //类型的显式转换,用于实现将非字符串转换成字符串

at():          将非字符型数据转换为字符

str():         做对象序列化的结果,强制转换

repr():      做精确转换,不转换元对象

format():  利用自己指定的特定格式,将其转换成字符串

int():        转换成整数

float():     转换成浮点型

list(s):           将字串s转换成列表

tuple(s):        将字串s转换成元组

set(s):           将字串s转换为集合

frozenset(s): 将字串s转换为不可变集合

dict(d):          根据指定的键值对创建字典,其中d必须是(key,value)的元组序列,字典本身也没有顺序

list       将字串s转换成列表

tuple    将字串s转换成元组

set     将字串s转换为集合

dict    根据指定的键值对创建字典,其中 d 必须是(key,value)的元组序列,字典本身也没有顺序

chr(x): 将整数转换为字符

ord(x): 将字符转换为整数值

hex(x):将整数转换成16进制字符

bin(x): 将整数转换成2进制字符

oct(x): 将整数转换成8进制字符

chr(x)

hex(x)

bin(x)


数字类型:

python的数字字面量类型:布尔型,整数,浮点型,负数(字面量:看到什么就是什么)

布尔型(首字母大写)

  • True:1
  • False:0

数字类型为不可变类型

math模块可以实现算术的高级运算


数字类型操作

  • python使用5种数字类型:布尔型、整型、长整形、浮点型和复数,所有数字类型均为不可变类型
  • 数字操作 

  • 比较运算

             


序列类型

  • 序列概念

  • 列表和元组这两种数据类型是最常被用到的序列,python内建序列有六种,除了刚刚有说过的两种类型之外,还有字符串、Unicode字符串、buffer对象和最后一种xrange对象,这几种都是不常使用的。
  • 序列表示索引为非负整数的有序对象集合,包括字符串、列表和元组
  • 字符串是字符的
  • 列表和元组是任意python对象的序列
  • 字符和元组属于不可变序列,而列表则支持插入、删除和替换元素
  • 所有序列都支持迭代

序列类型:

  • 字符类型

字符串字面量:把文本放入单引号、双引号或三引号中:语义没有区别、前后要一致、单双引号必须在同一行,三引号可以跨行定义

python2中字符串字面量对应于8位字符或面向字节的数据,因此它们无法完全支持国际字符集(unicode),

如果要使用unicode编码,则在字符之前使用字符u进行标识,如u“mageedu”(python3则不需要加u)

  • 文档字符串

模块、类或函数的第一条语句是一个字符的话,该字符串就成为文档字符串,可以使用__doc__属性来引用

printName.__doc__              //引用函数对象,函数对象的名称和调用函数是两码事(函数本身也是作为对象存在于内存中的)

printName().__doc__           //调用函数

():表示调用运算符,只有可调用的对象才能支持调用运算,但是可调用对象可以不调用,完全可以引用对象 

  • 运算符:

索引运算符:[i] 可以使用负数,即倒着取值

切片运算符:[i:j]       //对于切片运算,切片后的结果会生成为新对象(字符串不支持直接修改,切片的过程就是取出子串,放在内存当中,就会生成新的内存对象)

扩展切片:   [i:j:stride]


适用于所有序列的操作和方法

s[i]:   索引运算符

s[i:j]: 为切片运算符,

s[i:j:stride]:为扩展切片运算符

min(s)和max(s)只适用于能够对元素排序的序列

sum(s)只适用于数字序列


适用于可变序列的操作


适用于字符串的操作

python2提供两种字符串对象类型

  • 字节字符串:字节(8bit数据)序列
  • Unicode字符串:Unicode字符(16bit数据)序列
  • python可以使用32bit整数保存Unicode字符,但此为可选特性

capitalize  和    index

join

replace

strip      help(str.strip)//获取帮助

3、python内置类型(0529)的更多相关文章

  1. 4、python内置类型(0529)

    支持运算:索引,切片,min(), max(), len()等 支持操作:对象的自有的方法 对字符串操作的内置方法获取:str.     //敲tab键补全 获取某个内建命令的属性和方法列表:dir( ...

  2. Python内置类型性能分析

    Python内置类型性能分析 timeit模块 timeit模块可以用来测试一小段Python代码的执行速度. class timeit.Timer(stmt='pass', setup='pass' ...

  3. Python 内置类型 dict, list,线程安全吗

    近段时间发现一个 Python 连接数据库的连接是线程不安全的,结果惹得我哪哪儿都怀疑变量的多线程是否安全的问题,今天终于找到了正确答案,那就是 Python 内置类型 dict,list ,tupl ...

  4. 为什么继承 Python 内置类型会出问题?!

    本文出自"Python为什么"系列,请查看全部文章 不久前,Python猫 给大家推荐了一本书<流畅的Python>(点击可跳转阅读),那篇文章有比较多的"溢 ...

  5. Python——内置类型

    Python定义了丰富的数据类型,包括: 数值型:int, float, complex 序列:(iterable) str, unicode, tuple, list, bytearray, buf ...

  6. 易被忽略的Python内置类型

    Python中的内置类型是我们开发中最常见的,很多人都能熟练的使用它们. 然而有一些内置类型确实不那么常见的,或者说往往会被我们忽略,所以这次的主题就是带领大家重新认识这些"不同寻常&quo ...

  7. Python内置类型——set

    Python中,内置类型set和frozenset用来表示集合,我们首先查看这两个类型支持的特殊对象,从而可以理解他们的特性. >>> dir(set) ['__and__', '_ ...

  8. python内置类型详细解释

    文章编写借鉴于内置类型 - Python 3.7.3 文档,主要用于自己学习和记录 python主要内置类型包括数字.序列.映射.类.实例和异常 有些多项集类是可变的.它们用于添加.移除或重排其成员的 ...

  9. Python内置类型(4)--数值

    Python有以下三种的数值类型: 整型(integers), 浮点型(floating point numbers), 以及 复数(complex numbers).此外,布尔是整数的子类型. 数值 ...

随机推荐

  1. linux Vue+nginx+django 实现前后端分离

    示例项目 -- LuffyCity.com 的上线 具体解释,vue前端提供静态页面,且可以向后台发起get,post等restful请求 django后台提供数据支撑,返回json数据,返回给vue ...

  2. JustOj 2043: N!

    题目描述 输出N的阶乘.(注意时间限制150ms&&注意不能打表后输出,赛后我们会检查代码,如有发现,该位同学总分记0分处理) 打表的定义:在本地主机预先计算出了每个值对应的答案,并把 ...

  3. Django框架----路由系统(详细)

    Django的路由系统 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表. ...

  4. eclipse的svn插件添加代理访问svn

    1.首先找到插件配置文件 C:\Users\Administrator\AppData\Roaming\Subversion这个目录下的servers文件 打开找到 # http-proxy-host ...

  5. Web开发笔记 #08# Jackson组合多个对象的属性构成JSON(以及添加自定义属性)

    参考文档:https://github.com/FasterXML/jackson-databind 关于ObjectMapper的线程安全 截自官方文档: 组合多个对象的属性构成JSON(以及添加自 ...

  6. 【题解】Luogu P4363 [九省联考2018]一双木棋chess

    原题传送门 这道题珂以轮廓线dp解决 经过推导,我们珂以发现下一行的棋子比上一行的棋子少(或等于),而且每一行中的棋子都是从左向右依次排列(从头开始,中间没有空隙) 所以每下完一步棋,棋盘的一部分是有 ...

  7. ACM札记

    1. 逗号表达式 在“计蒜客“的ACM教程中,看到这样一段很好的代码: int n; while (scanf("%d", &n), n) { //do something ...

  8. 谈论linux同组多用户操作问题

    同组多用户,最先起到什么作用这个我也是不明白的, 然后乱搞了一堆, 下面我做个笔记帮组日后分析. 一个用户组承载多个用户, 像这样 这是我原先的思路.然后就是chenglee用户和chenglee12 ...

  9. python简说(三)字典

    一.字典 stu_info = {"name": "王志华", "age": 18, "addr": "北京& ...

  10. Eclipse中ctrl+shift+r与ctrl+shift+t的区别

    eclipse中的两个常用的快捷键可以大大提升查找文件的效率,分别是: ctrl+shift+r : open resource, 打开资源. 它可以打开当前eclipse的工作区中所有(打开的)工程 ...