谢谢合位童鞋的热情捧场,经过几天的学习,大家撩起了学习Python的热潮。今天来学习Python的数据类型(或者叫对象的类型)。
Python是面向对象的语言。在Python里,数据总是以对象的形式存在,或者Python内建的对象,或者是我们创建的类。
对象是什么?
对象就是一片内存。在这片内存区域里,存放着变量的值,及与其相关的一些操作方法。Python里的一切都是对象,甚至一个数字,如99,也是一个对象。数字99支持加、减等操作。
我们先来看看Python内建对象的基本类型有哪些?
数字就是指
整数
实数
复数
可以用不同进制来表示,如0b0101表示二进制的5,0o5表示八进制的5,0x5表示十六进制的5。
以整数为例,执行a = 123时,我们来看看发生了什么事情:
在内存中创建一个整数的对象
初始化这个对象的成员变量的值为123
a指向刚创建的对象
我们打开python3.6.2的源码,Include/longintrepr.h,找到整数结构体_longobject的定义如下:
可以看出其实Python是基于C++的,由C++定义的结构体对整数类型进行了封装。至此,我们应该理解了为什么说Python的数值也是对象了吧。
字符串是指用
单引号' ... '
双引号" ... "
三引号""" ... """和''' ... '''
括起来的字符序列。
如'Bob','apple',"yellow", '''I love you!'''。
单引号里可以包括双引号,双引号里也可以包括单引号。三引号里可以包括单引号和双引号,反之不行。例如,'ab"c',"Bob's",'''ab"cBob's'''。但'ab'''c'则是非法的。
单引号、双引号、三引号中都可以转义,且效果相同。如'ab\nc',"ab\nc",'''ab\nc'''三者是等价的。
三引号中可以加换行,即可以表示多行字符串。在用print()打印时按原样输出,所以三引号通常用来输出大段的文本。如:
下次我们再慢慢介绍列表、字典、元组等其它对象类型。
对照Python3的源代码,理解为什么数字是对象。
编几个小程序,验证一下单引号、双引号、三引号的差别。