前言:
很多初学Python的同学经常问我这样的问题:学Python应该看什么书啊?我会非常自信的把之前整理的Python教程扔给他,后来收到很多反馈:你的排版太烂了,你遗漏了好多知识点,能不能加一点练习题?
经过较长时间的反思,准备整理第二版Python基础教程–菜鸟学Python,第二版会加上自己这一段时间来学习python过程中的一些感悟,走过的弯路,毕竟之前的自己还是太嫩了,会补充之前遗漏的知识点,同时会增加一些练习题和面试题,希望帮助大家轻松愉快,由浅入深的学习Python。
今天是第二篇更新–基本数据类型
前文回顾:菜鸟学Python——初识Python
/ 01 / 什么是数据类型?
数据类型在数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作。变量是用来存储值的所在处;它们有名字和数据类型。但是在Python中,变量就是变量,它没有类型,我们所说的”类型”是变量所指的内存中对象的类型。
那么变量又是啥?
如果你学过编程语言,比如C和java,可以很好的理解这个概念。如果你从来没学过编程语言,那我就通俗解释一下:
大家可以想象生活中常见的盘子是变量,而盘子的名字(青花瓷盘子)则是变量名,里面的菜就是数据。
关于Python中变量的赋值大家可以看下面的例子:
age = 24 # 整型变量
weight = 65.0 # 浮点型变量
name = "Ahab" # 字符串
Python允许你同时为多个变量赋值:
#两种方式
a = b = c = 1
a, b, c = 1, 2, "Ahab"
/ 02 / 标准数据类型
Python3 中有六个标准的数据类型:
Number(数字)
String(字符串)
List(列表)
Tuple(元组)
Set(集合)
Dictionary(字典)
Python3 的六个标准数据类型中:
不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
Number(数字)
对于数字,Python3的数字类型有int整型、float浮点数、complex复数、以及布尔值(0和1)。这里需要注意:Python3中 int,表示为长整型,没有Python2中的 Long。
a, b, c, d = 24, 7.5, True, 7+3j
那么我们该如何查看具体的数据类型呢?这里有两种方式可供我们查询:Python内置的type()函数可以用来查询变量所指的对象类型,还可以用 isinstance 来判断。
a, b, c, d = 24, 7.5, True, 7+3j
print(type(a), type(b), type(c), type(d))
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>
a = 111
isinstance(a, int)
True
isinstance 和 type()的区别在于:
- type()不会认为子类是一种父类类型。
- isinstance()会认为子类是一种父类类型。
int
简单粗暴的理解整数就是:整数就是没有小数点。比如1,-1,777。int类型在Python中是动态长度的,因为python3中int类型是长整型,理论支持无限大的数字。
Python整数写法挺多的,比如十进制,二进制,十六进制,八进制等,之间可以相互转换,具体转换自行百度。
float
浮点数就是带小数点的数字,注意浮点数只能用十进制的方式书写(我想大家应该都清楚),浮点数还包括分数(就是换种书写方式罢了)
complex
在数学中有理数和无理数统称实数,在实数之外还有一种叫复数。在python中这样表示:
7+3j
复数是由一个实数和一个虚数组合构成,表示为:x+yj
一个负数时一对有序浮点数 (x,y),其中 x 是实数部分,y 是虚数部分。
Python 语言中有关负数的概念:
1、虚数不能单独存在,它们总是和一个值为 0.0 的实数部分一起构成一个复数
2、复数由实数部分和虚数部分构成
3、表示虚数的语法:real+imagej
4、实数部分和虚数部分都是浮点数
5、虚数部分必须有后缀j或J
—-来源百度
bool
布尔值就是我们常说的逻辑,可以理解为对或者错。
注意:
在Python2中是没有布尔型,它用数字0表示False,用1 表示True。到 Python3中,把True和False定义成关键字了,但它们的值还是1和0,它们可以和数字相加。
以下的数据类型只做简单的介绍,因为后面的文章会详细介绍。
String(字符串)
Python中的字符串用单引号 ‘ 或双引号 ” 括起来,同时使用反斜杠 转义特殊字符。
List(列表)
List(列表) 是 Python 中使用最频繁的数据类型。
列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
列表是写在方括号 [] 之间、用逗号分隔开的元素列表。
Tuple(元组)
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。
Set(集合)
集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。
基本功能是进行成员关系测试和删除重复元素。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
Dictionary(字典)
字典(dictionary)是Python中另一个非常有用的内置数据类型。
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。
键(key)必须使用不可变类型。在同一个字典中,键(key)必须是唯一的。