资源简介 专题4 Python语言基础学业要求 知 识 点 学业水平等级1.掌握Python的基本数据类型和算术、关系和逻辑运算符 22.掌握Python基本数据结构,字符串,列表,字典 23.掌握分支和循环控制结构的应用 2知识点一 Python表达式【知识梳理】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...])。【经典案例】表达式是程序设计语言的基础,包含了变量和常量区别、数据中数值、字符串等的基本数据类型,可以通过常用的函数进行类型间的转换,也可以通过数值的函数进行简单的计算,同时也包含了英语字母与其ASCII值之间的互相转换。各种表达式可以通过关系运算符进行连接,多个关系运算符可以通过逻辑运算符连接成一个逻辑表达式。【例1】 下列Python表达式结果最小的是( )A.int(″1″+″3″)//4B.1314//100%10C.2**3//3+8%2*3D.round(20**0.5+int(-1.6))思维点拨明考向 本题考查Python表达式和自定义函数精点拨 A 为int(″13″)//4=3B 1314//100=13,13%10=3C 乘方的优先级高于整除等,2**3//3=8//3=2,8%2*3=0*3=0D int(-1.6)=-1,20**0.5即20的平方根,介于4和5之间,靠近4,因此选项D结果为3听课笔记:______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________【变式1】 下列Python表达式中,计算结果最大的是( )A.abs(2-4**2) B.len(″ord(A)″)C.3**3//2 D.int(1.34*10+0.5)【例2】 下列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听课笔记:______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________【变式2】 下列Python表达式中,值为True的是( )A.1>ord(″0″) B.20//6<20%6C.5%3**2==4 D.″49″<″7″【例3】 某银行的理财产品收益计算规则为:理财收益=本金×年化预期收益÷360天×理财天数。若某用户购买该理财产品的本金为M,年化预期收益为Y,理财天数为t,则计算理财收益(四舍五入保留1位小数)的Python表达式应为( )A.M*Y/360*t B.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听课笔记:_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________【变式3】 有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知识点二 数据类型之字符串和列表【知识梳理】1.Python中基础,常用的数据结构:________,________,________。2.字符串和列表都是由一些数据元素共同组成的一个序列整体。字符串用________号、双引号或三引号表示。列表用方括号“________”表示,元素之间用逗号“,”分隔。3.创建名为________的列表:list=[元素1,元素2,……,元素n]。4.访问单个元素的方式:列表名[________],字符串[索引号]。5.访问一定范围内的多个元素,列表名[开始元素序号:________元素序号的后一个字号:步长]。步长:正负数均可,正数表示“从左往右”取值,负数表示“从右往左”取值,步长的绝对值大小决定了访问数据的步长。步长省略时,默认为1。开始元素序号:表示起始索引,该参数省略时,表示从列表的左端点开始取值。结束元素序号的后一个序号:表示终止索引,该参数省略时,表示一直取到列表的右端点。在索引查找时,不能访问一个不存在的元素,程序会报错,提示索引值越界。【经典案例】字符串本质就是字符序列,可以通过字符串后面添加[index],可以指定偏移量,提取该位置的单个字符。使用input函数从控制台读取键盘输入的内容都是字符串类型。Python的字符串是不可变的,无法对原字符串做任何修改,但可以将字符串的一部分复制到新创建的字符串达到看起来修改的效果。字符串s可以采用正索引表示,索引号从0至len(s)-1。也可以采用负索引,索引号从-len(s)至-1。切片是一个左闭右开的区间,即左端是取得到,右端是取不到的。列表是一种数据容器,用中括号″[]″表示。列表的长度往往是固定的,通过列表的索引位置来访问列表元素,但要注意索引的范围不能越界。因此列表在使用前,往往要初始化分配需要的空间,当空间不够时,可以使用append方法进行添加数据元素。【例1】 某超市用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 在索引序号为倒序的情况下,从-1开始,则切片序号为-6:-1B 商品名代码位置为8至12位。而字符串的索引从0开始到11结束,在切片时终值取不到,切片序号为7:12C 起始位置不对,第8个位置的索引为7D 结束位置不对,取到倒数第2个,则需用-1表示听课笔记:_________________________________________________________________________________________________________________________________________________________________________________________________________【变式1】 列表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.①③【例2】 左右对称的字符串称回文串。若要判断字符串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]思维点拨明考向 本题考查字符串的切片精点拨 回文字符串左边一半为1至mid-1,其索引为0至mid,右边一半为倒数第1个至倒数第mid个,因此索引为-1至-mid,步长为-1,但range的右边界要取到,必须加上步长听课笔记:________________________________________________________________________________________________________________________________________________________________________________________________________【变式2】 中国大陆第二代居民身份证由18位数字组成,其中第7至14位数字代表居民的出生年月日,现将身份证号码保存在字符串变量sf中,小明想提取出身份证上的出生年月日,以下四个选项中错误的是( )A.sf[7:15] B.sf[6:14]C.sf[-12:-4] D.sf[6:-4]知识点三 字 典【知识梳理】1.字典可包含多个元素,每个元素包含两部分内容:________和值。键通常用字符串或数值表示,值可以是任意类型的数据。键和值两者一一对应,每个键只能对应________个值。2.字典中的元素是________顺序的,引用元素时以________为索引。创建名为dic的字典:dic={键1:值1,键2:值2,……,键n:值n}。【经典案例】字典是一个无序、可变和有索引的集合,每个键值key:value对用冒号:分割,每个键值对之间用逗号分割,整个字典包括在花括号{}中。字典可以看成是按行存储数据的结构类型,每个键值对看成数据的一行,键是索引,值可以是一列,也可以多列。用字典dic中创建或修改键key的值为value语句为dic[key]=value,当键key不存在时,会创建一个键值对,若键key存在,则会修改其对应的值。如果多列则把值放在列表中。字典键的查找时间复杂度为O(1),键是不能重复的,查找的键如果不存在,将报错,因此往往需先判断是否存在键。【例1】 已知字典dic={″姓名″:″小明″,″语文″:115,″数学″:120,″英语″:108},下列说法不正确的是( )A.dic[″语文″]+dic[″数学″]+dic[″英语″]的值是343B.若要将学生姓名更改为″小华″,可执行语句dic[″姓名″]=″小华″C.若要添加该同学的技术成绩为75,可执行语句dic[″技术″]=75D.dic[″英语″] in dic的值为True思维点拨明考向 本题考查字典的属性精点拨 A dic[″语文″]、dic[″数学″]和dic[″英语″]的值依次为115、120和108,三者相加为343B 每个键值key:value对用冒号:分割,用字典dic中创建或修改键key的值为value语句为dic[key]=value,当键key不存在时,会创建一个键值对,若键key存在,则会修改其对应的值C 技术在字典中不存在,因此为创建一个新键值对D ″英语″in dic值为True,而dic[″英语″]值为108,而字典中没有这个键听课笔记:_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________【变式1】 王老师用字典存储了学生的学号、班级、姓名数据,如:stu={″20230324″:[″1班″,″张三″],″20231223″:[″2班″,″李四″]...},则获取学号为“20230324”同学姓名的Python表达式是( )A.stu[0][1] B.stu[″20230324″][1]C.stu[″20230324″][″姓名″] D.stu{″20230324″}[1]【例2】 天干地支,源自中国远古时代对天象的观测,十天干和十二地支依次相配,两者按固定的顺序搭配,组成天干地支纪年法。干支纪年一个周期第一年为“甲子”,第二年为“乙丑”,依此类推,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)修改字典与新增的方法一样听课笔记:_________________________________________________________________________________________________________________________________________________________________________________________________________【变式2】 通过调查发现,人们普遍认为带有数字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]知识点四 控制结构【知识梳理】1.一个分支或循环结构可以看成某个功能模块,把整个结构看成是一条语句,一个程序可以理解为多条语句组成的顺序结构。2.分支结构也称为________结构,分为________分支结构、________分支结构和________分支结构。也可以由多个分支的组成多条个选择结构,也可以分支结构内部嵌套一个或多个分支结构。3.多分支选择结构有________个选择条件,从上往下依次检测条件是否成立,若成立,执行下方语句,分支结构只可能执行其中________个步骤,在else语句中也可能包含多个条件,若没有else语句,则满足多个条件但不作任何操作。4.for循环称之为“取值循环”,其格式为for<循环变量>________<序列>:。遍历序列中的所有元素,循环次数取决于in后包含的值的个数。序列可以是________串、________和字典,也可以是range()函数产生的序列。5.range函数的功能是产生一个________数列,格式range(start,stop,step),含义和字符串或列表切片类似。6.while循环又叫条件循环,中文意思为当……的时候。顾名思义,当条件________的时候做什么事情。7.循环结构中途可以结束当次循环或结束循环。________语句,结束并退出当前层循环,________语句,结束当前次循环,进入下一次循环。8.若循环体中没有break语句,当循环结束后,可以执行________部分的语句。9.循环语句for i in range(0,n):和i=0;while i10.注意循环结构和选择结构的区别。如if i in u 和for i in u。选择结构语句只执行一次,判断的结果为真或假。循环结构依次取出集合中每个元素,循环的次数取决于集合中元素的个数。【经典案例】分支结构分为单分支结构、双分支结构和多分支结构,而分支结构的组合可以分为多个分支语句和分支的嵌套。多分支结构和多个分支语句的区别在于多分支结构只执行其中一条个判断条件,而多个分支语句依次执行每个分支结构语句。一个一维数组L是下标不同的数据元素组成,多个等长的数组可以看成是共享(0至len(L)-1)下标的列表组,在for i in range(0,len(L),1)就可以产生这个下标序列,而L[i]就是可以表示每个数组元素及数组元素的值。一个二维数组X可以看成是L行R列的二维列表xs=[[″张三″,1.78,56],[″李四″,1.88,74],[″王五″,1.71,66],[″赵六″,1.82,76]]该数组存储4位学生的姓名、身高和体重,每位学生的索引分别为0、1、2、3。while循环可以实现重复若干次动作,对于某些无法确定次数的循环,或者需要条件触发条件结束的情况,用while更方便。【例1】 象限是平面直角坐标系(笛卡尔坐标系)中横轴和纵轴所划分的四个区域,每一个区域叫做一个象限。象限以原点为中心,x,y轴为分界线,原点和坐标轴上的点不属于任何象限。某同学根据输入的坐标点(x,y)来判断该坐标点的位置所在,以下实现该分类的Python程序段中正确的是( )A.if x==0 and y==0:result=″原点″if x==0 or y==0:result=″数轴″if x!=0 and y!=0:result=″象限″B.if x==0 or y==0:result=″数轴″if x==0 and y==0:result=″原点″else:result=″象限″C.if x!=0 and y!=0:result=″象限″if x==0 or y==0:result=″数轴″else:result=″原点″D.if x!=0 and y!=0:result=″象限″if x==0 and y==0:result=″原点″if x==0 or y==0:result=″数轴″思维点拨明考向 本题考查Python基本控制结构。(0,0)是原点,即if x==0 and y==0 表示原点;(0,y)或者(x,0)分别表示y轴与x轴精点拨 A x==y==0时,第1个和第2个if均成立B if x==0 or y==0且x与y不同时为0表示数轴,在第2个分支语句中,再次判断为″象限″C 条件x!=0 and y!=0成立,判断为″象限″,在第2个分支语句中,再次判断为″原点″,因此原点的判断需在数轴之前D 分三种情况,用3条分支语句来表达这种情况听课笔记:_________________________________________________________________________________________________________________________________________________________________________________________________________【变式1】 用Python语句描述城市主干道中机动车平均行驶速度v不低于30为畅通,小于20为堵塞,其余为拥挤,设v为机动车平均行驶速度(单位:km/h),则下列选项正确是( )A.if v>=30: print(″畅通″)elif v<30: print(″拥挤″)else: print(″堵塞″)B.if v<20: prin(″堵塞″)elif v>20: print(″拥挤″)else: print(″畅通″)C.if 20<=v<30: print(″拥挤″)elif v>=30 and v<20: print(″堵塞″)else: print(″畅通″)D.if v>=20: if v<30: print(″拥挤″) else: print(″畅通″)else:print(″堵塞″)【例2】 列表a有2*n个元素,各元素为互不相等的正整数(n≥1),要在其中找到最大值和次大值,并分别存储到变量m1和m2中。实现该功能的Python程序段如下:m1=0;m2=0for i in range(0,2*n,2):if a[i]>a[i+1]:t1=a[i];t2=a[i+1]else:t1=a[i+1];t2=a[i]if:m1=t1;m2=t2elif:m2=m1;m1=t1elif:m2=t1上述程序段中方框处可选代码为:①t1>m1 ②t1>m2 ③t2>m1;则(1)(2)(3)处代码依次为( )A.①②③ B.③①②C.②③① D.③②①思维点拨明考向 本题考查for循环控制结构精点拨 range(0,2*n,2)表示从索引0开始,每2个数据一组,共循环n次。m1和m2表示最大值和次大值。若满足条件a[i]>a[i+1],表示在一组的两个数据中找出一个较大者。有3种可能性,t2比m1大,意味着t1和t2是较大者和次大者;t1比m1大但t2比m2小,次大者为m1,最大者为t1;第3种可能性是t1比m1小但t2比m2大,仅修改次大者听课笔记:_________________________________________________________________________________________________________________________________________________________________________________________________________【变式2】 有一组正整数,要求对其中的奇偶数进行交换。交换后偶数在前,奇数在后,并保持相对顺序不变。a=[5,10,21,7,24,14,9,11,36,37]n=len(a);b=[0]*nnum=0;k=0while kif:b[num]=a[k]num+=1else: k+=1for j in range(n-num,n):print(a)将加框处的代码补充完整,正确的是( )A.①a[k]%2==1 ②a[k-num]=a[k] ③a[j]=b[j-n+num]B.①a[k]%2==0 ②b[k-num]=a[k] ③a[j]=b[j+num]C.①a[k]%2==0 ②a[k-num]=a[k] ③a[j]=b[j+num]D.①a[k]%2==1 ②b[k-num]=a[k] ③a[j]=b[j-n+num]1.某购物平台经常推出满减优惠活动,比如“跨店每满299减50元”。顾客采购物品原价为z元,根据“跨店每满x减y元”活动规则需支付s元。下列计算模型比较合理的是( )A.s=z//299*50 B.s=z-z//x*yC.s=z//x*y D.s=z-z//299*502.Python表达式15%2**3+abs(-5)//2计算结果是( )A.3 B.4C.5 D.93.下列Python表达式的值为False的是,其中s=″Python″,a,b是两个任意整数( )A.″8″>″10″ B.s[5:3:-1]==″on″C.int(-2.5)==-2 D.max(a,b)==(a+b+abs(a-b))//24.下列Python表达式的值为False的是( )A.258//10%10==5 B.″7″ in [″3″,″7″]C.″student″ [2:5]==″ude″ D.len(″python″)==max([2,6,14,7])5.班级开班会课,需将学生分成6组,现在让全体同学按照1~6循环报数,能正确表示第n位同学所报数字的Python表达式是( )A.n B.n%6C.(n+1)%6-1 D.(n-1)%6+16.学籍号第8位数字开始是出生日期码,包含8个数字,下列Python表达式中,能从学籍号s=″G330303200512073632″中获取出生日期的是( )A.s[7:15] B.s[8:16]C.s[-12:-5] D.s[8:-4]7.已知fruit=″applebanana″,feel={1:″1ike″,2:″favor″,3:″hate″},who=[″he″,″she″,″it″]。则表达式″who[2]+feel[2][2:4]+fruit[1::4]″的值是( )A.itvorpbn B.itvoaeaC.itvopena D.itvopbn8.浙江省车牌号(如:浙J·AB888)首字母对应的城市名称用字典存储如下:city={″A″:″杭州″,″B″:″宁波″,″C″:″温州″,″D″:″绍兴″,″E″:″湖州″,″F″:″嘉兴″,″G″:″金华″,″H″:″衢州″,″J″:″台州″,″K″:″丽水″,″L″:″舟山″}若输入语句为:LPN=input(″请输入车牌号码:″),则下列能正确输出城市名称的语句是( )A.print(city[LPN(1)]) B.print(city{LPN[1]})C.print(city[LPN[1]]) D.print[city[LPN[1]]]9.人机对战游戏——剪刀石头布,游戏规则如下:石头胜剪刀,剪刀胜布,布胜石头。编写Python程序实现上述算法,玩家输入0表示石头,输入1表示剪刀,输入2表示布,电脑随机产生[0,2]之间的整数。程序运行结果如图所示:实现上述功能的程序如下:import random #导入随机模块info=①________player=int(input(″请输入序号(0.石头1.剪刀2.布):″))computer=random.randint(0,2) #产生[0,2]范围内的随机整数if player==computer:result=″平局″elif ②________:result=″玩家胜″else:result=″电脑胜″print(″玩家出:″+info[player],″电脑出:″+info[computer],result)程序划线处应填入的代码是( )A.①″石头,剪刀,布″ ②player+1==computerB.①[″石头″,″剪刀″,″布″] ②(player+1)%3==computerC.①{0:″石头″,1:″剪刀″,2:″布″} ②player+1==computerD.①{″石头″:0,″剪刀″:1,″布″:2} ②(player+1)%3==computer10.(多选题)用Python语句描述塑料瓶容量500毫升以下(不包含)0.05元/个,500毫升到1200毫升(不包含)0.1元/个,1200毫升及以上0.15元/个。设容量为v(单位为毫升),价格为p(单位为元),则下列选项正确的是( )A.p=0.05if v>=500: p=0.1elif v>=1200:p=0.15B.p=0.15if v<500: p=0.05elif v<1200: p=0.1C.p=0.05if v>=500: p=0.1if v>=1200: p=0.15D.p=0.15if v<1200: p=0.1else: p=0.0511.运行下列Python代码,输出结果是( )s=[″Red″,″Green″,″Blue″]for i in range(1,5):print(s[i%3],end=″″)A.GreenBlueRedGreen B.RedGreenBlueRedC.GreenRedBlueGreen D.RedGreenBlueRed12.某客户购买的新能源汽车价格为t万元,可享受当地政府购车补贴,补贴标准如下:价格20万元(不含)以下,补贴0.25万元;价格20万元(含)至30万元(不含),补贴0.5万元;价格30万元(含)以上,补贴1万元。在下列选项中,计算实际购车价格p的程序代码正确的是( )A.p=t-0.25if t>=20:p=t-0.5elif t>=30:p=t-1B.p=t-1if t<20:p=t-0.25elif t<30:p=t-0.5C.p=t-0.25if t>=30:p=t-1if t>=20:p=t-0.5D.p=t-1if t>=20:p=t-0.5else:p=t-0.2513.有如下Python程序:a=[100,71,74,95,68,78,99,99,82,100]b={″A″:0,″B″:0,″C″:0}for i in a:if i>90:b[″A″]+=1elif i>80:b[″B″]+=1else:b[″C″]+=1运行该程序后,b[″B″]的值是( )A.1 B.6C.3 D.514.有如下Python程序段:s=″52-234-89-671-9″a=[″″]*10;ans=″″;n=0for i in range(len(s)):if s[i]>=″0″ and s[i]<=″9″:a[n]+=s[i]else:if a[n]>ans: ans=a[n]n=n+1print(ans)执行该程序段后,输出的结果是( )A.671 B.9 C.89 D.23415.为了实现某个数的质因数分解,小明编写了如下Python程序段。n=int(input(″n:″))i=2res=[]while n>1:if n%i!=0: i+=1else:res.append(i)n=n//i当程序启动后输入“18”,则运行结束后res[-1]的值为( )A.2 B.3C.6 D.18专题4 Python语言基础知识点一知识梳理1.整 字符串 2.* != and 3.改变经典案例例1 C变式1 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。]例2 A变式2 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″成立。]例3 B变式3 D [本题考查逻辑表达式的应用。所报序号含有6,即个位数或十位数是6,表达式x%10的功能是取出个位数,x//10的功能是去除个位数,两个条件只要符合一个即可。A选项仅仅表示十位数包含6。B选项仅仅表示个位数包含6。]知识点二知识梳理1.字符串 列表 字典 2.单引 [] 3.list 4.索引号 5.结束经典案例例1 A变式1 D [本题考查字符切片和列表的索引相关知识。列表IDlist存储了某校所有学生身份证号码,且对变量i进行切片,因此序列为列表IDlist。出生的月份为1~12,而count定义为[0]*12,其索引位置为0~11,因此需存储在索引为mon-1的列表元素。]例2 D变式2 A [本题考查字符串的切片。第7至14位数字对应的索引值为6-13,第14位数字的负索引为-5。A选项索引应从6开始,因此不正确。B选项索引第13位数字若要取得,右边界为14。C选项索引6对应的负索引为-12,因此C选项正确。D选项从6开始,取到-5,步长为1,因此右边界为-4。]知识点三知识梳理1.键 一 2.没有 键经典案例例1 D变式1 B [本题考查字典的属性。A选项字典不是有序序列,不能按索引取值。stu中没有名为0的键,B选项″20230324″为键,stu[″20230324″]为该键对应的值[″1班″,″张三″],姓名的索引为1。C选项stu[″20230324″]的值为[″1班″,″张三″],是列表,应按位置取值。D选项不能用stu{″20230324″}来表示键值对。]例2 (1)壬寅虎 (2)①year%10 ②dic2[b] ③dic3[dic2[b]] (3)dic3[″子″]=″鼠″变式2 D [本题考查字典的综合应用。从语句x=cp[i]来看,变量i是cp字符串的索引位置,且for结构为左闭右开的区间,因此①处的值为len(cp)。变量x的类型为字符串,因此可以作为字典dic的键,无需转化。]知识点四知识梳理2.选择 单 双 多 3.多 一 4.in 字符 列表 5.等差 6.满足 7.break continue 8.else 9.n-1 n经典案例例1 D变式1 D [本题考查分支控制结构。A选项v<30中包含了堵塞和拥挤,不能区分。B选项在v>20中包含了畅通和拥挤,不能区分。C选项条件v>=30和v<20不可能同时满足。D选项先分为大于等于20和小于20的情况,再在大于等于20中区分拥挤和畅通。]例2 B变式2 A [本题考查while循环控制结构。用循环k来遍历数组a,当前共有k个数,num表示奇数的个数,则k-num表示偶数的个数,如果遍历到奇数,则将该数保存到数组b中,如果是偶数,将该数移动到k-num位置中。最后将b中数全部转移到数组a中。]当堂过关检测1.B [每满x意味着有z中包含x的整数倍,每个整数倍减y元,共减z//x*y。]2.D [2**3优先级高,值为8,15%8=7,abs(-5)//2=2。]3.B [B选项s[5:3:-1]表示从索引5开始倒取2个数,值为″no″。D选项a+b包含2个max(a,b)的和减去abs(a-b)。]4.D [len(″python″)值为6,max([2,6,14,7])值为14。]5.D [本题考查运算符%的应用。显然A选项不正确;B选项会出现报数0以及缺少6;C选项结果值在-1~4之间;D选项正确。]6.A [第8位数字的索引为7。]7.D [who[2]=″it″,feel[2]=″favor″,″favor″[2:4]=″vo″,fruit[1::4]表示从索引1开始,每隔4位取一个字母,即pbn。]8.C [本题考查字典的相关知识。首先print是输出函数,所以用括号表示,即形如print(),D选项错误;city是字典,对字典进行索引应该表示成形如city[],B选项错误;而我们输入语句LPN=input(″请输入车牌号码:″)输入的是字符串,对字符串索引也应表示成形如LPN[],A选项错误;故答案选C。]9.B [从表达式info[player]来看,info可以是字符串、列表和字典,若为字典,则数字作为键。从游戏规则来看,0胜1,1胜2,2胜0,因此答案为B。]10.BC [本题考查Python基础语法分支逻辑。A选项逻辑错误,v>=500,只会执行if,不会执行elif。p的值是0.1或0.15。D同上,v<1200,只会执行if,不会执行elif,p的值是0.1或0.05。]11.A [本题考查字符串的切片。变量i的值依次为1,2,3,4,对应i%3的值为1,2,0,1,因此得到答案为A。]12.B [A选项t>=20包含了t>=30。C选项为2个分支结构,依次执行。]13.A [遍历数组a中数据,将大于90计入A,大于80但小于等于90计入B,其他的计入C。]14.C [遍历字符串s,如果是数字,不断地连入a[n],因此每个数字段存入数组a中,在数组a中找到最大值,但最后一个字符串并没有最大值进行比较。]15.B [n=18=2*3*3,最后一个数字是3。] 展开更多...... 收起↑ 资源预览