欢迎来到数据结构第二课,我是波波仔。这节课,我们不仅要学习一个更加深入的内容——列表,还要学习Python中的几个内置函数。话不多说,现在开始我们的新内容。
列表是啥?别急,我们先来和我们的老朋友“变量”浅浅交流一下。
变量的基本结构是变量 = 字符串/数字/布尔型
为啥要讲这个呢?因为我们的新朋友“列表”和变量长得非常像。
OK,接下来我们来看看列表的具体形式。
num_list = [1,2,3,4,5,6,7]
print(num_list[0])
看一下这段代码
num_list = [1,2,3,4,5,6,7]
print(num_list[0])
第一行中中括号中的内容就是列表了。列表的形式是这样的:
变量 = [元素,元素,元素,元素]
这根上面的字符串的区别在于列表间的逗号。此时的索引也大有不同:
索引在以前的字符串中表示“第几个元素”对应的位数-1。而今天的列表中的元素索引则是用逗号隔开的一个个元素,他们对应的位数就是他们的索引值+1。
接下来,我也用剖析图给大家展示一下算值方式。
0 1 2 3
+---+---+---+---+
num_list = [ 1 , 2 , 3 , 4]
这幅图在索引算字符串的时候也看过。想必大家已经懂了吧,和字符串索引差不多,就是形式不大一样。
我们先来试着做一道题。
题目:新建一个名叫list_1的列表,并在列表里添加以下元素:
1,11,111,1111,11111
(1)输出“1”
(2)输出“111+11111”的和
(3)输出“111_11111”
(4)输出列表长度
分析:
1.输出1
这个so easy啦。
list_1 = [1,11,111,1111,11111]
print(list_1[0])
2.输出111+11111的和
这个不难,但是需要你对索引印象深刻
print(list_2[2] + list_2[4])
3.输出“111_11111”
print(list_2[2] + "_" + list_2[4])
是这样?no!
答案是:
print(str(list_2[2]) + "_" + str(list_2[4]))
这是str()字符串化内置函数。
具体内容,我待会细讲。
4.输出列表长度
大家可能真的懵逼了!啥玩意?长度?
别急,接下来,就是讲解时间~~~~
这个函数刚刚我也讲过了,主要是用来将数字转化为字符,我们在之前合并π的时候也见过,用过。是不是有点玄乎,抽象?没事,我来举个例给大家看看。
这是1+1的例子。上面一行就是单纯的1+1,但是下面一行大同小异:
首先,多了个str()。其次,输出时也出现了区别:不是光秃秃的2,而是加了双引号,变成了字符串的“2”。
这就是str()函数的作用:将数字或数字运算的结果已字符串的形式输出。
这个函数看起来十分“高尚”,但是它的作用却非常简单:统计列表长度以及字符串长度,下面来看几个例子:
从这几个例子里,大家应该可以看出len的作用了。接下来出场的函数,是一个非常“神奇”的函数
老样子,来看几个例子
又是12345。从这里也看出了,list的作用:将字符串转化为以1个字符为一个单位的列表。我们再来看看,直接丢给它一个数字,他会咋样。
额,报错了。这也表示了:list也只能转化字符串,数字它无能为力
list只能制作以一个字符为单元的单词,所以大家要小心了:题目里一旦出现字符个数>= 2,那么根据现在的知识,请使用“索引”。
这么多函数学下来,上面的题目你会做了么?
这个符号是简单的,但是作用不小。这样吧,我还是以Python这个词为例做代码。
照样是一个idle里的例子
看似简单,其实并不简单:他涉及了一个叫做“对象.函数()”的概念。
下面,我们就来看看这段代码中包含的结构
这个结构会在以后的编程中经常看到。我们先来挨个看一下它的组成。
第一个是“对象”。这是什么呢?简单来说,就是应用函数所对应的“变量名”。
而第二个函数就不用说了,我们直接来看例子。
>>>message = 'python'
>>>print(message.title())
Python
>>>print(message.upper())
PYTHON
>>>message = 'PYTHON'
>>>print(message.lower())
python
在上面的print函数中有大量对象.函数()结构。比如
>>>print(message.title())
这里面的message.title()就是这个结构。其中,message就是个“对象”(上面的变量),而title()就是函数。
OK,这个小结构就说到这里
从上面的例子也可以看出来,它们可以控制字符的大小写。
接下来,我们挨个来看。
title(),英文意思“标题”。众所周知,英文标题的第一个字一定要大写,Python中它的作用就是将字符的首字母“大写”。
虽然含义非常简单,但是它的作用非常大。
question 1:如果是一个句子,它的首字符大写操作怎么做?
我们以“hello python world”为例,他究竟是怎么样?
1.Hello python world
2.Hello Python World
我们还是以IDLE来做,看看会咋样。
这里显示:是我们上面的2选项。所以,一旦像上面的题要改成纯首字符大写的句子,我们要另辟蹊径。
这个函数就是把所有的字符大写,实用性不大高,但是很独特——它主要用于突出。当然,句子也不例外:
接下来,与之相反的,就是lower()函数。
这个函数与upper相反,将所有的字符全部改成小写字母。
例子我就不讲了,接下来就是习题时间!
1.1.1枪械商店
在乱斗游戏中,有一家枪械店。
它们卖这几种种枪:AWM,98K,M24,AK,它们按顺序排列,以AWM为0,请完成以下题目:
(1)输出所有枪名
(2)顾客1想买型号2,3,请帮他选择对应的枪名。
(3)顾客2想了解到枪的总型号数量,用列表告诉他。
(4)掌柜想买到新的枪械,它们分别是:AUG,M249,AK。请你帮他制作表格。
1.1.2数字朋友
有一堆数字
1,121,12321,1234321,123454321,12345654321,1234567654321
(1)帮它们制表
(2)将他们输出(两边有括号)
1.1.3姓名
波仔有个朋友,叫做鲍勃·史密斯
英文全拼是“Bob Smith”
(1)以全部大写的方式储存(输出);
(2)以全部的字母小写储存(输出);
(3)以首字母大写的方式储存
(4)输出姓名总位数(不计空格)
OK,这节课的内容到此为止!这节课的干货非常多,大家好好消化,好好做题哟!下节课,我们就要学习元组和字典,敬请期待!
最后,制作不易,别忘了一圈三连,点个关注!
1.1.1
list_gun = ['AWM','98K','M24','AK']
print(list_gun)
print(list_gun[1] + list_gun[2])
print(len(list_gun))
new_gun = 'AUG','M24','AK'
print(list(new_gun))
1.1.2
num_list = '1','121', '12321','1234321', '123454321', '12345654321', '1234567654321'
print(list(num_list))
print(str(num_list))
1.1.3
name = "Bob Smith"
print(name.upper())
print(name.lower())
print(name.title())
print(len(name))