6737浏览
查看: 6737|回复: 0

[入门教程] N+频道丨解析列表、元组、字符串

[复制链接]
本帖最后由 Nplus实验室 于 2019-12-5 10:41 编辑

小小掌控,无限智造。大家好,这是N+频道,我是播报员小马。
(诶,你不是上次那小何吗,怎么换马甲了。)

这个嘛,很久以前给学生上课的时候,有个学生很皮,被我暴揍一顿(脑海里)后
我: “你真的皮得像匹野马一样”。
学生:“我是马,你是我老师,那你就是马老师咯,哈哈哈。”
于是马老师这个名字就传开了……

言归正传,前段时间分享了百灵鸽丨随身MP3(上)后,不少老师对我在文中提到的列表、字典的使用方法不太了解。本帖就根据我的理解,结合mPython里的模块,针对列表元组字符串(文本)这三种数据类型,发表一下拙见,其中不当之处,还需要大家指出改正。(多图预警)


一、列表
列表(list)是python语言中的一种数据类型。可能不少老师接触过C语言,但没接触过python,其实列表与C语言中的数组有些类似。
打个简单的比喻,列表其实就像我们的书包,我们可以往里面放书本、笔袋、水杯,还可以往里面再放一个袋子。列表里面即可以放整数、浮点数、字符串,甚至是另一个列表。就像叮当猫的百宝袋一样,Python的列表真的非常强大。
1.1创建列表

我们想使用列表,首先要创建它。在mPython里面有很多种穿件列表的方法,它们该怎么用呢?
N+频道丨解析列表、元组、字符串图1
如果你暂时还想不到这个列表要装什么,可以先创建一个空列表:
N+频道丨解析列表、元组、字符串图2
如果你已经定义了几个变量,想把这几个变量装进列表里,可以这样做:
N+频道丨解析列表、元组、字符串图3
如果你已经提前想好了要存放的数据,也可以不经过变量,直接放进列表里:
N+频道丨解析列表、元组、字符串图4
或者:
N+频道丨解析列表、元组、字符串图5
这两者的代码都是一样的:
N+频道丨解析列表、元组、字符串图6
大家可以观察到,'掌控板','百灵鸽',100被一对[ ](中括号)括起来了,[ ]就是列表的标志性符号,'掌控板','百灵鸽',100被称为列表的元素,列表中的每个元素用“,”隔开。
注意:编写代码的话,所有的符号都要英文输入法下的符号,中文符号python不认识。
1.2向列表添加元素

列表相当灵活,所以它的内容不可能总是固定的,在mPython里面添加元素的方法有三种:
N+频道丨解析列表、元组、字符串图7
末尾添加项:

顾名思义,就是在列表的最后一位,添加一个新的元素:
N+频道丨解析列表、元组、字符串图8
“小马,一次只加一个,我要加多个的话,行不行啊?”
这个嘛,添加项后面只有一个空格,挤不进去噢。
“那我把多个元素,组成一个新列表,不就能塞进去了嘛。”

好像是这么个道理,我们一起试一下。
N+频道丨解析列表、元组、字符串图9
可以观察到,list2虽然加入到了list1里面,却是以整个列表的身份加入的,这不符合我们的预期。此路不同,我们换一条路。
追加列表:

在列表的末尾,接上另一个列表,两个列表合二为一,就像拼接火车车厢一样:
N+频道丨解析列表、元组、字符串图10
这样,我们就能实现一次性加入多个元素了。.
“小马,怎么总是在最后添加啊,在其他位置添加不行吗?”
是可以的,我准备讲了,请不要抢我台词。
插入元素

在指定位置插入元素:
N+频道丨解析列表、元组、字符串图11
可以观察到,list2整个列表插入到list1的最前面了。

列表是一个有序的数据类型,和掌控板的RGB灯序号一样,是从0开始的。如果我们是想插入在1,2之间的话,应该改为第1项。因为list2插入后取代了2原来的位置,成为了第1项:
N+频道丨解析列表、元组、字符串图12
1.3从列表中获取元素

可以通过元素的索引值(序号),从列表中获取单个元素:
N+频道丨解析列表、元组、字符串图13
“小马……”
好,我知道你又想一次取出多个了,我讲

列表确实支持一次取出多个元素,但这几个元素会组合形成一个新的列表,这个操作叫做切片
N+频道丨解析列表、元组、字符串图14
1.4修改列表中的元素:
N+频道丨解析列表、元组、字符串图15
1.5从列表中删除元素

列表删除元素在mPython在里也有三个模块:
N+频道丨解析列表、元组、字符串图16
清空:

把整个列表的所有元素都清楚,留下一个空列表:
N+频道丨解析列表、元组、字符串图17
移除某一项:

移除指定位置上的元素:(注意不是索引值)
N+频道丨解析列表、元组、字符串图18
其实代码里都是用索引值从0开始的,这个模块估计为了使用方便,封装的时候自动-1了,我习惯代码的用起来就怪怪的。
N+频道丨解析列表、元组、字符串图19
取出并移除:这个模块在移除的基础上,还能把移除的数据再次使用,观察模块的形状应该也能猜到用途:
N+频道丨解析列表、元组、字符串图20
这个模块在制作抽奖机的时候可以用到:抽出一个礼品并显示。以上就是列表的基础用法了,剩下的模块大家可以自己动手尝试一下,用一下就知道是怎么回事了。
补充一点:
N+频道丨解析列表、元组、字符串图21
这个模块得到的虽是一个列表,但严格意义上是属于字符串的方法。所以我放到后面去讲。

二、元组
元组可以理解为上了枷锁的列表,也就是不能添加、修改、删除。能看不能动,用于保存一些重要的、不能被修改的数据。N+频道丨解析列表、元组、字符串图22大家观察一下,元组的标志性符号是什么?
相信很多人会回答:小括号
其实并不是,我通过pythonIDE中的type()函数(作用是查询数据类型)为大家演示下。
N+频道丨解析列表、元组、字符串图23
(1)  是一个被python视为一个整数,(1,2)才被python视为一个元组,两者的区别在哪里?
“元组里面有2个元素,难道一个元素就不能形成一个元组吗?”
元素多少并不是关键,图形化积木里也是一个元素,仔细观察一下,单个元素的元组里面多了什么?
N+频道丨解析列表、元组、字符串图24
没错,其实就是这个不起眼的“,”在起作用,我们再回到pythonIDE测试一下:
N+频道丨解析列表、元组、字符串图25
所以元组的标志性符号是“,”!

三、 字符串
字符串与元组一样,也是能看不能动的,字符串是以每一个字符为一个元素,引号内的所有字符(包括符号)都视为该字符串的元素。
字符串的标志性符号是引号,单引号、双引号都可以,但是要成对使用噢,棒打鸳鸯可不好。
3.1字符串分隔
这个模块的作用是,以特定的分隔符,去分隔整个字符串。我举个栗子:“1234,2345,3456,4567”,这个字符串可以看成是4段组成的,每段由”,”连接。分隔之后就会形成:N+频道丨解析列表、元组、字符串图26
可以观察到,分隔后,并不破坏原来的字符串。
3.2字符串格式化
这里的格式化并不是与内存一样,不是清空的意思。而是化作某种特定的格式。我举个栗子:袁老师要给家长们单独发送开学通知:XXX家长您好!……每条通知只是前面的学生名字不同,后面内容是完全相同的,这时候用格式化就会非常方便:
N+频道丨解析列表、元组、字符串图27
格式化后,“张三”会代替%s,形成字符串“张三家长!”
N+频道丨解析列表、元组、字符串图28
格式化后,“张三”会代替{},形成字符串“张三家长!”
字符串的格式化可能有点难理解,大家多用用,多体验下。

聪明的你可以已经发现,我把列表、元组、字符串放在一块儿讲是有道理的,因为他们有很多共同点:      
都可以通过索引得到每一个元素      
默认索引值总是从0开始(灵活的Python还支持负数索引)      
可以通过切片的方法得到一个范围内的元素的集合。      
所以我们把它们统称为:序列

好了,以上就是本帖要讲的全部内容了,非常感谢你看到这里,如果觉得帖子写的还不错,对你有帮助的话,感谢点个赞支持一下,可以的话点个关注就更好啦。

N+频道,我是小马,我们下期再见。

N+频道丨解析列表、元组、字符串.pdf

613.1 KB, 下载次数: 2036

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail