【第7节】零基础新手的Python入门实战宝典(五) —— 最基础的表达(数据类型 · 下)

如果你之前看过其他教程,但是发现云里雾里复杂的让你头晕眼花的话,没错,看这里,本系列Python教程专为啥都不会的新手用户打造,放宽心,大胆看,我就是说说书,你就当听听故事,轻松愉快走进编程的大门,“程序设计”不再神秘也不再遥不可及。只要你会最基本的电脑操作(装装软件打打字),读过那么几天书,汉字都认识,英文会那么一点点就够了,包学包会!Let’s go!

【本节目录】


Python中最常见的数据类型有5种,上一节讲了两种简单的数据类型:数字字符串,这一节讲剩下的3种稍微高级一些的数据类型。不用担心,这3种高级一些的数据类型,其实也只是之前那两种简单的数据类型的花式组合而已。

1. 高级数据类型

1.1 列表(list)

Python中有个叫list的数据类型,中文名字叫列表。顾名思义,就是一个队列。
比方说有4个同学排成了一队,队伍中的第一个同学是李凯,第二个同学是孙甜甜,第三个同学是郭帅,第四个同学是赵天翔。现在设想一下,你要告诉别人,这4个同学站了一队。这里面的要点有两个:第一个要点是这4个同学都是谁;第二个要点是他们排成了一队(一条线),并且有先后顺序。

如果用中文来表达的话,我们会这样说:

有4个同学站成了一队,按照顺序分别是`李凯`、`孙甜甜`、`郭帅`、`赵天翔`。

如果用Python来表达的话,我们是这样写的:

['李凯', '孙甜甜', '郭帅', '赵天翔']

这里的中括号([])表明了这是一条队列,也就是Python的列表(list)。中括号中填入了这4个同学的名字,可以看到每个名字都用单引号('')包裹了起来,所以这是4个字符串,字符串之间用逗号(,)进行了分隔。到这里,我们就把刚刚的意思,用Python语句表达了出来。其实这就是一个翻译的过程,把我们想表达的意思翻译成电脑能听懂的语言,也就是程序语言。

※在Python,所有字符串都要用引号包裹起来才可以,这在之前讲到过。

1.2 元组(tuple)

Python中还有一种数据类型,叫做tuple,中文名称叫元组。这个名称第一次听到的话会感觉很绕口,也很晦涩难懂,没关系,你知道这个东西叫这个名字就好,具体是什么意思我马上来解释。其实元组就是一个固定好了的列表,这个队伍一旦确定好了之后就不允许做任何改变。就好像同学们军训的时候站了一条队,这时候有宣传部门的工作人员来拍了张照片,以后不管这条队伍发生了什么变化,不管这条队伍后来有人离开还是有人更换,这张照片里的队列构成(队伍里每个位置的人是谁,以及这些人的站位顺序)都不会有任何改变。用站队列来比喻的话,元组就可以比喻成“照片里的队列”。

如果用中文来表达的话,我们会这样说:

有4个同学站成了一队,有人拍了张照片,照片里按顺序分别是
`李凯`、`孙甜甜`、`郭帅`、`赵天翔`。

如果用Python来表达的话,我们是这样写的:

('李凯', '孙甜甜', '郭帅', '赵天翔')

这里的小括号(())表明了这是一条“照片里的队列”,也就是Python的元组(tuple)

※是不是感觉列表元组这两个数据类型很像?但是区别也显而易见了吧?对,没错,列表里的元素可以改变,而元组中的元素,从最开始一旦生成,后续就无法进行操作和改变了,只能查看元组中的内容。

1.3 字典(dictionary)

字典是Python中非常常见并且用处很广的数据类型,他的含义如同字面意思很好理解,就跟咱们平时某个字或者某个词语不认识的话,去查阅《汉语字典》是一个性质。

假如有个成语“户限为穿”,我们不知道是什么意思,我们会去找一本成语词典,从成语词典里找到这个成语,然后查看这个成语对应的意思。通常字典里的词条解释写法都是这样的:

【户限为穿】门槛都踏破了。形容进出的人很多。

在Python中,字典的长相是这样的:

{
'士饱马腾': '军粮充足,士气旺盛。', 
'来日方长': '将来的日子还很长。表示将来会大有可为或劝人不必急于做某事。', 
'户限为穿': '门槛都踏破了。形容进出的人很多。',
'训格之言': '指可以奉为行为准则的教诲之言。'
}

上面这一段代码,因为写在一行太长了,阅读起来可能不太方便,所以分了几行来写,实际上可以连成一行,意思和性质是完全一样的,就像这样:

{'士饱马腾': '军粮充足,士气旺盛。', '来日方长': '将来的日子还很长。表示将来会大有可为或劝人不必急于做某事。', '户限为穿': '门槛都踏破了。形容进出的人很多。', '训格之言': '指可以奉为行为准则的教诲之言。'}

在上面的代码中,首尾呼应的大括号({})表明了这是一个字典字典中的元素依然是用逗号(,)进行了分隔,比如'户限为穿': '门槛都踏破了。形容进出的人很多。'就是其中的一个元素。上面这个字典中一共有4个元素,他们分别是:

上述字典中的元素
‘士饱马腾’: ‘军粮充足,士气旺盛。’
‘来日方长’:‘将来的日子还很长。表示将来会大有可为或劝人不必急于做某事。’
‘户限为穿’: ‘门槛都踏破了。形容进出的人很多。’
‘训格之言’: ‘指可以奉为行为准则的教诲之言。’

下面来解读一下元素的结构。以'户限为穿': '门槛都踏破了。形容进出的人很多。'为例,字典中的每个元素都包含三部分:第一部分,冒号(:),第二部分。第一部分的名字是key,中文称之为,第二部分的名字是value,中文称之为或者键值,冒号(:)的意思就类似于成语词典中的解释说明,冒号(:)后面的部分是对冒号(:)前面部分的释义。冒号(:)前面的key是用来做索引的。通常我们都是已经知道了key,但是我们想要查询得到的东西是value。比方说我们知道这个成语是'户限为穿',从字典中我们就能找到这个成语的意思是'门槛都踏破了。形容进出的人很多。'

好啦,上面已经把字典的每一个部分和环节都很精细的进行了讲解,同学们自己稍微捋一捋就应该很清楚了,大括号({})表明这是个字典字典中有很多元素,他们之间用逗号(,)隔开,每个元素都是类似于key: value的结构。

2. 数据类型的进阶解读

经过第1部分的讲解,是不是已经学会了这几种高级的数据类型了呢?如果学会了的话,继续往下看来看看高级的玩法吧!

其实这几种高级的数据类型可以进行更加复杂的组合。之前我们讲解列表(list)元组(tuple)字典(dictionary),内部用的都是字符串,但实际上并不限于只能使用字符串,他们可以进行互相组合和嵌套,比如说:

['李甜甜', 465, 35.7, '来日方长', '今天天气不错。', 485647.48]  # 这是个list
('李甜甜', 465, 35.7, '来日方长', '今天天气不错。', 485647.48)  # 这是个tuple
(634.45, '汽车', ['天空', 34, '孙亮'], (55.33, 1.0, '小桥流水'))  # 这是个tuple, 内部还有一个list以及一个tuple

第3行(634.45, ['天空', 34, '孙亮'], (55.33, 1.0, '小桥流水'))是不是看着有点儿晕?其实很简单的,不要担心,我们先看最外层,是个小括号(()),说明这是个元组,接下来找这一层小括号(())里的逗号(,)来分析元素,可以看到总共有4个元素,分别是634.45'汽车'['天空', 34, '孙亮'](55.33, 1.0, '小桥流水'),第一个元素是个数字,第二个元素是个字符串,第三个元素是个列表(list),第四个元素是个元组(tuple)。然后第三个元素和第四个元素中分别又包含了各自的子元素。由此类推,可以继续无限组合下去。

3. 小结

这一节的文字内容可能比较多,我尽量讲的细一些,这样便于初学者学习和理解,如果有不明白的问题,可以留言一起交流学习。其实还有一种数据类型集合(set),在这节课里暂时先不作讲解,感兴趣的同学可以自行动手查资料进行自学。学编程一定要养成自己动手查资料的好习惯,并且要亲手写代码,多动手尝试,这样你的编程才能有大的进步!

(之前停更了一段时间,本来打算过段日子有心情了再复更,后来几位同学的留言确实让我很受感动,让我感觉自己用心写的东西还是有人在关注,希望同学们能多多留言与我交流,也是我继续更新下去的动力!请多多关注我的公众号“寻找编程之光”与我交流,谢谢大家!)
公众号二维码:
【第7节】零基础新手的Python入门实战宝典(五) —— 最基础的表达(数据类型 · 下)