关于我转生开始学python的那件事(四)——列表与条件判断

之前我们完成了对于python字符串相关基础知识的学习,那么我们继续学习python基础中的列表与条件盘对

列表

在python中,我们有两种常见的表示列表的方式——list和tuple

list

list是一种有序的集合,我们可以随时增加或删除其中的元素

image-20241111193150627

在这里,classmates就是一个列表,包含了以上三位同学

我们可以使用len()函数来获取到列表中的元素数量

image-20241111193356270

同时,我们可以使用索引来获取到其中的元素

image-20241111193515328

需要注意的是,索引从0开始,所以索引数应当是元素数量-1,如果超出了则会产生IndexError的报错

我们还可以使用-1来表示倒数第一个元素,并以此类推,仍然需要注意元素数量问题

image-20241111193743097

同时,我们刚才提到了,list列表是一个有序列表,这也就意味着我们可以通过append来往list表格末尾添加元素

image-20241111193949704

那么同样地,想要往列表中间插入元素,我们使用insert(插入序号,'插入内容')来进行

image-20241111194135641

我们刚才都是讲如何往列表中添加元素,那么我们该如何删除元素呢?

我们使用pop来做到这一点

首先,我们使用pop()来默认删除列表中的最后一项

同时我们可以使用pop(i)来删除列表中的指定某项,这里的i指的是列表索引中对应的元素数字

image-20241111194507950

那么我们如何进行替换操作呢?我们可以在列表对应的索引位置直接进行赋值

image-20241111194737135

最后,list的列表具有很大宽容性,这也就意味着list列表中可以包含不同的数据类型,甚至将list列表作为另一个list的元素,然后我们要取出的时候我们可以通过两个索引来进行表示

image-20241111195912097

tuple

tuple也是一种经常使用到的列表方式,大体的使用原理和list相似,但是与list不同的是,tuple一旦初始化就不能更改

image-20241111200316197

现在这个列表已经不可以动了,也就是你没法通过list中的append,pop和insert等方式来插入删除或替换内容

那么这么做有什么意义呢?因为tuple不可以变的属性,所以它使得代码更加安全,因此在我们后续的编程中尽量应当有意识地多使用tuple来替代list

同时在定义tuple时,还有一个小问题:

这是一次常见的定义和一次空定义

image-20241111200733886

我们可以看到tuple列表被正确地填入了 1,2的数字和空

但是在填入单个数字时候,问题来了

image-20241111200910447

值得注意的是,我们这里定义的不是tuple这个列表,而是1这个数字!因为在数学运算中小括号同时也作为运算符号。那么我们如何来定义这个列表呢?我们只需要在需要填入的单个数字后加一个逗号就可以了

Python在显示只有1个元素的tuple时,也会加一个逗号,,以免你误解成数学计算意义上的括号。

最后我们来看一个tuple的例外:

image-20241111201513848

发生了什么?tuple列表居然发生了变化!不是说好的不能变化的吗!

这究竟是怎么一回事?原来tuple不变指的是tuple指向的每个元素不变,而不是其中的内容不变,所以我们可以说变化的是list列表中的内容,而不是tuple列表中的内容

用图片来解释一下:(图源:廖雪峰)

tuple-1

这个是原本的tuple列表

tuple-2

这个是我们修改后的tuple列表

所以我们看到,tuple列表的指向始终没有发生变化,发生变化的是指向的list二级列表中的内容

那么要创建一个内容也不变的tuple怎么做?那就必须保证tuple的每一个元素本身也不能变即可。

条件判断

能够进行条件判断是计算机能够自动处理许多问题的基础,那么我们接下来来了解条件判断

我们可以使用if来判断一个人是否成年

age = int(input('输入你的年龄'))
if age <= 18:
    print('你还没有成年')
else 
    print('你已经成年了')

不过你可能注意到,只使用if 和else只能进行一次条件判断,那么我们如果需要进行更多次的条件判断该怎么做呢?

这时候我们就用到了elif

elifelse if的缩写,通过elif我们就可以实现很多条件的判断。需要注意的是,条件判断是从上到下的,如果在某个判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elifelse

age = int(input('输入你的年龄'))
if age <= 12:
    print('你是小萝莉!')
elif 12 < age <=18:
    print('你是中萝莉!')
else:
    print('你是大萝莉!')

同时,可能会问了——第一行的int是什么意思呢?

原来,我们通过input输入的数字是一个str,而想要将它进行和整数进行比对,我们需要也将它转换为一个整数。而int便是这个作用。同时int在发现输入的字符串不是一个合法数字是便会自动报错退出。


从这次开始,编程逐渐变得可感和有趣了起来,继续加油吧!

博客内容均系原创,未经允许严禁转载!
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇