1、4.1 程序设计语言的基础知识高中信息技术 必修1温故知新温故知新编程:人们把求解问题的方法和步骤用某种计算机语言写出来告诉计算机,计算机则按照程序的流程执行并求出问题的解。新知导入新知导入本节主要内容:1、Python 的常量和变量。2、Python的数据类型。3、Python的运算符与表达式。4、Python的函数。新知讲解新知讲解4.1.1 Python的常量和变量新知讲解新知讲解 Python的常量 常量是指在程序运行过程中其值始终变的量,通常是固定的数值或字符串。【例】2021,3.1415,qujing,python等都是常量。新知讲解新知讲解 Python的变量 变量是指在程序运
2、行过程中其值可以改变的量。在程序设计语言中,可以用指定的名字来代表变量。变量由变量名和变量的值两部分组成。例如要表示变量X的值为3.14可以用语句X=3.14来表示 Python的变量命名规则:(1)变量名只能包含字母(AZ,az)、数字(09)、下划线(_)。且只能以字母或下划线开头。(2)变量名是区分大小写的,空格不允许出现在变量名中。(3)不能用Python关键字作为变量名。(4)变量名应当是有意义的,不能过短或过长。新知讲解新知讲解课堂练习课堂练习判断下面变量名是否合法并说明不合法的原因。变量名是否合法原因123ok_zhangsan_张三_$interfacesina163in否否否
3、否否是是变量名包含符号。变量名不能以数字开头。变量名包含符号。变量名以下划线开头变量名中包含$符号变量名只包含字母(AZ,az)in是Python中的关键字新知讲解新知讲解 Python变量的赋值及其使用(1)Python中定义变量时不用申明数据类型,变量的数据类型由值来决定;(2)变量必须要赋值后才能使用,没有赋值的变量是没有被创建的;(1)申明单个变量并赋值如:a=1(2)申明多个变量并赋相同的值如:a=b=c=1(3)申明多个变量并赋不同的值如:a,b,c=1,2,john新知讲解新知讲解4.1.2 Python的数据类型新知讲解新知讲解计算机不仅能处理数值数据,还可以处理文本、图形、音
4、频、视频等各种各样的数据。不同的数据,往往需要定义不同的数据类型。例如:人的年龄可以用数字来存储,名字可以用字符串来存储。新知讲解新知讲解Python能够直接处理的常用数据类型:(1)Number(数值)(2)string(字符串)(3)List(列表)(4)Tuple(元组)(5)Sets(集合)(6)Dictionary(字典)新知讲解新知讲解数值型数据(Number)(1)int(整型)包括负整数、0、正整数(2)float(浮点型)浮点型由整数部分与小数部分组成。Int(整型)Float(浮点型)100.0-786-90.08032.3e+18-0 x26070.2E-12新知讲解新知
5、讲解 字符串类型(string)格式:字符串是由单引号或双引号括起来的任意文本。例如:s=“a1a2a3a4“name=“曲靖一中”取 值:我们可以通过索引下标取字符串中的某一个字符值 方式一:字符串的下标索引从左到右是从0开始的,最大索引是字符串的长度-1。方式二:从右到左下标索引是从-1开始的,最小索引下标是-(字符串长度)。字符串中只能通过下标索引进行取值,不能通过下标索引赋值新知讲解新知讲解列表类型(List)格式:列表是写在方括号“”内、用逗号分隔开的元素列表,列表的元素不需要具有相同的数据类型。例如:list1=Good,Run,1997,2000和list2=1,2,3,4,5,
6、6,7。取值赋值:与字符串的索引一样,列表下标索引从左到右是从0开始,从右到左是从-1开始,列表既能通过下标索引取值也能通过下标索引赋值;例如:取值 list1-1 赋值list12=3.14新知讲解新知讲解元组类型(tuple)格式:创建元组只需要在小括号“()”中添加元素,并使用逗号隔开,元组中的元素也不需要具有相同的数据类型。例如:yuanzu=(1,12.34,2021年)取值:与字符串的索引一样,元组索引下标从左到右是从0开始,从右到左是从-1开始,元组也只能通过下标索引取值,不能通过下标索引赋值。例如:temp=yuanzu1新知讲解新知讲解集合类型(Sets)格式:集合是一个无序
7、不重复元素的序列,使用大括号 或者set()函数创建,但创建一个空集合必须用 set()函数而不是,因为 是用来创建一个空字典的。取值:集合是不能通过下标索引来取值和赋值的。新知讲解新知讲解字典类型(Dictionary)格式:字典是一个无序的“键(key):值(value)”对集合用中括号 标识。zidian=key1:value1,key2:value2 。取值:字典当中的元素是通过键来存取的,而不是通过下标索引,键必须使用不可变类型,在同一个字典中,键必须是唯一的。dict=Alice:2341,Beth:9102,Cecil:3258课堂练习课堂练习数据类型数据类型字符串字符串列表列表
8、元组元组集合集合字典字典标识标识“”或或()key:value索引索引下标下标下标下标下标下标无无键(键(key)是否可以通是否可以通过索引赋值过索引赋值否否是是否否否否是是元素是否要元素是否要具有相同数具有相同数据类型据类型否否否否否否否否否否新知讲解新知讲解4.1.3 Python的运算符与表达式新知讲解新知讲解Python的运算符的概念运算符:Python程序设计语言中对常量或变量进行运算和处理的符号。操作数:操作数参与运算的对象,操作数可以是常量、变量、函数等。表达式:即由运算符、操作数连接而成的式子。例:a=b+9 就是一个表达式。其中a,b 和 9被称为操作数。“=”和+称为运算符
9、。新知讲解新知讲解运算符的类型算术运算符逻辑运算符成员运算符关系运算符赋值运算符新知讲解新知讲解 1、算术运算符与算术表达式(1)算术运算符包括“+”“-”“*”“/”“%”“*”和“/”(向下取整),分别表示加、减、乘、除、求余、幂运算和整除。(2)由算术运算符连接的表达式称为算术表达式。例:a/b;a/b;a*b;a%b,a*b等。新知讲解新知讲解2、逻辑运算符与逻辑表达式(1)逻辑运算符包括“and”(与)、“or”(或)、“not”(非)共三个。(2)由逻辑运算符连接而成的表达式称为逻辑表达式,(3)逻辑表达式的值为True或False,对应于整数1和0直接参与其他运算。新知讲解新知讲
10、解【例】写出下列运算结果。运算符运算符逻辑表达式逻辑表达式描述描述示例示例 andandx x and and y y如果如果x x为为FalseFalse,x x andand y y 返回返回 FalseFalse,否则否则返回返回 y y 的计算值。的计算值。(a a and and b b)返回返回0 0。(c c and and b b)返回返回1 1。ororx x or or y y如果如果 x x 是是 TrueTrue,它返回它返回 x x 的值,否则它返回的值,否则它返回y y 的计算值。的计算值。(a a or or b b)返回返回1 1。(c c or or b b)
11、返回返回2 2。notnotnot not x x如果如果 x x为为 TrTr u u e e,返回返回 FaFa l l s s e e;如果如果 x x 为为FalseFalse,它返回它返回TrueTrue。nono t(t(a a a a ndnd b b)返返回回TrueTrue。新知讲解新知讲解3、关系运算符与关系表达式(1)关系运算符有“”(大于)、“=”(大于等于)、“”(小于)、“大于-返回x是否大于y。(a b)返回 False。小于-返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。(a=大于等于-返回x是否大于等于
12、y。(a=b)返回 False。=小于等于-返回x是否小于等于y。(a、=大于、大于等于9or逻辑或运算、=小于、小于等于10=、%=、/=、/=、-=、+=、*=、*=赋值运算5=、!=等于、不等于新知讲解新知讲解运算符的优先级表达式结果a=2 a=2 b=3 b=truea-=2 and b a-=a and ba=-1 a=1 True and false or true and truetrue2*3=5%4/3false3!=4 and 5+163+4=6 or 17/63true4.2 运用顺序结构描述问题求解过程高中信息技术 必修1新知讲解新知讲解顺序结构是最简单的程序结构,只要
13、按照解决问题的步骤顺序写出相应的语句即可。执行过程:顺序结构执行顺序就是语句自上而下依次执行顺序结构执行流程图语句序列开始结束新知讲解新知讲解笔记本1的单价是3元,笔记本2的单价是5元,如果同时购买两种笔记本可以打八折,如果购买笔记本1和笔记本2各n本,那么可以优惠多少元?分析问题1已知笔记本1的单价是3元、笔记本2的单价为5元2同时购买,价格可以打8折3求:购买笔记本1和笔记本2各n本,可以优惠多少元?新知讲解新知讲解【例】顺序结构流程的具体应用。课堂练习课堂练习根据流程图写出输入语句、表达式和输出语句。n=int(input(请输入两种笔记本购买的数量:)a=3*nb=5*ny=(a+b)
14、*(1-0.8)print(节约的成本为:,y)新知讲解新知讲解计算机程序解决问题的步骤。分析问题设计算法编写程序调试程序4.3 运用选择结构求解问题高中信息技术 必修1新知导入新知导入本节主要内容:(1)单分支if语句(2)双分支语句ifelse(3)多分支语句if.elif.else新知讲解新知讲解单分支语句语法:if(条件表达式):语句块A注意:(1)if(条件表达式)后面加冒号“:”新知讲解新知讲解执行过程:(1)如果条件表达式的值为真,则执行语句块A再往下执行。(2)如果条件表达式的值为假,则跳过语句块A往下执行。流程图:条件表达式语句块Afalsetrue其他语句新知讲解新知讲解例
15、:写一个python程序,输入某个人的年龄age,并判断他是否成年,如果未成年则输出“未成年人!”。新知讲解新知讲解age=input(请输入年龄:)age=int(age)if(age 18):print(未成年人!)print(该人只能玩一个小时游戏!)age 18print(未成年人!)NY程序执行流程图输入ageage=int(input(请输入年龄:)if(age 18):print(未成年人!)print(该人只能玩一个小时游戏!)新知讲解新知讲解双分支语句 语法:if(条件表达式):语句块A else:语句块B注意:(1)if和后面都要加冒号新知讲解新知讲解执行过程:(1)条件表
16、达式为真,执行语句块A,再继续往下执行。(2)条件表达式为假,执行语句块B,再继续往下执行流程图:条件表达式语句块BNY语句块A其他语句新知讲解新知讲解例:写一个python程序,输入某个人的年龄age,并判断他是否成年,如果未成年则输出“未成年人!”,否则输出”成年人!”。新知讲解新知讲解条件表达式语句块BNY语句块A其他语句输入ageage=int(input(请输入年龄:)if(age=90):print(A)print(该同学成绩为优秀!)elif(75=grade=60 and grade75):print(C)print(该同学成绩为中!)else:print(D)print(该同
17、学成绩为差!)新知讲解新知讲解在if语句中包含if语句称为if语句的嵌套。if(表达式1):语句块A if(表达式2):语句块B elif(表达式3):语句块C else:语句块Delif(表达式4):语句块Eelse:语句块F新知讲解新知讲解本课小结本课小结1、if和else语句末尾的冒号不能省略;2、Python通过严格的缩进来决定语句块的开始和结束;3、条件可以是算术表达式、关系表达式或逻辑表达式,也可以是各种类型的数据。4、else不能单独使用,必须结合if才能使用;5、if可以嵌套使用。新知讲解新知讲解4.1.4 Python的函数新知讲解新知讲解函数(1)函数是可重复使用的、用来实
18、现某一功能的代码段。(2)函数必须先定义后使用(3)函数能提高代码的复用率,从而提高程序开发效率。例如:print()函数、input()函数等新知讲解新知讲解(1)在Python中采用def关键字进行函数的定义。(2)函数参数可以是零个、一个或者多个。(3)return语句可以在函数体内任何地方出现,一旦执行到return语句,当前函数执行结束,并返回当前值;函数定义的语法如下:def function_name(参数列表):代码块 return value练习练习写一个程序实现两个数的相加并将结算结果输出,相加过程用函数来完成。def sum(a,b):c=a+b return c#函数定
19、义结束a=2b=3d=sum(a,b)print(d)新知讲解新知讲解Python的常用函数 函数名称使用说明abs(x)返回x的绝对值。len(x)计算变量x的长度,但x必须是可以计算长度的类型。min(x)返回变量x的最小值。max(x)返回变量x的最大值。int(x)把变量x转换成整型。float(x)将变量x转换成浮点型。sum(x)计算变量x中元素的总和。input(x)显示出信息x,并要求输入数据。print()输出函数。课堂练习课堂练习写出下列程序结果。len(x)name=祝成,冯晓如,二兰,苏桐,冯鑫如,冯少东print(“列表中有”,len(name),“个人名)print
20、(长度为,len(name)输出结果:列表中有 6 个人名长度为 6新知讲解新知讲解Python如何实现数据输入?input()函数格式:input(提示信息:)作用:将用户从键盘输入的数据赋值给前面的变量说明:(1)input返回的结果都是字符串类型,需要将其转换为相应的类型再处理。新知讲解新知讲解input()函数常用用法。执行语句 执行结果input(“请输入购买商品的数量:”)请输入购买商品的数量:a=input(“请输入购买商品的数量:”)从键盘输入一个字符串,赋值给a新知讲解新知讲解Python如何实现输出?print()函数格式:print(value1,value2sep=,e
21、nd=)作用:输出表达式的值说明:(1)sep参数是可选的,默认值为一个空格,作用是当同时输出多个参数时,作为元素之间的分隔符(2)end参数也是可选的,默认值为n,作用是让下一个print函数输出的内 容不换行,直接接在后面输出新知讲解新知讲解print()执行语句 显示结果print(4,5,6)4 5 6print(4,5,6,sep=*)4*5*6print(hello,end=)print(world)hello world新知讲解新知讲解调试运行。4.4 运用循环结构求解问题高中信息技术 必修1新知导入新知导入本节主要内容:1、for循环的应用。2、while循环的应用。3、循环嵌
22、套的应用。4、循环控制的应用。新知讲解新知讲解4.4.1 for循环的应用新知讲解新知讲解语法:for 循环控制变量 in 列表/字符串等:语句块注意:冒号“:”,循环体在书写时需要注意缩进新知讲解新知讲解for循环流程图执行过程:for循环依次枚举列表中的每个元素,每枚举一个元素就执行一次循环体语句块。上条语句成员表达式循环语句块下条语句NY新知讲解新知讲解例:写一个程序打印下列列表中的每一个元素,所有元素显示在一行,中间用*分隔。list1=1,34,567,24663,2021程序:list1=1,34,567,24663,2021for i in list1:print(i,end=*
23、)新知讲解新知讲解for循环列表的表达方式:(1)直接罗列列表元素的方式:values=1,2,3,4,5 for value in values:(2)使用range()函数 range函数会返回一个列表,列表元素的值从第一个参数开始到第二个参数止,默认步长为1(不包括第二个参数)。可指定步长。数值列表可以是降序,降序时必须指定步长。for 循环控制变量 in 列表/字符串等:语句块课堂练习课堂练习【例】写出下列程序的输出结果。for letter in(Python):print(当前字母:,letter)课堂练习课堂练习【例】计算1到100之间所有奇数的和sum=0for i in ra
24、nge(1,100):if(i%2=1):sum+=i;print(“奇数和是:”,sum)课堂练习课堂练习【例】计算斐波那契数列的前30项之和。斐波那契数列:1,1,2,3,5,8,13,21,34,55,.提示:除了前两项,后面的每一项是其前两项之和。a=b=1s=2for n in range(3,31):t=a a=b b=t+a s=s+bprint(s)新知讲解新知讲解4.4.2 while循环的应用新知讲解新知讲解语法:while(条件表达式):语句块注意:表达式一般是一个关系表达式或一个逻辑表达式,当然也可以是一个算术表达式;新知讲解新知讲解执行过程:1)当表达式的值为真时,执
25、行循环体语句块;当表达式的值为假时,退出循环,执行循环体外的下一条语句;注:每次循执行完循环体语句后重新判断表达式的值,如果表达式的值还为真,则再执行一次循环体语句块,不断重复上述步骤,直到条件表达式的值为假时,结束整个循环。上条语句表达式循环语句下条语句NY课堂练习课堂练习【例】写一个程序计算自然数的累加和,当累加的和大于2021时,结束累加,并输出最后一个累加的自然数。sum=0i=0while(sum=2021):sum+=i;i=i+1print(最后一个累加的自然数是:,i-1)课堂练习课堂练习【例】写出下列程序的输出结果。i=1while i 7:print(i)i+=2print
26、(i)新知讲解新知讲解4.4.3 循环嵌套的应用新知讲解新知讲解循环嵌套的定义:在一个循环体内又包含另一个循环。嵌套可以分为多层。在编写程序代码时,循环嵌套的书写要注意各层循环的代码缩进。新知讲解新知讲解循环嵌套的执行过程:(1)当外层循环条件为True时,则执行外层循环中的循环体语句块;(2)当内层循环的循环条件为True时会执行内层循环中的循环体语句块,直到内层循环条件为False,才跳出内循环;(3)此时如果外层循环的条件仍为True,继续执行外层循环体,直到外层循环的循环条件也为False,整个嵌套循环才算执行结束;for i in range(1,5):for j in range(
27、1,5):print(j,end=)print()新知讲解新知讲解【例】写一个程序,判断并输出100以内的所有素数。for i in range(2,100):tag=0;for j in range(2,i):if(i%j=0):tag=1 if(tag=0):print(i)新知讲解新知讲解4.4.4 循环控制语句的应用新知讲解新知讲解循环控制语句的作用:循环控制语句可以更改语句执行的顺序。控制语句描述break 语句break能够终止整个循环continue 语句continue语句在语句块执行过程中能够终止此次循环,并继续执行下一次循环。新知讲解新知讲解【例】break 实例应用。fo
28、r letter in Python:if letter=h:break print(当前字母:,letter)新知讲解新知讲解【例】continue 实例应用。for letter in Python:if letter=h:continue print(当前字母:,letter)新知讲解新知讲解for i in range(2,100):tag=0;for j in range(2,i):if(i%j=0):tag=1 if(tag=0):print(i)【例】下面是判断并输出100以内素数的程序,请你用break语句进行优化,让程序执行的更快。二、非选择题1编写程序实现:输人一个人的出生年份(大于等于1900),就能输出他的生肖,直到输入0结束程序。运行结果如图所示:(1)在编程过程中使用Python中的列表,如输入如下图所示的代码,保存后运行,输出的结果是_zodiac=“鼠”,”牛”,”虎”,”兔”,”龙”,”蛇”,”马”,”羊”,”猴”,”鸡”,”狗”,”猪”print(zodia1)(2)阅读下面的程序代码,可以看出,段程序的功能是_(3)阅读下面的程序代码,完善中的代码,可以实现上述功能。