六、Python第六课——Python中的for循环及数字列表

目录

一、Python中的for循环

1、for循环语句的声明。

2、for循环缩进常见问题 

 二、数字列表

1、函数range() 

2、使用range()函数创建数字列表 

3、使用一系列函数处理数字列表(统计) 

4、列表解析(生成列表的简洁方法)


一、Python中的for循环

1、for循环语句的声明。

在列表中,我们经常遍历列表中的所有元素,并对每个元素执行相同的操作,那么这就可以使用for循环来实现。用如下代码介绍for循环的用法:

magicicans=["alice","david","carolina"]
for magicican in magicicans:      #让Python从magicians中取出一个名字,并存储在magician中
    print(magicican)              #打印magician中储存的名字

上述代码首先定义了一个magician的列表,里面有三个人的名字,然后才使用for循环进行了一个操作。

"for magician in magicians:"这行代码的用法实际上是“for A in B:”。B是一个列表,A是一个用来存储列表元素的临时变量,而本行代码的意思是:让Python从列表B中按照先后顺序依次取出其中的元素,并赋值给A元素,进行接下来的操作(这个操作将会对列表中的每一个元素,都将执行)。其中的“A”可以任意取名,但是“B”一定要和所遍历的列表名称一致。

                          “for magician in magicians:”

Tip:编写循环时,用于存储列表元素的临时变量可指定任何名称。但是,选择描述单个列表元素的有意义的名称大有帮助。例如小猫列表、小狗列表和一般性列表,像如下编写for循环的第一行代码是不错的选择:有助于你明白for循环中将对每个元素执行的操作。使用单复数形式明存,有助于你判断代码处理的是单个列表元素还是整个列表。

for cat in cats:
for dog in dogs:
for item in list_of_items:

 在Python中不使用大括号来标明哪些操作要循环进行,取而代之的是相应代码的缩进,在for循环语句的后面,每一行缩进的代码都是循环的一部分。下图红框圈主的就是“缩进”。而在for循环后面的没有缩进的代码只执行一次,而不会重复执行!

2、for循环缩进常见问题 

python根据缩进来判断代码行与前一个代码行的关系,并且通过使用缩进让代码更易读,所以在开始编写代码时必须正确缩进代码!

A、忘记缩进:例如循环语句后的代码忘记缩进,在会提示“expected an indented”

B、忘记缩进额外的代码行:例如本来需要循环执行的代码有两行,但却只缩进了一行代码!这是一个逻辑错误,语法上是合法的,但是由于存在逻辑错误,运行代码之后得到的结果并不符合预期。

C、无循环时的不必要的缩进。例如没有循环语句,但是却缩进了某一行代码,Python会报错“unexpected indent” 。

D、有循环时不必要的缩进。这也是一个逻辑错误,如果不小心缩进了应在循环结束后执行的代码,这些代码将针对每个列表元素重复执行。

E、在for语句后忘记了冒号。这个冒号对于for循环来说至关重要:告诉Python解释器下一行缩进的代码是循环的第一行代码。

 二、数字列表

       之前学习过列表,里面存储的是字符串,而今天将要介绍的列表是“数字列表”。顾名思义,数字列表就是列表中存储数字!而且列表中非常适合存储数字集合!下面开始介绍一些关于数字列表的函数和操作。

1、函数range() 

       range单词的意思是“范围”,说到这,想必大家对这个函数的功能就不那么陌生了。range()函数的功能正如“range”的意思一样:能生成某个范围内的数字。如下示例代码:

for value in range(1,5):#上一节课提到的循环语句,value存储range函数生成的4个数字
    print(value)

六、Python第六课——Python中的for循环及数字列表_第1张图片

       细心的同学发现,这两行代码中生成的数字应该是1-5的5个数字,为什么只有1-4的4个数字呢? 

这个就是我们需要注意的地方了:因为此处和我们的传统认知不一致。range()函数的具体功能是让Python从你指定的第一个值开始,并在指定的第二个值后停止,自然不包含第二个数字了。如range(1,5)从1开始,到5之前就停止了,所以输出的是1,2,3,4!!!

2、使用range()函数创建数字列表 

       将刚才学的数字列表和range()函数结合起来,使用另一个list()函数将range()生成的数字直接转换成数字列表。示例代码:

numbers=list(range(1,6))#将rang()函数作为list()函数的参数,实现数字转为列表的功能
print(numbers)#打印生成的数字列表

六、Python第六课——Python中的for循环及数字列表_第2张图片

     这是“数字”转“数字列表”的初体验,数字的间隔是“1”。当然可以通过指定range()函数的参数来确定间隔。示例代码如下所示:

numbers=list(range(1,10,2))#将rang()函数作为list()函数的参数,实现数字转为列表的功能
print(numbers)#打印生成的数字列表

 六、Python第六课——Python中的for循环及数字列表_第3张图片

       上述代码,即为从1到10,以2为间隔,最终的数字列表为“1,3,5,7,9” 

既然学到这里了,我们用一道题目来测试一下我们对range()函数、for循环以及乘方的掌握程度:

题目大意:创建一个数字列表,其中包含前10个整数(即1~10)的平方。 示例代码如下所示:

代码1:

#made by Jeffery
#date 2020.10.15
numbers=[]                   #声明一个列表
for number in range(1,11):   #用for循环指示number为1~10,循环10次
    number=number**2         #计算number为每个数字时的平方
    numbers.append(number)   #使用append函数将计算出来的值写入第3行代码创建的列表
print(numbers)               #将numbers列表的内容打印出来

 六、Python第六课——Python中的for循环及数字列表_第4张图片

 代码2:

#made by Jeffery
#date 2020.10.15
numbers=[]                      #声明一个列表
for number in range(1,11):      #用for循环指示number为1~10,循环10次
    numbers.append(number**2)   #使用append函数将计算出来的值写入第3行代码创建的列表
print(numbers)                  #将numbers列表的内容打印出来

这是我根据《Python编程·从入门到实践》写的两段代码,相互对照后发现二者实现的功能是一样的,但是代码行数、使用的变量有所不同。代码2明显精简于代码1。所以,有如下启示:使用临时变量有时会增强代码易读性,而在其他情况下,只会增长代码长度。so,先写出代码清晰、功能完善的代码,再精简代码!

3、使用一系列函数处理数字列表(统计) 

有了数字列表之后,我们需要从数字列表中获得更多信息,如数字列表中的最大数、最小数以及所有数字的和。 处理数字列表的函数极其容易识记,这里我们用一段代码解释说明一下,就不多做赘述。

#made by Jeffery
#date 2020.10.15
numbers=[]                                #声明一个列表
for number in range(1,11):                #用for循环指示number为1~10,循环10次
    numbers.append(number**2)             #使用append函数将计算出来的值写入第3行代码创建的列表
print("数字列表的内容为:"+str(numbers))     #将numbers列表的内容打印出来
print("数字列表中的最小的数字为:")
print(min(numbers))                       #使用min()函数确定数字列表中的最小数
print("数字列表中的最大的数字为:")
print(max(numbers))                       #使用max()函数确定数字列表中的最大数
print("数字列表中的数字之和为:")
print(sum(numbers))                       #使用sum()函数计算数字列表中的所有数的和

 六、Python第六课——Python中的for循环及数字列表_第5张图片

4、列表解析(生成列表的简洁方法)

       标题“2、使用rang()函数创建数字列表”中介绍的生成数字列表的方法包含3-4行代码,有些许繁琐,而列表分析只需编写一行代码就可以实现列表的生成,这里介绍是为了让大家在阅读他人代码时能读懂。

       列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素。 代码示例如下图所示:

#made by Jeffery
#date 2020.10.15
numbers=[number**2 for number in range(1,11)]   #这行代码的易读性降低了很多,慢慢熟悉就好了
print(numbers)                           #将数字列表的内容打印出来

代码解读:要使用这样的语法,首先创建一个列表,在列表的方括号内定义一个表达式,用于生成将要存储到列表中的值,如“number**2”,,接下来一个for循环,用于给刚才定义的表达式提供值。上述提到的循环不同于普通循环的地方是:for语句结尾没有冒号“:”。 

 六、Python第六课——Python中的for循环及数字列表_第6张图片

你可能感兴趣的:(Python学习笔记)