python核心编程-第四章-个人笔记
1.所有的python对象都拥有三个特性:
①身份:每个对象都有唯一的身份标识自己,可用内建函数id()来得到。基本不会用到,不用太关心
>>> a = 2
>>> id(2)
39411616L
>>> id(a)
39411616L
这个例子也同时说明python中赋值其实是"引用"
②类型:对象的类型决定可以保存什么类型的值。用内建函数type()可以得到对象的类型。
>>> type(2)
<type 'int'>
>>> type(2.0)
<type 'float'>
>>> type(111111111111111111111111)
<type 'long'>
>>> type('')
<type 'str'>
>>> type(False)
<type 'bool'>
>>> type(3.14j)
<type 'complex')
>>> type(type)
<type 'type'>
③值:对象表示的数据
除了值,对象的其他两个特性都是只读的
2.标准类型
python标准类型也称为“基本数据类型”,因为这些类型是python内建的基本数据类型。主要包括:
①Integer 'int' 整型
②Long integer 'long' 长整型
③Floating point real number 'float' 浮点型
④Complex number 'complex' 复数型
⑤Boolean 'bool' 布尔型
⑥String 'str' 字符串
⑦List 'list' 列表
⑧Tuple 'tuple' 元组
⑨Dictionary 'dict' 字典
3.其他内建类型
(1)其他数据类型包括:
类型
Null对象(None)
文件
集合/固定集合
函数/方法
模块
类
(2)类型对象
①type()函数的输出实际上是一个类型对象,是一个输出了字符串的类型对象
②所有类型对象的类型都是type。
(3)Null对象
Null对象是python中一个特殊的类型,亦称为NoneType。它只有一个值,就是None,不支持任何运算也没有任何内建方法。
(4)笔记
4.标准类型操作符
(1)对象值的比较
比较操作符用来判断同类型对象是否相等,所以内建类型均支持比较运算,比较运算返回布尔值True或者False。
实际进行的比较运算因类型而异,比如数字类型根据数值的大小和符号比较,字符串按照字符序列值进行比较,等等。
如图例
多个比较操作符可以在同一行进行,顺序为从左到右
附:标准类型值比较操作符
(2)对象身份比较
标准类型值比较操作是针对对象的值进行的,比较的是对象的数值而不是对象本身。python同样支持对对象本身的比较,作为对对象值比较的补充。
标准类型对象身份比较操作符:
具体操作:
在上面例子中,在对a、b分别进行列表赋值时,python分别为a b 创建了不同的对象,即使两者的值相等,a b本身仍不相等;
然而在对a b进行整型赋值时,分别赋值的结果却是a b本身也相等
这种情况的原因是,python会缓存简单的整型,所以a b会指向同一个对象,'a is b' 才会返回True。在python 2.7中,缓存的简单整型范围是(-5,256)
①验证上限方法
num1 = 0
num2 = 0
while True:
if num1 is not num2:
print "%d is the upper limit!" % (num1-1)
break
num1 += 1
num2 += 1 输出:256 is the upper limit!
②验证下限方法
num1 = 0
num2 = 0
while True:
if num1 is not num2:
print "%d is the lower limit!" % (num1+1)
break
num1 += -1
num2 += -1 输出: -5 is the lower limit!
(3)布尔类型
布尔逻辑操作符包括not、and、or
其中,not优先级最高,and次之,or最低
5.标准类型内建函数
标准类型内建函数包括:
(1)type()函数
type()接受一个对象作为参数,返回参数的类型,返回值是一个类型对象
(2)cmp()
内建函数cmp()用于比较两个对象obj1和obj2:若obj1小于obj2,则返回一个负整型;若obj1大于obj2,则返回一个正整型;若obj1等于obj2则返回0。
(3) str() repr() ``
三者都可以方便的以字符串的方式获取对象的内容、类型、数值属性等信息。
str()函数得到的字符串可读性好,返回结果通常无法用eval()取值,但很适合用于print语句输出
repr()和``运算在特性和功能上都非常相似,他们返回一个对象的"官方"字符串表示,绝大多数情况下可以通过求值运算eval()重新取得该对象。
总之,repr()输出对python较为友好,str()输出对用户更为友好,很多情况下三者的输出是完全一样的
(4) type() isinstance()
isinstance()是python的一个内建函数,语法是isinstance(object,classinfo)。第一个参数是对象,第二个参数是类型或类型组成的元组,返回的值是布尔型。若对象的类型与第二个参数的类型相同或者对象的类型与作为元组给出的第二个参数中的某一个类型相同,则返回True。否则,返回False
python核心编程-第四章-个人笔记的更多相关文章
- python核心编程-第三章-个人笔记
1.语句和语法 (1)反斜杠"\"表示语句继续.python良好的编程习惯是一行最后不超过80个字符,一行字符过多时便须用到反斜杠换行继续该语句. PS:在使用小括号.中括号.大括 ...
- 【2】python核心编程 第四章-python对象
1.python对象 所有的Python 对像都拥有三个特性:身份,类型和值. 身份: 每一个对象都有一个唯一的身份标识自己,任何对象的身份可以使用内建函数id()来得到. 这个值可以被认为是该对象的 ...
- python核心编程-第五章-个人笔记
1.用del删除对对象的引用 >>> a = 123 >>> a 123 >>> del a >>> a Traceback ( ...
- python核心编程-第四章-习题
1.身份.类型.值.其中,身份是每个对象的标识,与内存地址密切相关,可用id()返回:类型决定了对象可以保存什么类型的值,用type()函数.isinstance()函数可以得到对象的类型:值就是对象 ...
- 【7】python核心编程 第十一章-函数和函数式编程
1.*函数(与方法)装饰器 装饰器背后的主要动机源自python 面向对象编程.装饰器是在函数调用之上的修饰.这些修饰 仅是当声明一个函数或者方法的时候,才会应用的额外调用. 装饰器的语法以@开头,接 ...
- 【1】python核心编程 第三章
1.继续( \ ) 有两种例外情况一个语句不使用反斜线也可以跨行.在使用闭合操作符时,单一语句可以跨多行,例如:在含有小括号.中括号.花括号时可以多行书写.另外就是三引号包括下的字符串也可以跨行书写 ...
- python核心编程-第三章-习题
1.这是python的语言特性,python先创建对象,在给变量赋值时,不需要定义变量的名称和类型,它实际是用变量引用对象.变量类型在给变量赋值时自动声明 2.原因类似变量无须声明类型 3.pytho ...
- Windows核心编程 第四章 进程(下)
4.3 终止进程的运行 若要终止进程的运行,可以使用下面四种方法: • 主线程的进入点函数返回(最好使用这个方法) . • 进程中的一个线程调用E x i t P r o c e s s函数(应该避免 ...
- Windows核心编程 第四章 进程(上)
第4章 进 程 本章介绍系统如何管理所有正在运行的应用程序.首先讲述什么是进程,以及系统如何创建进程内核对象,以便管理每个进程.然后将说明如何使用相关的内核对象来对进程进行操作.接着,要介绍进 ...
随机推荐
- C语言做一个通讯录程序(在console里面运行)
最近复习C语言的时候看到网上有个C语言通讯录的小项目,于是看了下那个程序实现的大概的功能,然后自己也跟着做了个.代码还算简洁,贴上来给有需要的人. // // main.m // AdressBook ...
- windows对象的属性和方法
window对象是所有客户端javascript特性和API的主要接入点.它表示web浏览器的一个窗口或窗体,并且可以用标志符window来引用它. 一. windows对象的属性 1. locati ...
- JVM启动参数手册——JVM之八
jdk1.4.2 JVM官方地址:http://java.sun.com/j2se/1.4.2/docs/guide/vm/index.html 标准和非标注参数(for windows):http: ...
- Linux下ld搜索问题:ld: cannot find -l"XX"
ld命令行工具(链接库的一个工具)的搜索路径是-L指定的,库名是-l指定的. 比如: ld -L[dir] -l[mylib] --verbose 以上我用可视化的方法显示ld的搜索路径,其结果是居然 ...
- logstash nginx 访问日志
log_format main '$remote_addr [$time_local] "$request" ' '$request_body $status $body_byte ...
- Jquery时间验证和转换工具
var TimeObjectUtil; /** * @title 时间工具类 * @note 本类一律违规验证返回false * @author {boonyachengdu@gmail.com} * ...
- UESTC_Ferris Wheel String 2015 UESTC Training for Search Algorithm & String<Problem L>
L - Ferris Wheel String Time Limit: 3000/1000MS (Java/Others) Memory Limit: 43000/43000KB (Java/ ...
- [英国][记录][战争中的世界:二战全史(26集)][BD-MKV/58G][中英双字][经典收藏]
[英国][记录][战争中的世界:二战全史(26集)][BD-MKV/58G][中英双字][经典收藏] 原片名:The World at War 中文名:战争中的世界 导 演:Ted Childs, ...
- 【极客学院出品】Cocos2d-X系列课程之九-BOX2D物理引擎
Cocos2d-x 是时下最热门的手游引擎,在国内和国外手机游戏开发使用的份额各自是70%和25%,在App Store的top10中,有7个是用它开发的. 本节课程为Cocos2d-x系列课程之九, ...
- AS3聊天单行输入框图文混排完美实现
几年前刚毕业.第一个游戏模块做的就是聊天.到如今.几个游戏写过几次聊天模块. 之前在4399做的<幻龙骑士>(又名<神骑士>),还有上周六刚上线的<疯狂的子弹>, ...