跬步郎的博客 跬步郎的博客

——科员级项目管理师的奋斗历程

6、列表和for循环

运算符号\列表

第一节

大葱哥:好,上一节课我们留了作业,是把if语句改写成while语句 我们的if语句的程序是这样的:

x = input("请输入整数数字:")
y = x.isdigit()

if y == True:
    print(int(x) * 5)
else:
    print("输入不正确")

改成while语句的话,我们把if语句这部分注释掉.然后在下面写上

while y == False:

就是说,当y是否的情况下,也就是x.isdigit()不是全数字的情况下,进入循环

闺女:这也太难理解了,反人类的设定嘛

大葱哥:啊?我觉得还好,

闺女:我得先想y为什么会是false,然后再想x.isdigit()是什么,然后再想x,复杂,有简单的吗?

大葱哥:我可以换个思路,不过并不一定简单

while y != True:

也就是说,y不等于真的情况下进入while循环

闺女:这个更复杂呀,

大葱哥:为啥这个更复杂啊

闺女:因为我还得思考一个不等于,还不如直接思考等于假的呢

大葱哥:好吧,那我们还是用原来的

while y == False:
    print("输入错误,请从新输入整数数字:")
    x = input("请输入整数数字:")

添加x变量的赋值,就不会一直循环"请从新输入整数数字这段话了" (完整的代码:)

x = input("请输入整数数字:")
y = x.isdigit()
while y == False:
    print("输入错误,请从新输入整数数字:")
    x = input("请输入整数数字:")
print(int(x) * 5)

大葱哥:然后我们检查一下,看看格式和单词什么的有没有错误.

闺女:没有错误

大葱哥:你确定吗?

闺女:确定,运行吧

大葱哥:好,运行,走你...(运行程序) 看看,运行后发现什么问题没有?

闺女:为什么总是让我从新输入呢?我输入对了也不行

大葱哥:因为程序是从上到下执行的啊,执行到while循环里面以后,虽然x变量变了,但是y变量的值没有变啊,就像做饭的厨子,用勺子在锅里舀了一勺汤尝了尝,发现淡了,然后往锅里加盐,接着他又拿起原来那一勺汤来尝咸淡,那是不是还是淡的啊.

闺女:明白了,应该把y变量哪一行也放到while循环里.

大葱哥:对喽,真聪明,我们改一下吧.(完整的程序如下):

x = input("请输入整数数字:")
y = x.isdigit()
while y == False:
    print("输入错误,请从新输入整数数字:")
    x = input("请输入整数数字:")
    y = x.isdigit()
print(int(x) * 5)

大葱哥:这回我们运行一下?

闺女:好,我来运行,走你...

大葱哥:好的,while和运算符我们就讲完了,视频前的同学们,大家来做一下吧.


第二节

大葱哥:前几堂课,我们讲了python的开发环境、编辑器、变量、if语句、while循环和运算符号

闺女:还有注释

大葱哥:对,还有注释

闺女:还有输入语句和输出语句

大葱哥:额,对,还有输入和输出

闺女:还有字符串转整数

大葱哥:哎呀,看来你的记忆力不错啊,都记住了

闺女:那肯定的

大葱哥:好,那我们今天再做一个例子

闺女:吃鸡

大葱哥:不要捣乱,你现在才初学,怎么可能会做那么复杂的游戏,

闺女:那做什么

大葱哥:做一个班级中点名的程序

闺女:这有啥用啊,一个点名还用作程序??说话不就完事了(一脸的不屑)

大葱哥:呃,我只是想用一个例子来给你讲解一些新的内容,你学不,不学就算了啊

闺女:学

大葱哥:要想做一个班级的点名程序,是不是首先得知道你们班有多少个学生啊

闺女:(说出班级的人数)50个人

大葱哥:我去,那么多啊,呃,我们暂时用5个同学的名字代替吧

闺女:那还是班级点名了么

大葱哥:学习小组点名程序,可以不

闺女:可以

大葱哥:我们先起几个名字

闺女:好,张小明, 王小明, 李小明,赵小明,黄小明

大葱哥:闺女,你不能这么起名字啊,这谁能记得住谁来了啊

闺女:可以查数量啊

大葱哥:怎么查

闺女:点名的时候喊,小明同学,然后查几个喊到的就来了几个呗

大葱哥:晕啊,哪能这么点名.不行,我来起名字

闺女:好吧,剥夺了我起名的权利

大葱哥:学习小组有5个同学,分别是:李雷,韩梅梅,张小明,Lisa,佩琪

闺女:啊?佩琪也可以算同学啊?!佩琪是小猪啊!

大葱哥:那我们换成钢铁侠,可以不?

闺女:凑合吧

大葱哥:那我们可以把他们放到一个班级里,给这个班级起个名字,叫Lisa_class,代码像这样:

Lisa_class = ["李雷","韩梅梅","张小明","Lisa","钢铁侠"]

闺女:大葱哥,这个怎么跟以前不一样了,怎么用中括号表示了?

大葱哥:这就是我要讲的列表了,变量只能存储一个元素.但是元素多了怎么办呢?就需要用列表来存储.


第三节 列表增删改查

闺女:那这个班级的列表能做什么?

大葱哥:能做的事情可多啦,常用的有增删改查四种.

闺女:什么是增删改查?

大葱哥:增删改查就是对列表进行的操作:增加元素、删除元素、修改元素、查找元素的操作。光说不练假把式,我们还是来演示一下:

增加列表元素:

比如我们上面的班级列表,如果新来一个同学叫王小二,要想加入到班级里应该怎么办呢?用append方法。

闺女:什么是append?缩写是app吗?

大葱哥:不是,append是一个单词,附加,添加的意思. 我们要把王小二添加到学习小组里面,所以用append

闺女:直接往Lisa_class里面填就完事了嘛

大葱哥:这倒是可以,但是如果学习小组这个列表不是放在我们这个程序文件里,是放在远在100公里外的电脑上怎么办呢?

闺女:QQ传送文件呗

大葱哥:要是这个学习小组的文件不只是5个同学,是几百个同学,而且文件很大,十几个G怎么办

闺女:不道

大葱哥:所以这个方法是为了应对远程情况的.

这个方法是这么写的:

Lisa_class.append("王小二")

现在打印一下Lisa_class 看看,是不是把王小二同学加进来了很简单吧。

接下来我们看列表的查询操作,要想知道班级里王小二同学的索引号该怎么做呢?能理解什么是索引号吗?

闺女:不理解,

大葱哥:就是在列表里面元素的序号,你可以理解为班级里面的学号。如果想知道王小二同学排在第几号,我们用index方法

code = Lisa_class.index("王小二")
print(code)

上面代码的意思就是把王小二的索引号保存到变量code里然后打印出来

闺女:打印出来的是5,但是王小二是第六个人啊

大葱哥:嗯,这就是Python编程跟我们正常数数不一样的地方了,Python语言认为0是第一位的,所以索引号为0的同学是第一个元素李雷。

闺女:呃,不太好理解啊

大葱哥:嗯你记住Python数数是从0开始数第一个数就好。

那么我们找到了王小二同学的索引号,就可以进行修改操作啦.如果王小二同学的名字错了,比如他的大名叫王闯,我们需要修改他的名字,怎么办呢?我们直接利用索引号赋值就可以了,像下面这样:

Lisa_class[5]="王闯"

我们打印一下看看是否修改了 (演示) 看看是不是修改成功了

闺女:无论列表里有多少个元素都可以吗?

大葱哥:是的,只要知道索引号就可以.

闺女:那删除该怎么办呢,用减吗?

大葱哥:不是,删除用remove,比如现在的王闯同学转学校了,我们需要把他从学习小组里删除,代码像这样:

Lisa_class.remove("王闯")

闺女::删除同学不需要索引号吗?

大葱哥:是的,只要知道元素的名字就可以


第五节 for循环

比如我们要做的点名程序.我们用for循环语句来做.

闺女:for循环?新的语法吗?

大葱哥:对,格式跟我们以前学过的while语句差不多,不过功能不太一样,for语句是这么写:

for name in Lisa_class:
    print(name)

(演示运行效果),看for循环的作用就是把列表里的元素挨个读取一遍,每读取一个元素就存放到name的这个变量里,name是个变量,可以起其它的名字,很多教程里演示for循环都用字母i来代替

闺女:哦,for循环看着很简单啊。

大葱哥:是啊,这几个循环语句综合运用起来会完成很多复杂的事情呢。

好啦,今天的课程就到这里,大家回去也做做练习吧

你的赞助,是对我辛勤耕耘的最大支持