3.8.1必修1 项目八 分析气温数据

学习目标:
1.批量数据在程序中的表示
2.访问批量数据的常用程序模式
3.函数的定义和使用
4.理解“自顶向下、逐步求精”的程序设计方法以及嵌套、模块化设计思想。
一、用列表表示批量数据:
列表用“[ ]”表示。各数据项顺序排列,数据项用逗号分隔,数据项可以是任意数据类型
list=[ 数据项1,数据项2,....]                    #创建一个列表list
列表的访问是按列表名带数字下标号list[x]访问。下标是一个整数,有效范围从0到列表的长度减1,list[0]表示列表中的第一个数据项,list[n]表示列表中的第n+1个数据项。列表名只能是英文字母开头,由英文字母,数字,下划线构成


创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:

例1,创建一个列表,存储数据          t_day = [10, 13, 18,12 ]             #数字类型
例2,创建一个列表,存储字符串       yans = ["red", "green", "yellow"]   #字符类型
例3,创建一个列表,存储字符、数字  xdzx = ["pxxdzx.net",  1997, 2022]   #混合类型
*
1.
下列建立列表数据表达式正确的是(       )
A. class--1=[2201,2202,2203,2204,2205]
B.class_1=["2201","2202",2203,2204,2205]
C.class1=[2201_2202_2203_2204_2205]
D.class1=[2201/2202/2203/2204/2205]
二、实现列表序列元素切片操作(从列表中取不同的元素)
语法格式:

sname[start : end : step] ---> sname[参数1:参数2:步长]
理解关键点:列表切片的三个参数。
步长>0时,从左往右切。参数1必小于参数2,若参数1缺省,默认=0;若参数1大于参数2,则返回空。
步长<0时,从右往左切。参数1必大于参数2,若参数1缺省,默认是最大索引号;若参数1小于参数2,则返回空。
各个参数的含义是:
start:表示切片的开始索引位置(包括该位置),此参数也可省略,默认为 0,也就是从序列的开头进行切片;
end:表示切片的结束索引位置(不包括该位置),如果省略,则默认为序列的长度;
step:表示在切片过程隔几个存储位置(包含当前位置)取一次元素,当 step > 1,则切片序列元素,会跳跃取元素。如果省略设置 step 的值,则最后一个冒号就可以省略。

请用python上机练习:
>>>sname=[10,20,30,40,50,60,70,80,90]
                  对应索引号为0,1,2,3,4,5,6,7,8
>>>sname[1]             其结果是[20]
>>>sname[1:3]          其结果是[20,30]
>>>sname[:3]            其结果是[10,20,30]
>>>sname[0:8:2]        其结果是[10,30,50,70]
>>>sname[::1]            其结果是[10,20,30,40,50,60,70,80,90]
>>>sname[::-1]           其结果是[90,80,70,60,50,40,30,20,10]
>>>sname[:6:-1]        其结果是[90,80]   
             注:参数1省略为最大索引号8,则访问索引号为8和7,但不包含6

>>>sname[:6:-2]          其结果是[90]
     注:参数1省略为最大索引号8,则访问索引只有8,不包含6
>>>sname[0:6:-1]        其结果是[ ]
*
2.
在列表t_day=[10,13,18,12,16,19]中t_day[4]是指那个数据项?
18
19
16
10
3.
list1 = ['physics', 'chemistry', 1997, 2000,2008,2022]*
list2 = [5,6,7,8,9,10,11,12,13,14 ]
写输出结果:
list1[3]:list2[2:7]:     
*
4.
[2022真题]下列语句的执行结果为( ) [单选题]
>>>Color=["red","blue", "green","black"]
>>>Color[2]
A "red"
B "blue"
C "green"
D "black"
三、列表应用:
(1)用列表表示气温数据、计算平均气温

示例1:
t_day=[10,13,18,12,14]        #某地连续五天的气温列表
avg=(t_day[0]+t_day[1]+t_day[2]+t_day[3]+t_day[4])/5
print('平均气温=',avg)
输出结果:平均气温= 13.4

示例2:

t_day=[10,13,18,12,14]        
avg=sum(t_day)/len(t_day)
print('平均气温=',avg)
输出结果:平均气温= 13.4
*在Python环境下调试两种不同的求平均的方法*
Sum内置函数:求列表中数值数据的累加和
len内置函数:求列表中数据项的个数
(2)计算月平均气温
已知某地月气温数据列表[34,32,33,33,35,36,36,36,35,34,33,32,32,32,31,32,32,30,31,30,30,31,32,29,27,29,31,32,30,26,26]

方法1、利用下标访问法计算平均气温。程序如下:

方法2、利用序列迭代法计算:

四、自定义函数应用:
方法3:使用用户自定义函数计算平均值
,格式如下:

def getavg(L):                                   #自定义函数名为“getavg”,“L”任意列表名。
      return sum(L)/len(L)
例:求某月平均气温

函数的定义:
格式:def 函数名(参数):
     函数体
函数体中一般包含return语句,return语句作用是结束函数的执行,返回函数的值。
例1:要计算3!+5!-4!,可以定义一个函数,用于计算n!,必须有一个参数n的值,返回值作为计算结果。

例2:

以上程序为程序内部调用
也可将上述程序拆分为以下两个文件调用,这是程序模块化思想。


知识拓展:
  将多个自定义函数写入一个文件中,进行调用执行。
1、在自定义函数中定义多个函数:(文件名为sm.py)

2、调用多个函数的程序应用,要求两个程序文件在同一目录中。

问卷星提供技术支持
举报