内容正文:
第三章│算法的程序实现
第7课 数据类型与表达式 基本数据结构(见学生用书P24)
——3.2 Python语言程序设计,教材第72~79页
1.掌握Python常见的数据类型。 2.掌握Python常见的算术运算符、关系运算符、逻辑运算符。
3.掌握Python变量和赋值语句。 4.掌握Python基本数据结构(字符串、列表、字典)。
1.Python是一种面向对象、解释型的计算机程序设计高级语言。
2.数据类型与表达式
(1)数据类型
数据按照其本身特征可以分为若干种不同的类型,常见的Python基本数据类型如下表所示。
数据类型
数据表示形式
举例
整型(int)
数学中的__整数__(正整数,0,负整数)、二进制数(用0b前辍)、八进制数(用0o前辍)、十六进制数(用__0x__前辍)(长度无限制,可表示任意整数)
-2,56,0,0x2f
实型(float)
数学中的__实数__,可用科学记数法表示的实数(存在上下限,会溢出)
3.14,-5.6,1.2e2
字符串型
(string)
一段__文字与符号__,用单引号、双引号或三引号表示
'x',”abc”
布尔型(bool)
逻辑型,只有两种值:__True__和__False__
1==1.0结果为True
(2)Python的基本运算包括__算术运算__、__关系运算__和__逻辑运算__三大类。其中,算术运算存在优先级顺序,优先程度最高级别为__1__,级别数字越大,优先级越__低__,同优先级的基本运算按照__自左向右__的顺序执行。
①算术运算符
基本运算
运算符
表达式
表达式的值
优先级
乘幂
__**__
25**0.5
__5__
1
乘
*
3*4
12
2
实数除
/
3/2
__1.5__
2
整数除
__//__
3//2
1
2
求余数
__%__
8%5
__3__
2
加
+
7+2
9
3
字符拼接
__+__
'7'+'2'
__'72'__
3
减
-
7-2
5
3
②关系运算符:相当于“比较运算”,用来比较两个数据(数值型数据或字符串型数据)的大小,或判断两数据是否相等。
关系运算
运算符
优先级
表达式
表达式的值
表达式
表达式的值
大于
>
4
7>4
True
'5'>'12'
__True__
小于
<
4
7<4
__False__
'123'<'124'
True
大于或等于
__>=__
4
10>=20
False
'123'>='12'
True
小于或等于
<=
4
10<=20
True
'VB'<=
'Python'
__False__
等于
__==__
4
8%4==2
__False__
'123'=='123'
True
不等于
!=
4
7//4!=1
__False__
'1'!='123'
True
成员资格
__in__
5
'H' in 'Hello'
__True__
—
—
③逻辑运算符
逻辑运算
运算符
优先级
描述
表达式
表达式的值
非
__not__
6
反转逻辑状态
not 3>2
__False__
与
and
7
两个条件__都为真__时,结果为真
3>2 and 4>3
__True__
或
__or__
8
只要其中一个条件为真,结果为真
3<2 or 4<3
False
④复合赋值运算符
复合运算符
运算符
表达式
表达式的值
加法赋值运算符
+=
a+=3
等价于a=a+3
减法赋值运算符
-=
a-=3
等价于__a=a-3__
乘法赋值运算符
*=
a *=3
等价于a=a*3
实数除法赋值运算符
/=
a/=3
等价于a=a/3
整数除法赋值运算符
//=
a//=3
等价于__a=a//3__
取余赋值运算符
%=
a%=3
等价于a=a%3
幂赋值运算符
**=
a**=3
等价于__a=a**3__
3.变量和赋值语句
(1)变量
①由于Python是动态类型语言,因此在使用前不需要预先声明变量的数据类型。
②变量是指在执行过程中可以被修改、发生改变的数据(注意:变量的类型和值都可以改变)。
③变量命名规则:可以包括字母、数字和下划线,但不能以数字开头,不能与关键字(保留字)同名,字母区分大小写。
④例如,Plan19=25.0语句创建了一个名为Plan19的变量,变量的类型是实型且值为25.0。
(2)赋值语句
①赋值符号用“=”表示,一般形式为:变量=表达式,将赋值符号右边表达式的值赋给赋值符号左边的变量。
②序列赋值:可以为多个变量分别赋予不同的值,变量之间用英文逗号隔开。 例如,name,age,score,value='李四',20,95.5,'A'。
③多目标赋值:同一个值赋值给多个变量。例如,x=y=z=1。
④其中:a,b=b,a表示两个变量值的交换(不借助第三变量)。
4.基本数据结构
(1)字符串是由0个或多个字符组成的序列。
下标索引:利用方括号“[]”可以通过索引得到相应位置(下标)的字符。
下标排序规则:s=”6月高考加油,奋斗到底!”,字符串长度:12(元素个数)。
(2)列表是由0个或多个元素组成的序列,其中的元素可以是数字、字符串等混合类型的数据,甚至是其他的列表。
下标索引:利用方括号“[]”可以通过索引得到相应位置(下标)的元素。
下标排序规则:list1=['blue',2,'white',5,'red',2,'green',3]。
(3)字典中的每个元素包含两部分内容:键和值。键和值两者一一对应,且每个键只能对应一个值。键和值在字典中以成对的形式出现,元素排列无序。键——值对用冒号分隔,各个对之间用逗号分隔,所有元素包含在花括号“{}”中。引用元素时,利用方括号“[]”,并以键为索引。
1.字符串切片函数:以S='6月高考加油,奋斗到底!'为例
函数
功能
应用举例
返回值
S[start:stop:step]
对字符串下标[start,stop)
进行步长为step的提取
S[0:12:2]
'6高加,斗底'
S[start:stop]
步长为1时,step可省略
S[0:2]
'6月'
S[:stop]
start为0时,可省略
S[:-9]
'6月高'
S[start:]
stop为字符串长度时,可省略
S[4:]
'加油,奋斗到底!'
S[:]
start,stop为默认值时,可省略
S[:]
'6月高考加油,奋斗到底!'
.列表常见函数:以list1=['Python','Java','C++']为例
函数
功能
应用举例
说明
list[start:stop:step]
对列表下标[start,stop)间进行步长为step的提取
list1[1:]
切片后为['Java','C++']
list.append(obj)
在列表末尾添加新的元素
list1.append
('C#')
添加后为['Python','Java','C++','C#']
list.pop
([index==-1])
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
list1.pop(1)
删除后为['Python','C++']
list.insert(index,obj)
将相应元素插入列表指定位置
list1.insert
(1,'C#')
插入后为['Python','C#','Java','C++']
下列不能作为Python变量名的是( A )
A.123ABC B.ABC123 C.A_1 D._A1
【解析】 变量名不能以数字开头,选项A符合题意。
下列赋值语句中正确的是( A )
A.a=5 B.5=a C.x+y=a D.x-y=a
【解析】 赋值语句左边为变量,右边为表达式或常量。
变式 给变量a、b、c分别赋值1、2、3,则下列语句正确的是( D )
A.a=1:b=2:c=3 B.a=1 b=2 c=3
C.a=1,b=2,c=3 D.a,b,c=1,2,3
【解析】 选项D为序列赋值,依次给变量赋值。选项A、B、C,要在一行代码上实现多个语句,中间应用分号“;”分隔。
2024·温岭中学检测Python表达式11%4* 2+-3**2的值是( B )
A.-6 B.-3 C.12 D.15
【解析】 =11%4*2+-3**2
=11%4*2-9
=3*2-9=6-9
=-3
变式1 下列Python 表达式中,结果为”61”的是( C )
A.6+1 B.61//10*10
C. ”6”+”1” D. ”61” in ”20220610”
【解析】 选项A,结果是7;选项B,结果是60;选项D,结果为True,选项C,结果为“61”,符合题意。
变式2 某购物平台经常推出满减优惠活动, 比如“跨店每满299减50元”。顾客采购物品原价为z元, 根据“跨店每满x减y元” 活动规则需支付s元。下列计算模型比较合理的是( D )
A.s=z//299*50 B.s=z-z//299*50
C.s=z//x*y D.s=z-z//x*y
【解析】 需支付s元,则是原价减去折扣,需要将具体数字用符号表示,选项D正确。
下列Python表达式中,不能表示“x属于区间[a, b)”的是( C )
A.not (x<a or x>=b) B.x>=a and x<b
C.not (x<=a and x>b) D.a<=x<b
【解析】 “x属于区间[a,b)”可以表示为 a<=x<b;选项C表示为 a<x<=b ,与要求不符。变式1 有100 位同学排成一列,从第一位同学开始按1 至100 的序号进行报数,所报序号含有6 的同学需要出列。则判断序号x 是否出列的Python 表达式是( D )
A.x%10==6 B.x//10==6
C.x%10==6 and x//10==6 D.x%10==6 or x//10==6
【解析】 所报序号含有6,可以是个位上有6或者十位上有6,“x%10==6”判断个位上是否有6,“x//10==6”判断十位上是否有6,选项D正确。
变式2 在Python 中,若x、y 都是正整数且x%y==2,则下列表达式一定为True 的是( B )
A.x*y%2==0 B.x//y!=x/y C.x<y D.x%2==1
【解析】 “x%y==2”表示x整除y的余数为2,x可以是x=n*y+2(n in [0,1,2,3…])。选项A,y并不一定是偶数,选项错误;选项B,当x不能被y整除时,整除的结果与实数除的结果不相等,选项正确;选项C,x可以比y大,选项错误;选项D,x可能是偶数,选项错误。
某证件号码由18 位数字组成,其中第7~14 位表示出生日期。用字符串变量s 存储该证件号码,下列Python 表达式中能提取出生日期的是( D )
A.s[7:14] B.s[6:13]
C.s[7:-5] D.s[-12:-4]
【解析】 正向索引时,[x:y]只能提取到y位置的前一个,正确的表达式为s[6:14];选项D为负数索引,提取范围正确。
变式 2024·黄岩中学检测已知变量 s=”2022China”,则表达式 s[-1]+s[2]*2 的值是( B )
A. ”a4” B. ”a22” C. ”n22” D. ”a0”
【解析】 s[-1]的值为”a”,s[2]的值为”2”,s[2]*2的值为”22”,字符串之间用+表示连接,选项B正确。
各评委对某选手的评分为83,85,87,75,95,87,88,90,79。在核对成绩时发现有误,错误录入的得分为score=[83,85,78,27,92,87,88,90,79],下列选项中可以实现正确修改的是( C )
A.score[3:5]=[87,75,95] B.score[2:4]=[87,75,95]
C.score[-7:-4]=[87,75,95] D.score[-6:-3]=[87,75,95]
【解析】 利用方括号“[]”可以通过索引得到相应位置(下标)的字符,右正向索引与负数索引两种方式,都只能取到结束位置的前一个位置,选项C正确。
变式1 已知列表a=[2,3,4,5],要将列表a 更新为[1,2,3,4,5],则下列可实现该操作的语句是( C )
A.a=”1”+a B.a.append(1)
C.a=[1]+a D.a=1+a
【解析】 append()是在列表的末尾添加元素,不符合题目要求;可通过列表相加得到新列表,即如选项C 所示,可以实现该操作。
变式2 已知a=[1,3,5,7,9],下列表达式的值大于a[3]的是( B )
A.a[1]*a[2]//2 B.a[1]+5
C.a[-1]-a[1] D.a[3]**2%5
【解析】 a[3]的值为7;选项A的值为7;选项B的值为8;选项C的值为6;选项D,49%5=4。选项B正确。
用Oil_dic={”92号”:8.73,”95号”:9.14}存储油价信息,经核实后92号油价是8.61,正确修改的语句是( D )
A.Oil_dic[0]=8.61 B.Oil_dic[92号]=8.61
C.Oil_dic[1]=8.61 D.Oil_dic[”92号”]=8.61
【解析】 “:”前是键,引用元素时,利用方括号“[]”,并以键为索引,选项D正确。
变式 2024·缙云中学检测浙江省车牌号(如:浙J·AB888)首字母对应的城市名称用字典存储如下:city={”A”:”杭州”,”B”:”宁波”,”C”:”温州”,”D”:”绍兴”,”E”:”湖州”,”F”:”嘉兴”,”G”:”金华”,”H”:”衢州”,”J”:”台州”,”K”:”丽水”,”L”:”舟山”},若输入语句为:LPN=input(”请输入车牌号码: ”),则下列能正确输出城市名称的语句是( C )
A.print(city[LPN(1)]) B.print(city{LPN[1]})
C.print(city[LPN[1]]) D.print[city[LPN[1]]]
【解析】 print是输出函数,所以用括号表示,即形如print(),选项D错误;city 是字典,对字典进行索引应该表示成形如city[],选项B错误;而输入语句LPN=input(”请输入车牌号码:”)输入的是字符串,对字符串索引应表示成形如LPN[],选项A错误,故选项C正确。
|随|堂|检|测|
1.将数学表达式写成Python 表达式,下列表达式中正确的是( C )
A.(2a*c)** 0.5/a+b B.(2*a*c) *0.5/(a+b)
C.(2*a*c)**0.5/(a+b) D.(2*ac) **0.5/(a+b)
【解析】 a+b需要先计算,需要加上“()”;根号使用“**0.5”实现,故选项C正确。
2.Python表达式77//2-9%2-2**3*3的值是( A )
A.13 B.38
C.1 D.24
【解析】 先计算2**3=8;再依次计算77//2、9%2、8*3,最后计算“-”,选项A正确。
3.若x 是整型变量,下列选项中与表达式not (x>=1 and x<5)等价的是( D )
A.x<1 and x>5 B.not x>=1 or x<5
C.x<1 and x<5 D.x<1 or x>=5
【解析】 not (x>=1 and x<5)即not x>=1 or not x<5,即x<1 or x>=5,选项D正确。
4.2024·龙游中学检测已知字典dic存放学生的姓名和对应的语数英成绩,dic={”姓名”:”小红”,”语文”:101,”数学”:118,”英语”:132},现要在字典dic中增加一个键为”技术”,值为97的元素,下列语句正确的是( C )
A.dic[技术]=97 B.dic[”技术”]=[”技术”:97]
C.dic[”技术”]=97 D.dic[”技术”]={97}
【解析】 字典增加元素的方法为:字典名[键名]=键值。选项C正确。
5.已知x=”苹果,50”,y=[”苹果”,50],z={”苹果”:50},下列Python表达式的值为True的是( D )
A.x[-4::-1]==y[0] B.y[1] in z
C.x[3:5]==y[1] D.z[y[0]]==50
【解析】 选项A,x[-4::-1]=”果苹”,y[0]=”苹果”,表达式的值为False;选项B,字典中的键为”苹果”,y[1]=50,表达式的值为False;选项C,x[3:5]=”50”,y[1]=50,数据类型不同,表达式的值为False。
6.2024·衢州二中检测下列表达式的结果为True 的是( D )
A.4>=5<9 B.[1,2,3]==[3,2,1]
C.'abcd'[0:2]=='abc' D.10//3**3==0
【解析】 选项A, 4>=5<9 等价于4>=5 and 5<9,结果为False,选项错误;选项B, [1,2,3] 不等价于[3,2,1],结果为False,选项错误;选项C,'abcd'[0:2]的值为'ab', 'ab'不等价于'abc',结果为False,选项错误;选项D,10//3**3 等价于10//27=0,0==0 结果为True,选项正确。
7.2024·东海中学检测要从身份证号码中取出“出生日期”的信息(第 7~14 位),下列 Python 表达式不正确的是( B )
A.s[6:14] B.s[-5:-13]
C.s[6:][:8] D.s[:-4][6:]
【解析】 选项A,索引从0开始,选项正确;选项B,步长省略默认为1,该处使用负索引,取值为空,选项错误;选项C、D 为二次切片,注意的是切完第一次之后索引重新编排,例如s[6:][:8]为先将s 从索引6 切到最后,然后将这个结果从头切到索引8 的位置,选项正确。
温馨提示:请完成高效作业7 )
学科网(北京)股份有限公司
$$