版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高中信息技术必修1:Python程序设计核心知识清单一、Python语言概述与基础(一)Python语言简介【基础】【了解】Python是一种高级、通用、解释型的编程语言,由吉多·范罗苏姆于1989年发明。其设计哲学强调代码的可读性和简洁性,使得开发者能够用更少的代码表达想法。Python拥有丰富的标准库和第三方库,支持多种编程范式,如面向对象、函数式编程等。在数据处理、人工智能、网络爬虫、自动化运维等领域应用广泛。对于高中信息技术课程而言,Python是学习算法实现和数据处理的核心工具。(二)Python的开发环境与第一个程序1.开发环境搭建:常用的Python开发环境包括IDLE(Python自带)、PyCharm、VSCode、JupyterNotebook等。在盲校高中信息技术教学中,推荐使用具备良好屏幕阅读器兼容性的编辑器,如配置得当的VSCode或IDLE。2.第一个Python程序:在交互式环境中(如IDLE的Shell)可以直接输入命令并立即得到结果。但更常用的是创建脚本文件(扩展名为.py),编写多行代码后统一运行。3.基本输入输出:(1)输出函数print()...在控制台输出信息。其基本语法为print(value,...,sep='',end='\n')。其中sep参数用于指定多个输出值之间的分隔符,默认为一个空格;end参数用于指定输出结束时的字符,默认为换行符\n。(2)输入函数input():用于从键盘获取用户输入。其语法为input(prompt),其中prompt是一个字符串,用于向用户展示提示信息。input()函数会将用户输入的任何内容作为字符串类型返回。如果需要其他数据类型,必须进行显式类型转换。【★高频考点】input()函数返回值的类型是字符串,这是一个极易出错的知识点。任何通过input()获取的数值,都必须使用int()或float()等函数进行转换后才能参与数学运算。(三)注释注释是代码中不执行的部分,用于解释代码的功能、逻辑或注意事项,是良好编程习惯的重要组成部分。1.单行注释:以开头,其后内容均为注释。2.多行注释:可以使用三个单引号'''或三个双引号"""将注释内容括起来。二、Python的基本语法与数据类型(一)标识符与关键字【基础】1.标识符:是程序员为变量、函数、类等命名的名称。命名规则如下:(1)由字母、数字和下划线_组成,且不能以数字开头。(2)区分大小写,例如myVar和myvar是两个不同的标识符。(3)不能使用Python的保留字(关键字)。(4)命名应遵循“见名知意”的原则,如使用student_name而非sn。2.关键字:是Python语言内部已经使用的、具有特殊含义的标识符。例如if、else、for、while、True、False、None、import、def、class等。不能使用关键字作为变量名或函数名。(二)变量与常量1.变量:是在程序中用于存储数据的容器。Python是动态类型语言,变量的类型由其赋的值决定,无需事先声明。例如:age=18,此时变量age的类型为整型。2.常量:是程序中值不会发生改变的量。Python中没有专门的常量语法,通常约定使用全大写字母的变量名来表示常量,例如:PI=3.14159。(三)基本数据类型【非常重要】【高频考点】Python内置了多种数据类型,最基本的有以下几种:1.数字类型(NumericTypes):(1)整型(int):表示整数,如10、5、0。(2)浮点型(float):表示带有小数点的实数,如3.14、0.001、2.0。浮点数在计算机中存储可能存在精度问题,如0.1+0.2的结果并不精确等于0.3。(3)复数型(plex):由实部和虚部组成,如3+5j。在高中阶段较少使用。2.字符串类型(str):表示文本数据,由单引号、双引号或三引号括起来的任意文本。例如:'Hello'、"World"、"""Python"""。字符串是不可变序列。3.布尔类型(bool):表示逻辑值,只有两个取值:True(真)和False(假)。布尔值常被用于条件判断和逻辑运算。(四)数据类型转换在实际编程中,经常需要在不同数据类型之间进行转换。1.隐式类型转换:Python在某些运算中会自动转换数据类型。例如,1+2.0,整型1会被自动转换为浮点型1.0,结果为浮点型3.0。2.显式类型转换:通过特定的函数强制进行类型转换。(1)int(x):将x转换为整型。如果x是浮点数,会截断小数部分;如果x是纯数字字符串,可以转换;否则会报错。(2)float(x):将x转换为浮点型。(3)str(x):将x转换为字符串类型。任何类型都可以转换为字符串。(4)bool(x):将x转换为布尔值。以下值转换为False:0、0.0、None、空字符串""、空列表[]、空元组()、空字典{}等,其余值通常转换为True。【★高频考点】【易错点】int("3.14")会报错,因为字符串"3.14"不是整数形式。应先使用float("3.14")转换为浮点数,再使用int()取整。三、Python的运算符与表达式(一)算术运算符用于执行基本的数学运算。1.+:加法,也用于字符串连接。2.:减法。3.:乘法,也用于字符串重复,如'A'3结果为'AAA'。4./:除法,结果为浮点数,如5/2结果为2.5。5.//:整除,结果为商的整数部分(向下取整),如5//2结果为2,5//2结果为3。6.%:取余(模运算),如5%2结果为1。7.:幂运算,如23结果为8。【★高频考点】整除//和取余%运算,尤其在涉及负数时的结果是考查重点。记住公式:a=(a//b)b+(a%b)。(二)赋值运算符用于将值赋给变量。1.基本赋值运算符=:如a=10。2.复合赋值运算符:将算术运算和赋值结合。(1)+=:a+=5等价于a=a+5。(2)=:a=5等价于a=a5。(3)=:a=5等价于a=a5。(4)/=:a/=5等价于a=a/5。(5)//=:a//=5等价于a=a//5。(6)%=:a%=5等价于a=a%5。(7)=:a=2等价于a=a2。3.多重赋值:a,b,c=1,2,3,将1赋给a,2赋给b,3赋给c。4.链式赋值:a=b=c=10,将10同时赋给a、b、c。(三)关系(比较)运算符用于比较两个值之间的关系,运算结果为布尔值True或False。1.==:等于。2.!=:不等于。3.>:大于。4.<:小于。5.>=:大于等于。6.<=:小于等于。【易错点】区分赋值运算符=和等于运算符==。在条件判断中,错误地使用=是常见逻辑错误。(四)逻辑运算符用于连接多个条件表达式,运算结果为布尔值。1.and:逻辑与(且)。只有当所有条件都为True时,结果才为True。2.or:逻辑或(或)。只要有一个条件为True,结果就为True。3.not:逻辑非(取反)。将True变为False,将False变为True。【重要】【难点】逻辑运算符的短路效应。对于aandb,如果a为False,则整个表达式确定为False,b将不再被计算(短路)。对于aorb,如果a为True,则整个表达式确定为True,b不再被计算。(五)成员运算符用于测试一个值是否存在于一个序列(如字符串、列表、元组)中。1.in:如果指定值在序列中,返回True。2.notin:如果指定值不在序列中,返回True。例如:'a'in'hello'返回False;3in[1,2,3]返回True。(六)运算符优先级当一个表达式中包含多个运算符时,按照一定的优先级顺序进行计算。从高到低大致如下(可使用括号()改变运算顺序):1.幂运算2.正负号+x、x3.算术运算符:、/、//、%4.算术运算符:+、5.关系运算符:<、<=、>、>=、!=、==6.逻辑非not7.逻辑与and8.逻辑或or9.赋值运算符=四、Python的程序控制结构(一)顺序结构程序按照代码编写的顺序,从上到下依次执行每一条语句。这是程序最基本的结构。(二)选择(分支)结构【非常重要】【高频考点】根据条件的真假,选择执行不同的代码块。1.单分支结构(if):if条件表达式:语句块1如果条件表达式结果为True,执行语句块1;否则,跳过语句块1。2.双分支结构(ifelse):if条件表达式:语句块1else:语句块2如果条件为True,执行语句块1;否则执行语句块2。3.多分支结构(ifelifelse):if条件表达式1:语句块1elif条件表达式2:语句块2elif条件表达式3:语句块3......else:语句块n依次判断条件,一旦某个条件为True,则执行其对应的语句块,然后跳出整个结构。如果所有条件都为False,则执行else下的语句块。else部分是可选的。4.嵌套结构:在if、elif或else的语句块内部,可以再包含完整的if语句。【重要】【易错点】注意if、elif、else后面的冒号:,以及其下语句块的缩进。Python使用缩进来表示代码块,同一层次的语句必须有相同的缩进量(通常为4个空格)。错误的缩进会导致IndentationError或逻辑错误。(三)循环结构用于重复执行某段代码。1.while循环(条件循环):while条件表达式:循环体语句块只要条件表达式为True,就不断执行循环体。需要确保循环体内有改变条件的语句,否则可能造成无限循环。2.for循环(遍历循环):for变量in可迭代对象:循环体语句块用于遍历任何可迭代对象(如字符串、列表、元组、字典的键、由range()函数生成的序列等),依次将对象中的每个元素赋值给变量,然后执行循环体。(1)range()函数:常与for循环搭配使用,用于生成一个整数序列。其语法为range(start,stop,step)。start默认为0,step默认为1。生成的序列包括start,但不包括stop。例如:range(5)生成0,1,2,3,4;range(2,8,2)生成2,4,6。3.循环控制语句:(1)break:立即终止当前整个循环(while或for),跳出循环体。(2)continue:结束本次循环,跳过循环体中continue之后尚未执行的语句,立即进入下一次循环的判断(for循环会取下一个元素,while循环会重新判断条件)。【★高频考点】【难点】区分break和continue的作用。break是彻底结束循环,而continue只是跳过本次迭代。4.循环的else子句【拓展】:Python中的循环语句可以带一个else子句。其含义是:当循环正常结束(即不是被break终止)时,执行else子句中的代码块。foriinrange(5):print(i)ifi==3:breakelse:print("循环正常结束")上述代码中,因为当i等于3时触发了break,所以循环非正常结束,else子句不会被执行。五、Python的组合数据类型【重要】(一)列表(list)列表是Python中使用最频繁的数据类型之一,用于存储一系列有序的、可变的元素。1.创建列表:使用方括号[],元素之间用逗号分隔。例如:fruits=['apple','banana','orange']。列表中可以包含不同类型的数据。2.列表的基本操作:(1)索引:通过下标访问单个元素,下标从0开始。例如fruits[0]获取第一个元素。支持负索引,1表示最后一个元素。(2)切片:通过[start:stop:step]获取子列表。例如fruits[1:3]获取索引1到2的元素(不包括索引3)。(3)修改元素:通过索引赋值,如fruits[1]='grape'。(4)添加元素:append()在末尾添加单个元素;insert(i,x)在指定位置i插入元素x;extend()将一个可迭代对象的所有元素添加到末尾。(5)删除元素:remove(x)删除第一个值为x的元素;pop(i)删除并返回指定位置i的元素,i默认为1;del语句如delfruits[0];clear()清空列表。(6)查找元素:index(x)返回第一个值为x的元素的索引;count(x)统计值为x的元素个数。(7)排序:sort()对列表进行原地排序;reverse()将列表原地反转。内置函数sorted()和reversed()可返回新列表。(8)长度:使用len()函数获取列表元素个数。【★高频考点】列表的增删改查操作是必考内容,需熟练掌握。(二)元组(tuple)元组与列表类似,但不可变。一旦创建,其内容无法被修改。1.创建元组:使用圆括号(),元素用逗号分隔。例如:colors=('red','green','blue')。创建只有一个元素的元组时,需要在元素后加逗号,如single=(1,),否则会被当作普通括号运算。2.元组的操作:支持索引、切片和len()函数等操作,但不支持任何修改操作(如增、删、改)。由于其不可变性,元组可以作为字典的键,而列表不能。【基础】元组比列表更安全,适用于存储那些不应被改变的数据。(三)字典(dict)字典是一种无序的、可变的键值对(keyvalue)集合。1.创建字典:使用花括号{},键值对之间用冒号:分隔,键值对之间用逗号分隔。键必须是不可变类型(如字符串、数字、元组),值可以是任意类型。例如:student={'name':'张三','age':18,'score':95}。2.字典的基本操作:(1)访问值:通过键访问,如student['name']。如果键不存在,会抛出KeyError。可以使用get(key,default)方法,如果键不存在则返回default值(默认为None),避免程序崩溃。(2)修改/添加键值对:通过键赋值,如student['age']=19(修改已有键),student['gender']='男'(添加新键值对)。(3)删除键值对:pop(key)删除指定键并返回其值;popitem()随机删除并返回一个键值对;delstudent['score'];clear()清空字典。(4)获取所有键、值、项:keys()返回所有键的视图;values()返回所有值的视图;items()返回所有键值对(以元组形式)的视图。(5)长度:使用len()函数获取键值对个数。【★高频考点】字典的键必须是不可变类型,且唯一。通过键访问值的效率非常高,这是字典的核心优势。(四)字符串(str)的进阶操作字符串作为不可变的序列类型,除了之前提到的索引、切片外,还提供了大量内置方法。1.查找与替换:find(sub)返回子串sub第一次出现的位置,不存在则返回1;rfind()从右侧开始查找。replace(old,new)将字符串中的old子串替换为new。2.分割与连接:split(sep)以sep为分隔符将字符串分割成列表;join(iterable)将可迭代对象中的字符串元素连接成一个新字符串,原字符串作为分隔符。例如:''.join(['2023','10','01'])结果为''。3.大小写转换:upper()转为大写;lower()转为小写;title()将每个单词首字母大写;capitalize()将字符串首字母大写。4.去除空白字符:strip()去除字符串两端空白字符;lstrip()去除左侧空白;rstrip()去除右侧空白。5.判断类型:isdigit()判断是否全部由数字组成;isalpha()判断是否全部由字母组成;isalnum()判断是否由字母和数字组成;startswith(prefix)判断是否以指定前缀开头;endswith(suffix)判断是否以指定后缀结尾。【重要】熟练掌握字符串的各种方法对于文本数据处理至关重要。六、函数与模块化编程【非常重要】(一)函数的定义与调用函数是组织好的、可重复使用的、用来实现单一或相关联功能的代码块。它可以提高代码的复用性和可读性。1.定义函数:使用def关键字。def函数名(参数列表):"""文档字符串(可选)"""函数体return返回值(可选)2.调用函数:通过函数名(实际参数)的方式执行函数。3.参数传递:Python中参数传递采用的是“对象引用传递”。对于不可变对象(如数字、字符串、元组),在函数内修改形参不会影响实参;对于可变对象(如列表、字典),在函数内修改形参会影响到实参。【难点】【易错点】区分可变与不可变对象在函数参数传递中的不同表现,这是编写无副作用函数的关键。(二)函数的参数类型1.位置参数:调用函数时,传入的实际参数必须与函数定义中的形式参数在数量和顺序上一一对应。2.默认参数:在函数定义时,为某些参数提供默认值。调用时,如果未提供该参数的值,则使用默认值。默认参数必须放在位置参数之后。defgreet(name,greeting="Hello"):print(f"{greeting},{name}!")3.关键字参数:调用函数时,通过“形参名=实参”的形式指定参数。使用关键字参数可以忽略参数的位置顺序。4.可变参数:有时需要函数能处理比声明时更多的参数。(1)args:用于接收任意数量的位置参数,并将它们打包成一个元组。(2)kwargs:用于接收任意数量的关键字参数,并将它们打包成一个字典。【高频考点】理解不同参数类型及其在函数定义和调用时的组合规则(顺序:位置参数、默认参数、args、kwargs)。(三)变量的作用域变量在程序中可被访问的范围称为作用域。1.局部变量:在函数内部定义的变量。它只在函数内部有效,函数执行结束后,局部变量被销毁。2.全局变量:在函数外部、模块顶层定义的变量。它可以在整个模块范围内被访问。在函数内部,如果要修改全局变量的值,需要使用global关键字进行声明。【易错点】在函数内部直接使用一个与全局变量同名的变量,Python会将其视为一个新的局部变量,除非使用了global声明。(四)函数的返回值return语句用于结束函数执行,并将一个值返回给调用者。如果函数没有return语句,或者return后没有值,则函数返回None。一个函数可以返回多个值,实际上是以元组形式返回的。(五)模块的导入与使用模块是一个包含Python定义和语句的文件(文件名以.py结尾)。通过模块,可以将相关的函数、类和变量组织在一起,实现代码的复用。1.导入模块:(1)import模块名math.sqrt用时需要加模块名前缀,如math.sqrt(9)。(2)from模块名import函数名1,函数名2:从模块中导入指定的函数或变量。使用时可以直接使用函数名。(3)import模块名as别名:为模块起一个别名,简化代码。(4)from模块名import:导入模块中的所有内容(不推荐,容易引起命名冲突)。2.常用内置模块示例:(1)mathmath.pi常数和函数,如math.pi、math.sqrt()、math.sin()等。(2)random模块:提供生成伪随机数的函数,如random.randint(a,b)生成[a,b]区间内的随机整数,random.random()生成[0.0,1.0)间的随机浮点数,random.choice(seq)从序列中随机选择一个元素。(3)time模块:提供时间相关的函数,如time.time()获取当前时间戳,time.sleep(secs)使程序暂停指定的秒数。【重要】能够熟练导入并使用标准库模块解决实际问题,是检验编程能力的重要方面。七、算法的三种基本结构在Python中的实现(一)顺序结构的实现顺序结构即算法步骤的直线翻译。例如,计算圆的面积:输入半径r,计算面积s=πr^2,输出面积s。对应的Python代码就是按顺序写出的三条语句。(二)选择结构的实现选择结构对应程序中的if语句。例如,判断一个数是正数、负数还是零,可以用ifelifelse结构实现。(三)循环结构的实现1.使用for循环实现计数型循环:当知道明确的循环次数时,常与range()函数结合。例如,计算1到100的和。2.使用while循环实现条件型循环:当循环次数未知,但有一个明确的结束条件时使用。例如,猜数字游戏,直到猜对为止。3.循环嵌套:在一个循环体内又包含另一个完整的循环结构。例如,打印九九乘法表。(四)经典算法举例【高频考点】1.累加与累乘:(1)累加:s=0,然后在循环中s=s+i。(2)累乘(阶乘):p=1,然后在循环中p=pi。2.求最大值与最小值:通常设置第一个元素为最大值(或最小值),然后遍历剩余元素,逐一比较并更新。3.计数:设置一个计数器变量count=0,每当满足条件时,count=count+1。4.枚举法(暴力搜索):在一定范围内,对所有可能的解进行逐一验证,直到找到正确的解或验证完所有可能。例如,找出100以内的所有质数。5.递推法:从已知的初始条件出发,依据某种递推关系,逐次推出所需的结果。例如,斐波那契数列:F(1)=1,F(2)=1,F(n)=F(n1)+F(n2)(n>=3)。八、文件操作(一)文件的打开与关闭1.打开文件:使用内置函数open(file,mode='r',encoding=None)。(1)file:文件路径(字符串)。(2)mode:打开模式。常用模式有:'r':只读模式(默认)。如果文件不存在,抛出FileNotFoundError。'w':只写模式。如果文件不存在,则创建新文件;如果文件存在,则覆盖原内容。'a':追加模式。如果文件不存在,则创建新文件;如果文件存在,则在文件末尾追加内容。'x':独占创建模式。如果文件已存在,则操作失败。'b':以二进制模式打开(如图片、音频),可与其它模式组合,如'rb'。't':以文本模式打开(默认)。'+':更新模式(读写),可与其它模式组合,如'r+'。(3)encoding:指定文本文件的编码方式,常用'utf8'。2.关闭文件:使用文件对象.close()。关闭文件可以释放系统资源,确保数据完全写入磁盘。(二)文件的读写操作1.读取文件:(1)read(size):读取指定字节数的内容。若不指定size或size为负数,则读取整个文件。(2)readline():读取文件的一行内容(包括换行符)。(3)readlines():读取文件所有行,并以每行为一个元素返回一个列表。2.写入文件:(1)write(str):将字符串写入文件,返回写入的字符数。(2)writelines(lines):将一个字符串列表写入文件,不会自动添加换行符,需要自己在字符串末尾添加。(三)使用with语句管理文件上下文【重要】【推荐】with语句可以自动管理文件的打开和关闭,即使在处理文件过程中发生异常,也能确保文件被正确关闭,是更安全、更简洁的写法。withopen('example.txt','r',encoding='utf8')asf:content=f.read()对content进行处理在此缩进块外,文件已被自动关闭。九、异常处理(一)异常的概念异常是程序运行过程中发生的错误或意外情况。当异常发生时,如果没有被捕获和处理,程序就会终止并输出错误信息(Traceback)。(二)常见的异常类型【基础】1.SyntaxError:语法错误,是程序运行前就能检查出来的,必须修复。2.NameError:尝试访问一个未定义的变量。3.TypeError:对类型不匹配的对象进行操作,如'2'+3。4.ValueError:传入一个值不正确的参数,如int('abc')。5.IndexError:索引超出序列的范围。6.KeyError:在字典中访问一个不存在的键。7.FileNotFoundError:尝试打开一个不存在的文件用于读取。8.ZeroDivisionError:除数为0。(三)异常的捕获与处理使用try...except...语句来捕获和处理异常,使程序能够优雅地处理错误,而不是直接崩溃。try:可能引发异常的代码块num=int(input("请输入一个整数:"))result=10/numprint(f"结果是:{result}")exceptValueError:处理特定类型的异常(值错误)print("输入无效,请输入一个整数。")exceptZeroDivisionError:处理特定类型的异常(除零错误)print("除数不能为0。")excepionase:捕获其他所有类型的异常,并获取异常对象eprint(f"发生了未知错误:{e}")else:如果没有发生任何异常,则执行此块中的代码print("计算成功完成!")finally:无论是否发生异常,都会执行此块中的代码(常用于资源清理,如关闭文件)print("程序执行结束。")【★高频考点】elsefinally的执行流程。try块必须存在,except块至少有一个(可以处理多种异常),else和finally是可选的。十、综合应用与项目实践(一)数据分析
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年家居能源自给系统 太阳能与储能技术的家庭应用
- 2026汽车零部件产业供应链优化深度研究及市场策略报告
- 2026年充电APP操作界面原型设计
- 2026人工智能伦理规范制定国际讨论科技创新风险防控政策研究分析
- 2026中国物流行业协会职能定位与发展趋势分析报告
- 2026中国先进制造业市场分析行业现状竞争格局投资评估未来发展策略研究报告
- 2026中国汽车芯片短缺背景下本土供应商准入机会研判
- 2026农业科技行业市场需求与智能种植规划分析研究
- 2026纳米尼亚农业机械化行业市场供需分析及投资评估竞争格局分析研究报告
- 2026汽车修理厂服务增供不足研究行业调整计划与资金应用方案
- 云南电力技术有限责任公司招聘笔试题库2026
- 2026宁夏国运新能源股份有限公司招聘45人笔试备考试题及答案详解
- 2026江苏镇江市京口区健康路街道办事处编制外城管协管员招聘2人笔试参考题库及答案详解
- 河道综合治理项目建议书
- 2026KDIGO慢性肾脏病贫血管理指南解读
- 贵州省遵义市红花岗区2025-2026学年四下数学期末检测试题含解析
- 2026年安徽省直机关公开遴选公务员笔试题及答案解析(B类)
- 火车站安防监控施工方案
- 2025-2026学年周三多管理学教学设计
- 智研咨询发布-2026年中国无人环卫车行业市场运行态势及发展趋势预测报告
- 2026年甘肃高考地理试卷附答案
评论
0/150
提交评论