6737| 0
|
[入门教程] N+频道丨解析列表、元组、字符串 |
本帖最后由 Nplus实验室 于 2019-12-5 10:41 编辑 小小掌控,无限智造。大家好,这是N+频道,我是播报员小马。 (诶,你不是上次那小何吗,怎么换马甲了。) 这个嘛,很久以前给学生上课的时候,有个学生很皮,被我暴揍一顿(脑海里)后 我: “你真的皮得像匹野马一样”。 学生:“我是马,你是我老师,那你就是马老师咯,哈哈哈。” 于是马老师这个名字就传开了…… 言归正传,前段时间分享了百灵鸽丨随身MP3(上)后,不少老师对我在文中提到的列表、字典的使用方法不太了解。本帖就根据我的理解,结合mPython里的模块,针对列表、元组、字符串(文本)这三种数据类型,发表一下拙见,其中不当之处,还需要大家指出改正。(多图预警) 一、列表 列表(list)是python语言中的一种数据类型。可能不少老师接触过C语言,但没接触过python,其实列表与C语言中的数组有些类似。 打个简单的比喻,列表其实就像我们的书包,我们可以往里面放书本、笔袋、水杯,还可以往里面再放一个袋子。列表里面即可以放整数、浮点数、字符串,甚至是另一个列表。就像叮当猫的百宝袋一样,Python的列表真的非常强大。 1.1创建列表 我们想使用列表,首先要创建它。在mPython里面有很多种穿件列表的方法,它们该怎么用呢? 如果你暂时还想不到这个列表要装什么,可以先创建一个空列表: 如果你已经定义了几个变量,想把这几个变量装进列表里,可以这样做: 如果你已经提前想好了要存放的数据,也可以不经过变量,直接放进列表里: 或者: 这两者的代码都是一样的: 大家可以观察到,'掌控板','百灵鸽',100被一对[ ](中括号)括起来了,[ ]就是列表的标志性符号,'掌控板','百灵鸽',100被称为列表的元素,列表中的每个元素用“,”隔开。 注意:编写代码的话,所有的符号都要英文输入法下的符号,中文符号python不认识。 1.2向列表添加元素 列表相当灵活,所以它的内容不可能总是固定的,在mPython里面添加元素的方法有三种: 末尾添加项: 顾名思义,就是在列表的最后一位,添加一个新的元素: “小马,一次只加一个,我要加多个的话,行不行啊?” 这个嘛,添加项后面只有一个空格,挤不进去噢。 “那我把多个元素,组成一个新列表,不就能塞进去了嘛。” 好像是这么个道理,我们一起试一下。 可以观察到,list2虽然加入到了list1里面,却是以整个列表的身份加入的,这不符合我们的预期。此路不同,我们换一条路。 追加列表: 在列表的末尾,接上另一个列表,两个列表合二为一,就像拼接火车车厢一样: 这样,我们就能实现一次性加入多个元素了。. “小马,怎么总是在最后添加啊,在其他位置添加不行吗?” 是可以的,我准备讲了,请不要抢我台词。 插入元素 在指定位置插入元素: 可以观察到,list2整个列表插入到list1的最前面了。 列表是一个有序的数据类型,和掌控板的RGB灯序号一样,是从0开始的。如果我们是想插入在1,2之间的话,应该改为第1项。因为list2插入后取代了2原来的位置,成为了第1项: 1.3从列表中获取元素 可以通过元素的索引值(序号),从列表中获取单个元素: “小马……” 好,我知道你又想一次取出多个了,我讲 列表确实支持一次取出多个元素,但这几个元素会组合形成一个新的列表,这个操作叫做切片: 1.4修改列表中的元素: 1.5从列表中删除元素 列表删除元素在mPython在里也有三个模块: 清空: 把整个列表的所有元素都清楚,留下一个空列表: 移除某一项: 移除指定位置上的元素:(注意不是索引值) 其实代码里都是用索引值从0开始的,这个模块估计为了使用方便,封装的时候自动-1了,我习惯代码的用起来就怪怪的。 取出并移除:这个模块在移除的基础上,还能把移除的数据再次使用,观察模块的形状应该也能猜到用途: 这个模块在制作抽奖机的时候可以用到:抽出一个礼品并显示。以上就是列表的基础用法了,剩下的模块大家可以自己动手尝试一下,用一下就知道是怎么回事了。 补充一点: 这个模块得到的虽是一个列表,但严格意义上是属于字符串的方法。所以我放到后面去讲。 二、元组 元组可以理解为上了枷锁的列表,也就是不能添加、修改、删除。能看不能动,用于保存一些重要的、不能被修改的数据。大家观察一下,元组的标志性符号是什么? 相信很多人会回答:小括号 其实并不是,我通过pythonIDE中的type()函数(作用是查询数据类型)为大家演示下。 (1) 是一个被python视为一个整数,(1,2)才被python视为一个元组,两者的区别在哪里? “元组里面有2个元素,难道一个元素就不能形成一个元组吗?” 元素多少并不是关键,图形化积木里也是一个元素,仔细观察一下,单个元素的元组里面多了什么? 没错,其实就是这个不起眼的“,”在起作用,我们再回到pythonIDE测试一下: 所以元组的标志性符号是“,”! 三、 字符串 字符串与元组一样,也是能看不能动的,字符串是以每一个字符为一个元素,引号内的所有字符(包括符号)都视为该字符串的元素。 字符串的标志性符号是引号,单引号、双引号都可以,但是要成对使用噢,棒打鸳鸯可不好。 3.1字符串分隔 这个模块的作用是,以特定的分隔符,去分隔整个字符串。我举个栗子:“1234,2345,3456,4567”,这个字符串可以看成是4段组成的,每段由”,”连接。分隔之后就会形成: 可以观察到,分隔后,并不破坏原来的字符串。 3.2字符串格式化 这里的格式化并不是与内存一样,不是清空的意思。而是化作某种特定的格式。我举个栗子:袁老师要给家长们单独发送开学通知:XXX家长您好!……每条通知只是前面的学生名字不同,后面内容是完全相同的,这时候用格式化就会非常方便: 格式化后,“张三”会代替%s,形成字符串“张三家长!” 格式化后,“张三”会代替{},形成字符串“张三家长!” 字符串的格式化可能有点难理解,大家多用用,多体验下。 聪明的你可以已经发现,我把列表、元组、字符串放在一块儿讲是有道理的,因为他们有很多共同点: 都可以通过索引得到每一个元素 默认索引值总是从0开始(灵活的Python还支持负数索引) 可以通过切片的方法得到一个范围内的元素的集合。 所以我们把它们统称为:序列! 好了,以上就是本帖要讲的全部内容了,非常感谢你看到这里,如果觉得帖子写的还不错,对你有帮助的话,感谢点个赞支持一下,可以的话点个关注就更好啦。 N+频道,我是小马,我们下期再见。 |
613.1 KB, 下载次数: 2036
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed