对象是Python最基本的概念之一,在Python中的一切都是对象,常用的内置对象如表1.3.1.1所示。除此之外,还有大量的标准库对象和扩展库对象,标准库是Python默认安装的,但需要导入之后才能使用其中的对象,扩展库对象则需要先安装扩展库然后再导入并使用其中的对象。在Python中可以创建任意类型的变量,一般情况与对象的概念不作严格的区分。
对象类型 | 示例 | 简要说明 |
数字 | 1234,3.14,1.3e5,3 + 4j | 数字大小没有限制,且支持复数及其运算 |
字符串 | ‘swfu‘,"I love China",‘‘‘Python‘‘‘ | 字符串使用单引号、双引号、三引号作为界定符 |
列表 | [1,2],[‘a‘,‘b‘,[‘c‘,2]] | 所有元素放在一对方括号中,元素之间使用逗号分隔 |
字典 | {1:‘food,2:‘taste‘,3:‘import‘} | 所有元素放在一对大括号中,元素之间使用逗号分隔,元素形式为“键:值” |
元组 | (2,-5,6) | 所有元素放在一对圆括号中,元素之间使用逗号分隔 |
文件 | f=open(‘data.dat‘,‘rb‘) | open是Python内置函数,使用指定的模式打开文件 |
集合 | set(a,b,c),{‘a‘,‘b‘,‘c‘} | 所有元素放在一对大括号中,元素之间使用逗号分隔,元素不允许重复 |
布尔型 | True,False | |
空类型 | None | |
编程单元 |
函数(使用def定义) 类(使用class定义) |
类和函数都属于可调用对象 |
表1.3.1.1
在Python中,不需要想Java那样事先声明变量名及其类型,直接赋值即可创建各种类型的对象变量,并且变量的类型是可以改变的。例如,语句:
>>> x = 3
创建了整型变量 x , 并赋值为3
>>> x = ‘Hello World‘
创建了字符串变量 x , 并赋值为“Hello World”
>>> x = [1,2,3]
创建了列表对象 x , 并赋值为[1,2,3]。这一点同样适用于元组、字典、集合以及Python其他任意类型的对象,以及自定义类型的对象。
虽然不需要再使用之前显式地声明变量机器类型,但是Python仍属于强类型编程语言,Python解释器会根据赋值来自动推断变量类型。每种类型的对象支持的运算也不完全一样,因此在使用变量时需要程序员自己确定所进行的运算是否合适,以免出现异常或者意料之外的结果。Python还是一种动态类型语言,也就是说,变量的类型可以随时变化。如下代码块1.3.1.1所示:
1 >>> x = 3 2 >>> print(type(x)) #内置函数type用来返回变量类型 3 <class ‘int‘> 4 >>> 5 >>> x = ‘Hello World‘ 6 >>> print(type(x)) 7 <class ‘str‘> 8 >>> 9 >>> x = [1,2,3] 10 >>> print(type(x)) 11 <class ‘list‘> 12 >>> 13 >>> isinstance(3,int) #内置函数 isinstance()用来测试对象是否为指定类型的实例 14 True 15 >>> 16 >>> isinstance(‘Hello World‘,str) 17 True 18 >>>
代码块1.3.1.1
代码块1.3.1.1中首先创建了整型变量 x ,然后又分别创建了字符串和列表类型的变量 x 。当创建了煮饭吃类型的变量 x 之后,之前创建的整型变量 x 自动失效;创建列表对象 x 只有,之前创建的字符串变量 x 自动失效。可以将该模型理解为“状态机”,除非显式修改变量类型或删除变量,否则变量将一直保持之前的类型。
小提示:在Python中可以使用变量表示任意大的数字,不用担心范围的问题,但是对于浮点数的计算由于精确度的问题偶尔可能会出现略显奇葩的结果。如代码块1.3.1.2所示:
1 >>> 9999 ** 99 #这里 ** 是幂乘运算符 2 990148353526723487602263124753282625570559528895791057324326529121794837894053513464
422176826916433932586924386677766244032001623756821400432975051208820204980098735552703
841362304669970510691243800218202840374329378800694920309791954185117798434329591212159
106298699938669908067573374724331208942425544893910910073205049031656789220889560732962
926226305865706593594917896276756396848514900989999 3 >>> 4 >>> 0.3 + 0.2 #实数相加 5 0.5 6 >>> 7 >>> 0.4 - 0.1 #实数相减 8 0.30000000000000004 #这个结果很奇怪吧,我再补充一篇文章来介绍这个吧 9 >>> 10 >>> 0.4 - 0.1 == 0.3 11 False 12 >>>
代码块1.3.1.2
Python支持复数运算,如代码块1.3.1.3所示:
1 >>> x = 3 + 4j #使用 j 或 J 表示复数虚部 2 >>> y = 5 + 6j 3 >>> 4 >>> #复数之间的加、减、乘、除 5 >>> x + y 6 (8+10j) 7 >>> x - y 8 (-2-2j) 9 >>> x * y 10 (-9+38j) 11 >>> x / y 12 (0.6393442622950819+0.03278688524590165j) 13 >>> 14 >>> abs(x) #复数的模 15 5.0 16 >>> x.imag #复数的虚部 17 4.0 18 >>> x.real #复数的实部 19 3.0 20 >>> x.conjugate() #复数 x 的共轭复数 21 (3-4j) 22 >>>