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(‘2‘)
<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)

①验证上限方法

 1 num1 = 0
 2 num2 = 0
 3 while True:
 4     if num1 is not num2:
 5         print "%d is the upper limit!" % (num1-1)
 6         break
 7     num1 += 1
 8     num2 += 1
 9
10 输出:256 is the upper limit!
11
12         

②验证下限方法

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

时间: 2024-10-18 01:38:11

python核心编程-第四章-个人笔记的相关文章

python核心编程-第三章-个人笔记

1.语句和语法 (1)反斜杠"\"表示语句继续.python良好的编程习惯是一行最后不超过80个字符,一行字符过多时便须用到反斜杠换行继续该语句. PS:在使用小括号.中括号.大括号时可以跨行书写,无须反斜杠:三引号的字符串也可以跨行书写 (2)分号";"可以在同一行写多个语句.虽然python支持这么做,但为了代码可读性,一般不建议这么做 2.变量赋值 (1) python中,对象是引用传递的,而不是直接将值赋给对象  如: >>> a = 12

python核心编程第四章 python对象

4–1. Python 对象.与所有 Python 对象有关的三个属性是什么?请简单的描述一下.  身份,类型和值. 4–2. 类型.不可更改(immutable)指的是什么?Python 的哪些类型是可更改的 (mutable),哪些不是? 如果对象支持更新操作,那么它的值就可以改变,否则它的值也是只读的.对象的值是否 可以更改被称为对象的可改变性(mutability) 数字 Scalar 不可更改 直接访问 字符串 Scalar 不可更改 顺序访问 列表 Container 可更改 顺序访

python核心编程-第五章-个人笔记

1.用del删除对对象的引用 >>> a = 123 >>> a 123 >>> del a >>> a Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError : name 'a' is not defined 2.整型 (1)布尔型    该类型取值范围只要两个值:布尔值True 和

python核心编程-第四章-习题

1.身份.类型.值.其中,身份是每个对象的标识,与内存地址密切相关,可用id()返回:类型决定了对象可以保存什么类型的值,用type()函数.isinstance()函数可以得到对象的类型:值就是对象表示的数据 2.不可更改指对象创建以后值不可以更新.python中,列表.字典是可更改的,数字.字符串.元组是不可更改的 3.类型 字符串.列表.元组是按照顺序访问的,也就是具有切片的特性. 映射类型(字典)类似序列的索引,但它的索引不是按顺序的数字来切片,而是通过一个唯一的键或者说关键字来访问,容

[python核心编程] 第五章练习题

第五章 数字 5-2. 操作符,写一个函数,计算并返回两个数的乘积“整理的时候才看到我把题目看成两个数的和了” 5-3. 标准类型操作符.写一段脚本,输入一个测验成绩,根据下面的标准,输出他的评分成绩(A-F) A:90~100 B:80~89 C:70~79 D:60~69 F:<60 5-4. 取余.判断给定年份是否是闰年.使用下面的公式. 一个闰年后就是指他可以被4整除,但不能被100整除,或者它可以被400整除. [python核心编程] 第五章练习题,布布扣,bubuko.com

Python核心编程第五章习题

Python核心编程-第五章-习题 5.1  整形,讲讲Python普通整形与长整形的区别? Python的标准整形类型是最通用的数字类型.在大多数32位机器上,标准整形类型的取值范围是-2**32-2**32 - 1. Python的长整型类型能表达的数值仅仅与你的机器支持的(虚拟)内存大小有关,换句话说,Python能轻松表达很大的整数. 长整型类型是标准整形类型的超集,当程序需要使用比标准整形更大的整型时,可以使用长整型类型,在整型值后面添加L,表示这个为长整型,3.0版本已经统一称为为整

python核心编程--第六章 6.22 练习

6.22 练习 初学python,如果代码有问题,欢迎指正. #!/usr/bin/python # -*- coding: utf-8 -*- #6–1. 字符串.string 模块中是否有一种字符串方法或者函数 #可以帮我鉴定一下一个字符串是否是另一个大字符串的一部分? import string ss = "I'm chinese." substr = 'chinese' index = ss.find(substr) if index == -1: print("No

python核心编程--第其章 7.12 练习

7.12 练习 #!/usr/bin/python # -*- coding: utf-8 -*- # 7–5. userpw2.py. 下面的问题和例题7.1 中管理名字-密码的键值对数据的程序有关. # (a) 修改那个脚本,使它能记录用户上次的登录日期和时间(用time 模块), # 并与用户密码一起保存起来.程序的界面有要求用户输入用户名和密码的提示. # 无论户名是否成功登录,都应有提示,在户名成功登录后,应更新相应用户的上次 # 登录时间戳.如果本次登录与上次登录在时间上相差不超过4

Python核心编程_第二章课后习题

以下是自己在学习Python核心编程时,做的课后练习题.现在把它们贴出来,以记录自己的学习过程.小弟是机械出身,很多练习题目写的很是机械.虽然写出来的脚本都能满足题目要求,但效率可能不是最好的,所以,小弟还是厚着脸皮把它们给贴出来,一来可以让高手指点,二来可以与我一样在学习Python的兄弟共同学习. 以下的程序均以题目标号命名,如2-3这个题目,程序名就为2_3.py. 习题2_3.py #!/usr/bin/env python A = 10 B = 4 print "A plus B is