这是《Python入门经典以解决计算问题为导向的Python编程实践》34-40页的笔记,简单介绍了常见的对象类型和转化函数。
对象和类型
- 一、认识对象
- 二、对象的类型
- (一)数字
- 1、整数
- 2、浮点数
- 3、复数
- (二)其他内置类型
- 1、布尔类型bool
- 2、字符串str
- 3、列表list
- 4、字典dict
- 5、集合set
- (三)非变量类型
- (四)创建新值(类型转换函数)
一、认识对象
在Python中,认为系统中的每一个“东西”都是一个对象。在Python中,“对象”有着非常特殊的意义。Python中的对象有:
- 一个标识。
- 一些属性。
- 零个或多个名称。
Python创建对象时,它接收到一个标识号。每个对象有一个ID号(可以用id()函数来查看ID),不同对象的ID是不一样的。但一个对象可以有一个或多个名字。
以下例子中可以看到a和b是不同的ID。b和c的ID是一样的,但名字不一样。
所以ID和名字不一样,这里只是对ID做个了解。
下面主要来认识对象的类型。
二、对象的类型
对象是某种类型的一个实例。例如,1、27和365都是对象,且都是int(整数)类型。3.14、6.3也是对象,但是浮点型(小数)类型。“spam”、“ham”、“fred”则是字符串类型的对象。
对象的类型将告诉Python(或程序员)两件事:
1、对象属性。例如,整数对象时没有小数点的。
2、能进行的对象操作和返回的结果。例如,可以将两个整数对象或两个浮点对象相除,但对于字符串对象,除法操作是没有意义的。
在Python中,可以用type(对象名)来查看对象的类型。
注意一点:对象的类型和变量名无关,具体是什么类型要看与变量名关联的值。一个变量的类型是可以变化的。(如下图的aInt)
(一)数字
1、整数
整数类型:int
属性和数学中的整数差不多。
可执行的运算:加+、减-、乘*、除/、还有一些其他操作
整数可以足够大,普通整型类型的取值范围是-2* *32~2**32 - 1。当程序需要使用比普通整型更大的整型时,可以使用长整型类型,在整型值后面添加L,表示这个为长整型
常使用十进制形式或其他形式的书写。例如八进制、十六进制。
在Python中012和12是有区别的,带前缀0的,代表它是八进制的表示,八进制的012相当于十进制的10。而12就是十进制的12。
注意:前缀为0的数字是八进制,前缀为0x的是十六进制。
2、浮点数
浮点数:float
相当于数学中的小数或实数。指非整数、带小数点的数字。
表示方式:
- -直接加小数点
- 用指数表示法,用“e”作为基数。例如:2.99乘以10的八次方可以记为2.99e8
可执行的运算:和整数相似。
浮点数在运算时,会得到一个近似值,接近于真实值,但并不完全准确。
如果一个浮点数加上前缀0,是没有意义的,012.3和12.3是相等的。
3、复数
复数由两部分组成:实部和虚部
形式:实部+虚部j
例如:2+3j
(二)其他内置类型
1、布尔类型bool
只有两个值:True和Flase(注意大小写,True和true是不一样的)
当布尔类型作为整数运算时,True为1,Flase为0
当布尔类型作为判断时,True为真,Flase为假
2、字符串str
字符串时集合类型,它是一种序列,把字符集合组织在一个序列中(按一定顺序)
字符串用单引号(‘ ’)或双引号( “ ”)分隔。
例如:“这是一个字符串!”、‘你好’、“X”
3、列表list
序列类型,可以保护字符、还能包含元素。
用括号[ ] 来表示,每个元素用逗号分隔
例如:[1,2,“abc”]
4、字典dict
映射类型,也是集合类型。由元素对组成,第一个元素称为键,第二个元素称为值。
键就像是电话簿中的名字索引一样,只要找到名字就能找到电话,这里可以根据键找到对应的值。
用花括号表示,一个键值对的键和值用冒号分隔,键值对之间用逗号分隔。
例如:{“Jones”:3471124,“Larson”:3472289}
5、集合set
含有不重复元素的数据集。
支持数学中的集合运算(例如交与并)。
set([1,3,5])
(三)非变量类型
在Python中,每个对象都属于某个类型。变量可以在程序中随意改变关联的对象。Python变量可以指代任何对象,且值和类型是可以随时间变化的。
运算符会根据操作数的类型而执行不同的操作。
例如“+”,如果操作数是整数或浮点数,就会将数相加。如果操作数是字符串,就会将两个字符串相连接。
匈牙利表示法:在变量名字前面加上类型作为前缀。例如intA是整型,floatB是浮点型。
(四)创建新值(类型转换函数)
构造函数是一种特殊的运算,用来产生该类型的特定对象。
每种类型都有相关联的构造函数,构造函数的名称就是类型名称(int、float、str…)
int(myVar):返回与myVar相关联的对象的整数表示
结果会得到一个int型,但myVar本身不受影响。
如果myVar相关联的数据无法转换为整数,就会报错。
float(myVar):返回与myVar对象相关联的浮点表示。
如果原来的对象不能转换为浮点数,也会报错。