之前我们完成了对于python字符串相关基础知识的学习,那么我们继续学习python基础中的列表与条件盘对
列表
在python中,我们有两种常见的表示列表的方式——list和tuple
list
list是一种有序的集合,我们可以随时增加或删除其中的元素
在这里,classmates就是一个列表,包含了以上三位同学
我们可以使用len()
函数来获取到列表中的元素数量
同时,我们可以使用索引来获取到其中的元素
需要注意的是,索引从0开始,所以索引数应当是元素数量-1,如果超出了则会产生IndexError
的报错
我们还可以使用-1
来表示倒数第一个元素,并以此类推,仍然需要注意元素数量问题
同时,我们刚才提到了,list列表是一个有序列表,这也就意味着我们可以通过append来往list表格末尾添加元素
那么同样地,想要往列表中间插入元素,我们使用insert(插入序号,'插入内容')
来进行
我们刚才都是讲如何往列表中添加元素,那么我们该如何删除元素呢?
我们使用pop
来做到这一点
首先,我们使用pop()
来默认删除列表中的最后一项
同时我们可以使用pop(i)
来删除列表中的指定某项,这里的i
指的是列表索引中对应的元素数字
那么我们如何进行替换操作呢?我们可以在列表对应的索引位置直接进行赋值
最后,list的列表具有很大宽容性,这也就意味着list列表中可以包含不同的数据类型,甚至将list列表作为另一个list的元素,然后我们要取出的时候我们可以通过两个索引来进行表示
tuple
tuple也是一种经常使用到的列表方式,大体的使用原理和list相似,但是与list不同的是,tuple一旦初始化就不能更改
现在这个列表已经不可以动了,也就是你没法通过list中的append,pop和insert等方式来插入删除或替换内容
那么这么做有什么意义呢?因为tuple不可以变的属性,所以它使得代码更加安全,因此在我们后续的编程中尽量应当有意识地多使用tuple来替代list
同时在定义tuple时,还有一个小问题:
这是一次常见的定义和一次空定义
我们可以看到tuple列表被正确地填入了 1,2的数字和空
但是在填入单个数字时候,问题来了
值得注意的是,我们这里定义的不是tuple这个列表,而是1这个数字!因为在数学运算中小括号同时也作为运算符号。那么我们如何来定义这个列表呢?我们只需要在需要填入的单个数字后加一个逗号就可以了
Python在显示只有1个元素的tuple时,也会加一个逗号,
,以免你误解成数学计算意义上的括号。
最后我们来看一个tuple的例外:
发生了什么?tuple列表居然发生了变化!不是说好的不能变化的吗!
这究竟是怎么一回事?原来tuple不变指的是tuple指向的每个元素不变,而不是其中的内容不变,所以我们可以说变化的是list列表中的内容,而不是tuple列表中的内容
用图片来解释一下:(图源:廖雪峰)
这个是原本的tuple列表
这个是我们修改后的tuple列表
所以我们看到,tuple列表的指向始终没有发生变化,发生变化的是指向的list二级列表中的内容
那么要创建一个内容也不变的tuple怎么做?那就必须保证tuple的每一个元素本身也不能变即可。
条件判断
能够进行条件判断是计算机能够自动处理许多问题的基础,那么我们接下来来了解条件判断
我们可以使用if来判断一个人是否成年
age = int(input('输入你的年龄'))
if age <= 18:
print('你还没有成年')
else
print('你已经成年了')
不过你可能注意到,只使用if 和else只能进行一次条件判断,那么我们如果需要进行更多次的条件判断该怎么做呢?
这时候我们就用到了elif
elif
是else if
的缩写,通过elif
我们就可以实现很多条件的判断。需要注意的是,条件判断是从上到下的,如果在某个判断上是True
,把该判断对应的语句执行后,就忽略掉剩下的elif
和else
。
age = int(input('输入你的年龄'))
if age <= 12:
print('你是小萝莉!')
elif 12 < age <=18:
print('你是中萝莉!')
else:
print('你是大萝莉!')
同时,可能会问了——第一行的int
是什么意思呢?
原来,我们通过input
输入的数字是一个str
,而想要将它进行和整数进行比对,我们需要也将它转换为一个整数。而int
便是这个作用。同时int
在发现输入的字符串不是一个合法数字是便会自动报错退出。
从这次开始,编程逐渐变得可感和有趣了起来,继续加油吧!