资源简介 课时4 Python语言基础【学业要求】知识点 学业水平等级1.掌握Python的基本数据类型和算术、关系和逻辑运算符。 22.掌握Python基本数据结构,字符串,列表,字典。 2 利用算法并编写程序代码,解决生活实际问题是信息技术考查的重点,因此要求学生了解并掌握一门程序设计语言。在高考真题中,虽然没有直接考查Python语言的基础,但也体现对基础知识的应用,如字符串的切片、拼接,数组元素的遍历和移动等。在一轮复习时,还是很有必要对这块知识进行回顾和复习。(2024年6月浙江选考)若字符串s的值为"abcde",执行如下程序段后,变量res的值不可能是( )from random import randintres=""i,j=0,len(s)-1while i=i: if randint(0,1) == 0: #randint(0,1)随机生成0或1 res+=s[i] i+=1 else: res+=s[j] j-=1A."abced" B."aecbd"C."aedbc" D."edcba"答案 B解析 本题考查字符串的遍历。变量i和j从两端向中间遍历,当i大于j时结束循环。若产生随机数为0,将s[i]连接到res中,向后移动i,否则将s[j]连接到res中,向前移动j。A选项产生的随机数为0,0,0,1,0。B选项产生"ae",i和j分别指向b和d,因此不可能连接到c。C选项产生的随机数为0,1,1,0,0或0,1,1,0,1。D选项产生的随机数均为1或1,1,1,1,0。1.Python常见的数据类型: 型、实型、 型、布尔型。 2.Python中有**, ,/,∥,%,+,-,七种算术运算符,<,<=,>,>=,==, ,in,七种关系运算符,以及not, ,or三种逻辑运算符。 3.变量是指程序运行过程中可以 的量,赋值就是给变量赋予某个“值”。 4.Python常见的内建函数:print(x)、input([prompt])、int(object)、float(object)、abs(x)、help()、len(seq)、str(x)、chr(x)、ord(x)、round(x[,n])、max(s,[,args...])、min(s,[,args...])。5.Python中基础,常用的数据结构: , , 。 6.字符串和列表都是由一些数据元素共同组成的一个序列整体。字符串用 号、双引号或三引号表示。列表用方括号“ ”表示,元素之间用逗号“,”分隔。 7.创建名为 的列表:list=[元素1,元素2,…… ,元素n]。 8.访问单个元素的方式:列表名[ ],字符串[索引号]。 9.访问一定范围内的多个元素,列表名[开始元素序号: 元素序号的后一个字号:步长] 步长:正负数均可,正数表示“从左往右"取值,负数表示“从右往左"取值,步长的绝对值大小决定了访问数据的步长。步长省略时,默认为1。开始元素序号:表示起始索引,该参数省略时,表示从列表的左端点开始取值。结束元素序号的后一个序号:表示终止索引,该参数省略时,表示一直取到列表的右端点。在索引查找时,不能访问一个不存在的元素,程序会报错,提示索引值越界。10.字典可包含多个元素,每个元素包含两部分内容: 和值。键通常用字符串或数值表示,值可以是任意类型的数据。键和值两者一一对应,每个键只能对应 个值。 11.字典中的元素是 顺序的,引用元素时以 为索引。创建名为dic的字典:dic= {键1:值1,键2:值2,…… ,键n:值n}。 自我校对:1.整 字符串 2.* != and 3.改变5.字符串 列表 字典 6.单引 [] 7.list 8.索引号 9.结束 10.键 一 11.没有 键 【典例1】 下列python表达式的值为True的是( )A."3">"12" and "apple">"app"B."school"[:2]=="sch"C."sd" in "student"D.round(-4.6)==int(-4.4)思维点拨明考向 本题考查Python表达式精点拨 A "3">"12"为True,"apple">"app"也为True,因此结果为TrueB "school"[:2]值为"sc",两者不相等C "student"不存在"sd"子串D round(-4.6)值为-5,而int(-4.4)值为-4答案 A【变式1】 某银行的理财产品收益计算规则为:理财收益=本金×年化预期收益÷360天×理财天数。若某用户购买该理财产品的本金为M,年化预期收益为Y,理财天数为t,则计算理财收益(四舍五入保留1位小数)的Python表达式应为( )A.M*Y/360*tB.int((M*Y/360*t)*10+0.5)/10C.float(M*Y/360*t)D.abs(M*Y/360*t)答案 B解析 本题考查Python表达式。对一个数x四舍五入保留1位小数的表达式为(x*10+0.5)/10,根据公式,收益表达式为M*Y/360*t,答案为B。【典例2】 列表IDlist存储了某校所有学生身份证号码,如要分别统计1-12月份出生的人数,Python程序代码如下:count=[0]*12for i in : mon=int(i[10:12]) #从身份证中提取月份 for i in range(12): print(i+1,"月份人数为",count[i])为实现上述功能,划线处自上而下依次填入的代码是:①IDlist ②range(len(IDlist)) ③count[mon-1]+=1 ④count[mon]+=1代码顺序正确的是( )A.②③ B.②④C.①④ D.①③思维点拨明考向 本题考查字符切片和列表的索引相关知识精点拨 列表IDlist存储了某校所有学生身份证号码,且对变量i进行切片,因此序列为列表IDlist。出生的月份为1-12,而count定义为[0]*12,其索引位置为0-11,因此需存储在索引为mon-1的列表元素答案 D【变式2】 中国大陆第二代居民身份证由18位数字组成,其中第7至14位数字代表居民的出生年月日,现将身份证号码保存在字符串变量sf中,小明想提取出身份证上的出生年月日,以下四个选项中错误的是( )A.sf[7:15] B.sf[6:14]C.sf[-12:-4] D.sf[6:-4]答案 A解析 本题考查字符串的切片。第7至14位数字对应的索引值为6-13,第14位数字的负索引为-5。A选项索引应从6开始,因此错误。B选项索引第13位数字若要取得,右边界为14。C选项索引6对应的负索引为-12,因此C选项正确。D选项从6开始,取到-5,步长为1,因此右边界为-4。【典例3】 天干地支,源自中国远古时代对天象的观测,十天干和十二地支依次相配,两者按固定的顺序搭配,组成天干地支纪年法。干支纪年一个周期第一年为“甲子”,第二年为“乙丑”,依此类推,60 年一个周期。十二地支与十二生肖相配,是中国民间计算年龄的方法,如 1984 年为甲子年,生肖为鼠。已知年份的最后一位数字对应天干,用已知年份除以 12,求得的余数代表地支。对应关系如下:数字 4 5 6 7 8 9 0 1 2 3天干 甲 乙 丙 丁 戊 己 庚 辛 壬 癸数字 4 5 6 7 8 9 10 11 0 1 2 3地支 子 丑 寅 卯 辰 巳 午 未 申 酉 戌 亥生肖 鼠 牛 虎 兔 龙 蛇 马 羊 猴 鸡 狗 猪(1)按照上述算法,2022年对应的天干地支生肖为 。 (2)将程序划线处补全代码。year=int(input("请输入年份:"))#天干字典dic1={4:"甲",5:"乙",6:"丙",7:"丁",8:"戊",9:"己",0:"庚",1:"辛",2:"壬",3:"癸"}#地支字典dic2={4:"子",5:"丑",6:"寅",7:"卯",8:"辰",9:"巳",10:"午",11:"未",0:"申",1:"酉",2:"戌",3:"亥"}a=① b=year%12c=dic1[a]+② print("天干地支为:",c)#生肖字典,以地支为"键",以生肖为"值"dic3={"子":"鼠","丑":"牛","寅":"虎","卯":"兔","辰":"龙","巳":"蛇","午":"马","未":"羊","申":"猴","酉":"鸡","戌":"狗","亥":"猪"}print("生肖为:",③ ) (3)地支“子”对应的生肖应为“鼠”,修改字典dic3对应内容的语句为 。 思维点拨明考向 本题考查字典的综合应用精点拨 (1)通过对题干的解读可得2022最后一位为2,天干对应壬,除以12后余数为6,地支对应寅,因此答案为壬寅虎。(2)①解读程序可得c为天干地支连接起来的值,因此a表示天干,需要得到年份的最后一位,用year%10。②b为年份除以12的余数,用作访问字典dic2的键,因此答案为:dic2[b]。③最后需要再加上生肖,dic2的值为访问dic3的键,因此答案为:dic3[dic2[b]]。(3)修改字典与新增的方法一样答案 (1)壬寅虎 (2)①year%10 ②dic2[b] ③dic3[dic2[b]] (3)dic3["子"]="鼠"【变式3】 通过调查发现,人们普遍认为带有数字2、6、8的车牌比较吉利,而带有数字4的车牌则不吉利。小石想通过编写程序来计算车牌的吉利值:其中数字2吉利值为1,数字6吉利值为2,数字8吉利值为3,数字4的吉利值为-2,其他数字吉利值为0。如车牌号“浙H94286”的吉利值为4。程序代码如下:dic={"2":1,"6":2,"8":3,"4":-2}cp=input("请输入车牌号(格式如“浙H94286”):")count=0for i in range(2,① ): x=cp[i] if x in ["2","4","6","8"]: count+=② print("该车牌号的吉利值为:",count)为实现功能,划线处代码应为( )A.①len(cp)-1 ②dic[x]B.①len(cp) ②dic[int(x)]C.①len(cp)-1 ②dic[int(x)]D.①len(cp) ②dic[x]答案 D解析 本题考查字典的综合应用。从语句x=cp[i]来看,变量i是cp字符串的索引位置,且for结构为左闭右开的区间,因此①处的值为len(cp)。变量x的类型为字符串,因此可以作为字典dic的键,无需转化。 数据是程序运行的原料,Python的基本数据类型有整型、实型、字符串型和布尔型等,但相同类型的数据往往存储在列表或字典中,列表是有序线性结构,可以通过索引去访问每个元素的值,而字典是无序的,只能通过键去访问其值。对数据的操作有多种运算符,内置的函数能快速地解决一些求和、平均值排序等常见的问题。1.下列Python表达式结果最小的是( )A.int("1"+"3")//4B.1314//100%10C.2**3//3+8%2*3D.round(20**0.5+int(-1.6))答案 C解析 本题考查Python表达式和自定义函数。A选项为int("13")∥4=3。B选项1314∥100=13,13%10=3。C选项乘方的优先级高于整除等,2**3∥3=8∥3=2,8%2*3=0*3=0。D选项int(-1.6)=-1,17**0.5即17的平方根,介于4和5之间,靠近4,因此选项D结果为3。2.下列Python表达式中,计算结果最大的是( )A.abs(2-4**2) B.len("ord(A)")C.3**3//2 D.int(1.34*10+0.5)答案 A解析 本题考查Python表达式和函数应用。A选项4**2=16,abs(2-16)=14。B选项字符串"ord(A)"的长度为6。C选项3**3=27,27//2=13。D选项1.34*10+0.5=13.9,int(13.9)=13。3.下列Python表达式中,值为True的是( )A.1>ord("0") B.20//6<20%6C.5%3**2==4 D."49"<"7"答案 D解析 本题考查Python表达式。A选项"0"的ASCII码值并不是0,是比1大好多的值。B选项20//6值为3,20%6值为2,而3>2。C选项开方优先级大于整除,3**2值为9,因此5%9值为5。D选项第1个字符"4"<"7",因此"49"<"7"成立。4.有100位同学排成一列,从第一位同学开始按1至100的序号进行报数,所报序号含有6的同学需要出列。则判断序号x是否出列的Python表达式是( )A.x%10==6B.x//10==6C.x%10==6 and x//10==6D.x%10==6 or x//10==6答案 D解析 本题考查逻辑表达式的应用。所报序号含有6,即个位数或十位数是6,表达式x%10的功能是取出个位数,x//10的功能是去除个位数,两个条件只要符合一个即可。A选项仅仅表示十位数包含6。B选项仅仅表示个位数包含6。5.某超市用13位数字标识商品信息,其中8~12位是表示商品名的代码,用字符串变量s存储商品的信息码(例如:s="9787100109796",商品名代码是"10979"),下列Python表达式中能取出商品名代码的是( )A.s[-6:-1] B.s[7:11]C.s[8:12] D.s[7:-2]答案 A解析 本题考查字符串的切片。A选项在索引序号为倒序的情况下,从-1开始,则切片序号为-6:-1。B选项商品名代码位置为8至12位。而字符串的索引从0开始到11结束,在切片时终值取不到,切片序号为7:12。C选项起始位置不对,第8个位置的索引为7。D选项结束位置不对,取到倒数第2个,则需用-1表示。6.左右对称的字符串称回文串。若要判断字符串s是否为回文串,可以先找到s的中间位置mid=len(s)//2;再采用切片操作取出s的左半部分left=s[0:mid];然后取出s的右半部分并反转,存储在变量right中;若left与right相等,则为回文串。则下列表达式能正确表达变量right值的是( )A.s[mid::][::-1]B.s[mid+1::][::-1]C.s[len(s)-1:mid:-1]D.s[-1:-mid-1:-1]答案 D解析 本题考查字符串的切片。回文字符串左边一半为1至mid-1,其索引为0至mid,右边一半为倒数第1个至倒数第mid个,因此索引为-1至-mid,步长为-1,但range的右边界要取到,必须加上步长。7.已知字典dic={"姓名":"小明","语文":115,"数学":120,"英语":108},下列说法不正确的是( )A.dic["语文"]+dic["数学"]+dic["英语"]的值是343B.若要将学生姓名更改为"小华",可执行语句dic["姓名"]="小华"C.若要添加该同学的技术成绩为75,可执行语句dic["技术"]=75D.dic["英语"] in dic的值为True答案 D解析 本题考查字典的属性。A选项dic["语文"]、dic["数学"]和dic["英语"]的值依次为115、120和108,三者相加为343。B选项每个键值 key:value 对用冒号“:”分割,用字典dic中创建或修改键key的值为value语句为dic[key]=value,当键key不存在时,会创建一个键值对,若键key存在,则会修改其对应的值。C选项技术在字典中不存在,因此为创建一个新键值对。D选项"英语" in dic值为True,而dic["英语"]值为108,而字典中没有这个键。8.王老师用字典存储了学生的学号、班级、姓名数据,如:stu={"20230324":["1班","张三"],"20231223":["2班","李四"]...},则获取学号为“20230324”同学姓名的Python表达式是( )A.stu[0][1]B.stu["20230324"][1]C.stu["20230324"]["姓名"]D.stu{"20230324"}[1]答案 B解析 本题考查字典的属性。A选项字典不是有序序列,不能按索引取值。stu中没有名为0的键,B选项"20230324"为键,stu["20230324"]为该键对应的值["1班","张三"],姓名的索引为1。C选项stu["20230324"]的值为["1班","张三"],是列表,应按位置取值。D选项不能用stu{"20230324"}来表示键值对。9.某化合物是由C、H和O三种元素组成,可用通式CiHjOk来表示,其中i,j,k是1到9之间的整数。某元素的质量分数计算方法=(该元素相对原子质量*该元素原子个数)/该化合物的相对分子质量。A=input('请输入化合物:') #如输入C2H4O2dic={'C':12,'H':1,'O':16}sum_total=0sum=dic[A[0]]*int(A[1])for i in ① : sum_total+=② print('C元素的质量分数:',sum/sum_total)划线处应填入的代码为( )A.range(2,len(A),2)dic[A[i]]*A[i+1]B.range(0,len(A),2)dic[A[i-1]]*int(A[i])C.range(0,len(A),1)dic[A[i]]*int(A[i+1])D.range(0,len(A),2)dic[A[i]]*int(A[i+1])答案 D解析 本题考查字典的应用。C、H和O三种元素在通式CiHjOk的0、2、4位置,排除选项AC。该元素相对原子质量*该元素原子个数,A[i]和A[i+1]分别表示原子质量和原子个数,他们对应的值在dic字典中。1.下列Python表达式中值最大的是( )A.ord("A")% round(2.6)B.6//2+(-2)%6C.int("6"+"2")/abs(-10)D.len("1234")*2答案 D解析 ord("A")%round(2.6)=2,B选项值为7,C选项值为6.2,D选项值为8。2.下列表达式中,值为True的是( )A."Xj" in "Xuejun"B.abs(int(-2.9))==len("xjx")C."xj">"XJ" and 5**2>2**5D."Xuejun"[:3]=="Xue"答案 D解析 B选项abs(int(-2.9))=2,C选项5**2>2**5即25>32,值为False。3.下列表达式中,值为True的是( )A.not abs(-12.7)>12B.3**2<=2**3C.round(3.1415,3)==3.141 and "2" in "3+27"D.3!=1+2 or 5>=5答案 D解析 A选项abs(-12.7)=12.7,因此值为False。B选项9<=8,值为False。C选项round(3.1415,3)=3.142。4.下列Python表达式值为True的是( )A."average"[3:5]=="er"B.30%7+10//2**3==3C.abs(int(-4.95))==5D.4 in range(4)答案 B解析 D选项range(4)值为0,1,2,3,该序列中没有4。5.已知变量s="2022py",则表达式s[2]*2+s[-2::]的值是( )A."22p" B."4py"C."22py" D."4p"答案 C解析 s[2]*2="2"*2="22",s[-2::]="py"。6.若a="20230678",b=["2","4","6"],则表达式a[5:]+b[2:1:-1]*3的值是( )A."24" B."696"C."678666" D."0678444"答案 C解析 a[5:]="678",b[2:1:-1]="6",表达式a[5:]+b[2:1:-1]*3的值"678"+"6"*3="678666"。7.有如下Python程序段:f=["begin","burn","dig","Dairy","delay","hit","cabbage","hang"]dic={}for line in f: if line[0] in dic: dic[line[0]]+=1 else: dic[line[0]]=1print(dic)运行程序后,下列说法正确的是( )A.字典dic中的键值对共有4对B.dic["Dairy"]的值为3C.字典dic的作用是统计每个单词出现的次数D.字典dic中值为2的键值对有3对答案 D解析 遍历列表f,如果单词存在于字典dic中,将其对应的值增加,否则新建一个键,值为1。dic的内容为{'b':2,'d':2,'D':1,'h':2,'c':1}。8.有如下Python程序段:a=[1,9,8,2,0]x=2t1=a[0]for i in range(1,x+1): t2=a[i] a[i]=t1 t1=t2a[0]=t1运行该程序段后,a的值为( )A.[9,1,8,2,0] B.[2,1,9,8,0]C.[8,1,9,2,0] D.[1,9,2,0,8]答案 C解析 程序的功能是将数组前x+1个元素(索引0到x)向右循环移动一位。i为1时,a的值为[1,1,8,2,0]。i为1时,a的值为i为[1,1,9,2,0]。循环结束后,t1赋值给a[0],a的值为[8,1,9,2,0]。9.有如下Python程序段:from random import randints="ABCDE"r1,r2="",""i=0while i < len(s): f=randint(0,1) if f==0: r1=r1+s[i] else: r2=r2+s[i] i=i+1print(r1+r2)运行程序后,输出的内容不可能是( )A.BCDAE B.CEABDC.ACBDE D.ACEDB答案 D解析 本题考查的是字符串操作。遍历字符串s,通过随机数f决定字符先加入r1还是r2,最终返回r1+r2。A选项f的值依次为0,1,1,1,0,t1的值为"AE",t2的值为"BCD"。B选项f的值依次为0,0,1,0,1,t1的值为"CE",t2的值为"ABD"。C选项f的值依次为0,1,0,1,1,t1的值为"AC",t2的值为"BDE"。D选项f前3个值肯定为0,1,0,那么"D"应该在"E"前面接入t1中。(共51张PPT)必修一 数据与计算课时4 Python语言基础知识点 学业水平等级1.掌握Python的基本数据类型和算术、关系和逻辑运算符。 22.掌握Python基本数据结构,字符串,列表,字典。 2目 录CONTENTS真题剖析01知识梳理02课堂突破03当堂检测04课后作业05真题剖析1 利用算法并编写程序代码,解决生活实际问题是信息技术考查的重点,因此要求学生了解并掌握一门程序设计语言。在高考真题中,虽然没有直接考查Python语言的基础,但也体现对基础知识的应用,如字符串的切片、拼接,数组元素的遍历和移动等。在一轮复习时,还是很有必要对这块知识进行回顾和复习。from random import randintres=""i,j=0,len(s)-1while i=i: if randint(0,1) == 0: #randint(0,1)随机生成0或1 res+=s[i] i+=1 else: res+=s[j] j-=1A."abced" B."aecbd" C."aedbc" D."edcba"B解析 本题考查字符串的遍历。变量i和j从两端向中间遍历,当i大于j时结束循环。若产生随机数为0,将s[i]连接到res中,向后移动i,否则将s[j]连接到res中,向前移动j。A选项产生的随机数为0,0,0,1,0。B选项产生"ae",i和j分别指向b和d,因此不可能连接到c。C选项产生的随机数为0,1,1,0,0或0,1,1,0,1。D选项产生的随机数均为1或1,1,1,1,0。知识梳理21.Python常见的数据类型:_____型、实型、________型、布尔型。 2.Python中有**,________,/,∥,%,+,-,七种算术运算符,<,<=,>,>=,==,________,in,七种关系运算符,以及not, ________,or三种逻辑运算符。 3.变量是指程序运行过程中可以________的量,赋值就是给变量赋予某个“值”。 4.Python常见的内建函数:print(x)、input([prompt])、int(object)、float(object)、abs(x)、help()、len(seq)、str(x)、chr(x)、ord(x)、round(x[,n])、max(s,[,args...])、min(s,[,args...])。5.Python中基础,常用的数据结构:________,________,________。 整字符串*!=and改变字符串列表字典6.字符串和列表都是由一些数据元素共同组成的一个序列整体。字符串用________号、双引号或三引号表示。列表用方括号“________”表示,元素之间用逗号“,”分隔。 7.创建名为________的列表:list=[元素1,元素2,…… ,元素n]。 8.访问单个元素的方式:列表名[________],字符串[索引号]。 9.访问一定范围内的多个元素,列表名[开始元素序号:________元素序号的后一个字号:步长] 步长:正负数均可,正数表示“从左往右"取值,负数表示“从右往左"取值,步长的绝对值大小决定了访问数据的步长。步长省略时,默认为1。开始元素序号:表示起始索引,该参数省略时,表示从列表的左端点开始取值。结束元素序号的后一个序号:表示终止索引,该参数省略时,表示一直取到列表的右端点。在索引查找时,不能访问一个不存在的元素,程序会报错,提示索引值越界。单引[]list索引号结束10.字典可包含多个元素,每个元素包含两部分内容:________和值。键通常用字符串或数值表示,值可以是任意类型的数据。键和值两者一一对应,每个键只能对应________个值。 11.字典中的元素是________顺序的,引用元素时以________为索引。创建名为dic的字典:dic= {键1:值1,键2:值2,…… ,键n:值n}。 键一没有键课堂突破3【典例1】 下列python表达式的值为True的是( )A."3">"12" and "apple">"app"B."school"[:2]=="sch"C."sd" in "student"D.round(-4.6)==int(-4.4)答案 A思维点拨 明考向 本题考查Python表达式精点拨 A "3">"12"为True,"apple">"app"也为True,因此结果为TrueB "school"[:2]值为"sc",两者不相等C "student"不存在"sd"子串D round(-4.6)值为-5,而int(-4.4)值为-4【变式1】 某银行的理财产品收益计算规则为:理财收益=本金×年化预期收益÷360天×理财天数。若某用户购买该理财产品的本金为M,年化预期收益为Y,理财天数为t,则计算理财收益(四舍五入保留1位小数)的Python表达式应为( )A.M*Y/360*tB.int((M*Y/360*t)*10+0.5)/10C.float(M*Y/360*t)D.abs(M*Y/360*t)解析 本题考查Python表达式。对一个数x四舍五入保留1位小数的表达式为(x*10+0.5)/10,根据公式,收益表达式为M*Y/360*t,答案为B。B【典例2】 列表IDlist存储了某校所有学生身份证号码,如要分别统计1-12月份出生的人数,Python程序代码如下:count=[0]*12for i in ________: mon=int(i[10:12]) #从身份证中提取月份 ________for i in range(12): print(i+1,"月份人数为",count[i])为实现上述功能,划线处自上而下依次填入的代码是:①IDlist ②range(len(IDlist)) ③count[mon-1]+=1 ④count[mon]+=1代码顺序正确的是( )A.②③ B.②④C.①④ D.①③答案 D思维点拨 明考向 本题考查字符切片和列表的索引相关知识精点拨 列表IDlist存储了某校所有学生身份证号码,且对变量i进行切片,因此序列为列表IDlist。出生的月份为1-12,而count定义为[0]*12,其索引位置为0-11,因此需存储在索引为mon-1的列表元素A.sf[7:15] B.sf[6:14]C.sf[-12:-4] D.sf[6:-4]解析 本题考查字符串的切片。第7至14位数字对应的索引值为6-13,第14位数字的负索引为-5。A选项索引应从6开始,因此错误。B选项索引第13位数字若要取得,右边界为14。C选项索引6对应的负索引为-12,因此C选项正确。D选项从6开始,取到-5,步长为1,因此右边界为-4。A【典例3】 天干地支,源自中国远古时代对天象的观测,十天干和十二地支依次相配,两者按固定的顺序搭配,组成天干地支纪年法。干支纪年一个周期第一年为“甲子”,第二年为“乙丑”,依此类推,60 年一个周期。十二地支与十二生肖相配,是中国民间计算年龄的方法,如 1984 年为甲子年,生肖为鼠。已知年份的最后一位数字对应天干,用已知年份除以 12,求得的余数代表地支。对应关系如下:数字 4 5 6 7 8 9 0 1 2 3天干 甲 乙 丙 丁 戊 己 庚 辛 壬 癸数字 4 5 6 7 8 9 10 11 0 1 2 3地支 子 丑 寅 卯 辰 巳 午 未 申 酉 戌 亥生肖 鼠 牛 虎 兔 龙 蛇 马 羊 猴 鸡 狗 猪(1)按照上述算法,2022年对应的天干地支生肖为________。 (2)将程序划线处补全代码。year=int(input("请输入年份:"))#天干字典dic1={4:"甲",5:"乙",6:"丙",7:"丁",8:"戊",9:"己",0:"庚",1:"辛",2:"壬",3:"癸"}#地支字典dic2={4:"子",5:"丑",6:"寅",7:"卯",8:"辰",9:"巳",10:"午",11:"未",0:"申",1:"酉",2:"戌",3:"亥"}a=①______b=year%12c=dic1[a]+②______print("天干地支为:",c)#生肖字典,以地支为"键",以生肖为"值"dic3={"子":"鼠","丑":"牛","寅":"虎","卯":"兔","辰":"龙","巳":"蛇","午":"马","未":"羊","申":"猴","酉":"鸡","戌":"狗","亥":"猪"}print("生肖为:",③________) (3)地支“子”对应的生肖应为“鼠”,修改字典dic3对应内容的语句为________。答案 (1)壬寅虎 (2)①year%10 ②dic2[b] ③dic3[dic2[b]] (3)dic3["子"]="鼠"思维点拨 明考向 本题考查字典的综合应用精点拨 (1)通过对题干的解读可得2022最后一位为2,天干对应壬,除以12后余数为6,地支对应寅,因此答案为壬寅虎。(2)①解读程序可得c为天干地支连接起来的值,因此a表示天干,需要得到年份的最后一位,用year%10。②b为年份除以12的余数,用作访问字典dic2的键,因此答案为:dic2[b]。③最后需要再加上生肖,dic2的值为访问dic3的键,因此答案为:dic3[dic2[b]]。(3)修改字典与新增的方法一样【变式3】 通过调查发现,人们普遍认为带有数字2、6、8的车牌比较吉利,而带有数字4的车牌则不吉利。小石想通过编写程序来计算车牌的吉利值:其中数字2吉利值为1,数字6吉利值为2,数字8吉利值为3,数字4的吉利值为-2,其他数字吉利值为0。如车牌号“浙H94286”的吉利值为4。程序代码如下:dic={"2":1,"6":2,"8":3,"4":-2}cp=input("请输入车牌号(格式如“浙H94286”):")count=0for i in range(2,①________): x=cp[i] if x in ["2","4","6","8"]: count+=②______ print("该车牌号的吉利值为:",count)为实现功能,划线处代码应为( )A.①len(cp)-1 ②dic[x]B.①len(cp) ②dic[int(x)]C.①len(cp)-1 ②dic[int(x)]D.①len(cp) ②dic[x]解析 本题考查字典的综合应用。从语句x=cp[i]来看,变量i是cp字符串的索引位置,且for结构为左闭右开的区间,因此①处的值为len(cp)。变量x的类型为字符串,因此可以作为字典dic的键,无需转化。D 数据是程序运行的原料,Python的基本数据类型有整型、实型、字符串型和布尔型等,但相同类型的数据往往存储在列表或字典中,列表是有序线性结构,可以通过索引去访问每个元素的值,而字典是无序的,只能通过键去访问其值。对数据的操作有多种运算符,内置的函数能快速地解决一些求和、平均值排序等常见的问题。当堂检测41.下列Python表达式结果最小的是( )A.int("1"+"3")//4B.1314//100%10C.2**3//3+8%2*3D.round(20**0.5+int(-1.6))C解析 本题考查Python表达式和自定义函数。A选项为int("13")∥4=3。B选项1314∥100=13,13%10=3。C选项乘方的优先级高于整除等,2**3∥3=8∥3=2,8%2*3=0*3=0。D选项int(-1.6)=-1,17**0.5即17的平方根,介于4和5之间,靠近4,因此选项D结果为3。2.下列Python表达式中,计算结果最大的是( )A.abs(2-4**2) B.len("ord(A)")C.3**3//2 D.int(1.34*10+0.5)A解析 本题考查Python表达式和函数应用。A选项4**2=16,abs(2-16)=14。B选项字符串"ord(A)"的长度为6。C选项3**3=27,27//2=13。D选项1.34*10+0.5=13.9,int(13.9)=13。3.下列Python表达式中,值为True的是( )A.1>ord("0") B.20//6<20%6C.5%3**2==4 D."49"<"7"D解析 本题考查Python表达式。A选项"0"的ASCII码值并不是0,是比1大好多的值。B选项20//6值为3,20%6值为2,而3>2。C选项开方优先级大于整除,3**2值为9,因此5%9值为5。D选项第1个字符"4"<"7",因此"49"<"7"成立。4.有100位同学排成一列,从第一位同学开始按1至100的序号进行报数,所报序号含有6的同学需要出列。则判断序号x是否出列的Python表达式是( )A.x%10==6B.x//10==6C.x%10==6 and x//10==6D.x%10==6 or x//10==6D解析 本题考查逻辑表达式的应用。所报序号含有6,即个位数或十位数是6,表达式x%10的功能是取出个位数,x//10的功能是去除个位数,两个条件只要符合一个即可。A选项仅仅表示十位数包含6。B选项仅仅表示个位数包含6。5.某超市用13位数字标识商品信息,其中8~12位是表示商品名的代码,用字符串变量s存储商品的信息码(例如:s="9787100109796",商品名代码是"10979"),下列Python表达式中能取出商品名代码的是( )A.s[-6:-1] B.s[7:11]C.s[8:12] D.s[7:-2]A解析 本题考查字符串的切片。A选项在索引序号为倒序的情况下,从-1开始,则切片序号为-6:-1。B选项商品名代码位置为8至12位。而字符串的索引从0开始到11结束,在切片时终值取不到,切片序号为7:12。C选项起始位置不对,第8个位置的索引为7。D选项结束位置不对,取到倒数第2个,则需用-1表示。6.左右对称的字符串称回文串。若要判断字符串s是否为回文串,可以先找到s的中间位置mid=len(s)//2;再采用切片操作取出s的左半部分left=s[0:mid];然后取出s的右半部分并反转,存储在变量right中;若left与right相等,则为回文串。则下列表达式能正确表达变量right值的是( )A.s[mid::][::-1] B.s[mid+1::][::-1]C.s[len(s)-1:mid:-1] D.s[-1:-mid-1:-1]D解析 本题考查字符串的切片。回文字符串左边一半为1至mid-1,其索引为0至mid,右边一半为倒数第1个至倒数第mid个,因此索引为-1至-mid,步长为-1,但range的右边界要取到,必须加上步长。A.dic["语文"]+dic["数学"]+dic["英语"]的值是343B.若要将学生姓名更改为"小华",可执行语句dic["姓名"]="小华"C.若要添加该同学的技术成绩为75,可执行语句dic["技术"]=75D.dic["英语"] in dic的值为TrueD解析 本题考查字典的属性。A选项dic["语文"]、dic["数学"]和dic["英语"]的值依次为115、120和108,三者相加为343。B选项每个键值 key:value 对用冒号“:”分割,用字典dic中创建或修改键key的值为value语句为dic[key]=value,当键key不存在时,会创建一个键值对,若键key存在,则会修改其对应的值。C选项技术在字典中不存在,因此为创建一个新键值对。D选项"英语" in dic值为True,而dic["英语"]值为108,而字典中没有这个键。8.王老师用字典存储了学生的学号、班级、姓名数据,如:stu={"20230324":["1班","张三"],"20231223":["2班","李四"]...},则获取学号为“20230324”同学姓名的Python表达式是( )A.stu[0][1] B.stu["20230324"][1]C.stu["20230324"]["姓名"] D.stu{"20230324"}[1]B解析 本题考查字典的属性。A选项字典不是有序序列,不能按索引取值。stu中没有名为0的键,B选项"20230324"为键,stu["20230324"]为该键对应的值["1班","张三"],姓名的索引为1。C选项stu["20230324"]的值为["1班","张三"],是列表,应按位置取值。D选项不能用stu{"20230324"}来表示键值对。9.某化合物是由C、H和O三种元素组成,可用通式CiHjOk来表示,其中i,j,k是1到9之间的整数。某元素的质量分数计算方法=(该元素相对原子质量*该元素原子个数)/该化合物的相对分子质量。A=input('请输入化合物:') #如输入C2H4O2dic={'C':12,'H':1,'O':16}sum_total=0sum=dic[A[0]]*int(A[1])for i in ①________: sum_total+=②_________print('C元素的质量分数:',sum/sum_total)划线处应填入的代码为( )D解析 本题考查字典的应用。C、H和O三种元素在通式CiHjOk的0、2、4位置,排除选项AC。该元素相对原子质量*该元素原子个数,A[i]和A[i+1]分别表示原子质量和原子个数,他们对应的值在dic字典中。A.range(2,len(A),2)dic[A[i]]*A[i+1]B.range(0,len(A),2)dic[A[i-1]]*int(A[i])C.range(0,len(A),1)dic[A[i]]*int(A[i+1])D.range(0,len(A),2)dic[A[i]]*int(A[i+1])课时作业51.下列Python表达式中值最大的是( )A.ord("A")% round(2.6)B.6//2+(-2)%6C.int("6"+"2")/abs(-10)D.len("1234")*2D解析 ord("A")%round(2.6)=2,B选项值为7,C选项值为6.2,D选项值为8。2.下列表达式中,值为True的是( )A."Xj" in "Xuejun"B.abs(int(-2.9))==len("xjx")C."xj">"XJ" and 5**2>2**5D."Xuejun"[:3]=="Xue"D解析 B选项abs(int(-2.9))=2,C选项5**2>2**5即25>32,值为False。3.下列表达式中,值为True的是( )A.not abs(-12.7)>12B.3**2<=2**3C.round(3.1415,3)==3.141 and "2" in "3+27"D.3!=1+2 or 5>=5D解析 A选项abs(-12.7)=12.7,因此值为False。B选项9<=8,值为False。C选项round(3.1415,3)=3.142。4.下列Python表达式值为True的是( )A."average"[3:5]=="er"B.30%7+10//2**3==3C.abs(int(-4.95))==5D.4 in range(4)B解析 D选项range(4)值为0,1,2,3,该序列中没有4。5.已知变量s="2022py",则表达式s[2]*2+s[-2::]的值是( )A."22p" B."4py"C."22py" D."4p"C解析 s[2]*2="2"*2="22",s[-2::]="py"。6.若a="20230678",b=["2","4","6"],则表达式a[5:]+b[2:1:-1]*3的值是( )A."24" B."696"C."678666" D."0678444"C解析 a[5:]="678",b[2:1:-1]="6",表达式a[5:]+b[2:1:-1]*3的值"678"+"6"*3="678666"。7.有如下Python程序段:f=["begin","burn","dig","Dairy","delay","hit","cabbage","hang"]dic={}for line in f: if line[0] in dic: dic[line[0]]+=1 else: dic[line[0]]=1print(dic)运行程序后,下列说法正确的是( )A.字典dic中的键值对共有4对B.dic["Dairy"]的值为3C.字典dic的作用是统计每个单词出现的次数D.字典dic中值为2的键值对有3对D解析 遍历列表f,如果单词存在于字典dic中,将其对应的值增加,否则新建一个键,值为1。dic的内容为{'b':2,'d':2,'D':1,'h':2,'c':1}。8.有如下Python程序段:a=[1,9,8,2,0]x=2t1=a[0]for i in range(1,x+1): t2=a[i] a[i]=t1 t1=t2a[0]=t1运行该程序段后,a的值为( )A.[9,1,8,2,0] B.[2,1,9,8,0]C.[8,1,9,2,0] D.[1,9,2,0,8]C解析 程序的功能是将数组前x+1个元素(索引0到x)向右循环移动一位。i为1时,a的值为[1,1,8,2,0]。i为1时,a的值为i为[1,1,9,2,0]。循环结束后,t1赋值给a[0],a的值为[8,1,9,2,0]。9.有如下Python程序段:from random import randints="ABCDE"r1,r2="",""i=0while i < len(s): f=randint(0,1) if f==0: r1=r1+s[i] else: r2=r2+s[i] i=i+1print(r1+r2)运行程序后,输出的内容不可能是( )A.BCDAE B.CEABDC.ACBDE D.ACEDBD解析 本题考查的是字符串操作。遍历字符串s,通过随机数f决定字符先加入r1还是r2,最终返回r1+r2。A选项f的值依次为0,1,1,1,0,t1的值为"AE",t2的值为"BCD"。B选项f的值依次为0,0,1,0,1,t1的值为"CE",t2的值为"ABD"。C选项f的值依次为0,1,0,1,1,t1的值为"AC",t2的值为"BDE"。D选项f前3个值肯定为0,1,0,那么"D"应该在"E"前面接入t1中。 展开更多...... 收起↑ 资源列表 课时4 Python语言基础.docx 课时4 Python语言基础.pptx