必修一 数据与计算 课时4 Python语言基础(课件 教案)2027届高中通用技术一轮复习

资源下载
  1. 二一教育资源

必修一 数据与计算 课时4 Python语言基础(课件 教案)2027届高中通用技术一轮复习

资源简介

课时4 Python语言基础
【学业要求】
知识点 学业水平等级
1.掌握Python的基本数据类型和算术、关系和逻辑运算符。 2
2.掌握Python基本数据结构,字符串,列表,字典。 2
  利用算法并编写程序代码,解决生活实际问题是信息技术考查的重点,因此要求学生了解并掌握一门程序设计语言。在高考真题中,虽然没有直接考查Python语言的基础,但也体现对基础知识的应用,如字符串的切片、拼接,数组元素的遍历和移动等。在一轮复习时,还是很有必要对这块知识进行回顾和复习。
(2024年6月浙江选考)若字符串s的值为"abcde",执行如下程序段后,变量res的值不可能是(  )
from random import randint
res=""
i,j=0,len(s)-1
while i=i:
  if randint(0,1) == 0: #randint(0,1)随机生成0或1
    res+=s[i]
    i+=1
  else:
    res+=s[j]
    j-=1
A."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,因此结果为True
B "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*t
B.int((M*Y/360*t)*10+0.5)/10
C.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]*12
for 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%12
c=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=0
for 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")//4
B.1314//100%10
C.2**3//3+8%2*3
D.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%6
C.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==6
B.x//10==6
C.x%10==6 and x//10==6
D.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["英语"]的值是343
B.若要将学生姓名更改为"小华",可执行语句dic["姓名"]="小华"
C.若要添加该同学的技术成绩为75,可执行语句dic["技术"]=75
D.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('请输入化合物:') #如输入C2H4O2
dic={'C':12,'H':1,'O':16}
sum_total=0
sum=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)%6
C.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**5
D."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)>12
B.3**2<=2**3
C.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==3
C.abs(int(-4.95))==5
D.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]]=1
print(dic)
运行程序后,下列说法正确的是(  )
A.字典dic中的键值对共有4对
B.dic["Dairy"]的值为3
C.字典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=2
t1=a[0]
for i in range(1,x+1):
  t2=a[i]
  a[i]=t1
  t1=t2
a[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 randint
s="ABCDE"
r1,r2="",""
i=0
while i < len(s):
 f=randint(0,1)
 if f==0:
   r1=r1+s[i]
 else:
   r2=r2+s[i]
 i=i+1
print(r1+r2)
运行程序后,输出的内容不可能是(  )
A.BCDAE B.CEABD
C.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的基本数据类型和算术、关系和逻辑运算符。 2
2.掌握Python基本数据结构,字符串,列表,字典。 2
目 录
CONTENTS
真题剖析
01
知识梳理
02
课堂突破
03
当堂检测
04
课后作业
05
真题剖析
1
  利用算法并编写程序代码,解决生活实际问题是信息技术考查的重点,因此要求学生了解并掌握一门程序设计语言。在高考真题中,虽然没有直接考查Python语言的基础,但也体现对基础知识的应用,如字符串的切片、拼接,数组元素的遍历和移动等。在一轮复习时,还是很有必要对这块知识进行回顾和复习。
from random import randint
res=""
i,j=0,len(s)-1
while i=i:
  if randint(0,1) == 0: #randint(0,1)随机生成0或1
    res+=s[i]
    i+=1
  else:
    res+=s[j]
    j-=1
A."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。
知识梳理
2
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中基础,常用的数据结构:________,________,________。

字符串
*
!=
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,因此结果为True
B "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*t
B.int((M*Y/360*t)*10+0.5)/10
C.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]*12
for 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%12
c=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=0
for 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的基本数据类型有整型、实型、字符串型和布尔型等,但相同类型的数据往往存储在列表或字典中,列表是有序线性结构,可以通过索引去访问每个元素的值,而字典是无序的,只能通过键去访问其值。对数据的操作有多种运算符,内置的函数能快速地解决一些求和、平均值排序等常见的问题。
当堂检测
4
1.下列Python表达式结果最小的是(  )
A.int("1"+"3")//4
B.1314//100%10
C.2**3//3+8%2*3
D.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%6
C.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==6
B.x//10==6
C.x%10==6 and x//10==6
D.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的右边界要取到,必须加上步长。
A.dic["语文"]+dic["数学"]+dic["英语"]的值是343
B.若要将学生姓名更改为"小华",可执行语句dic["姓名"]="小华"
C.若要添加该同学的技术成绩为75,可执行语句dic["技术"]=75
D.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('请输入化合物:') #如输入C2H4O2
dic={'C':12,'H':1,'O':16}
sum_total=0
sum=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])
课时作业
5
1.下列Python表达式中值最大的是(  )
A.ord("A")% round(2.6)
B.6//2+(-2)%6
C.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**5
D."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)>12
B.3**2<=2**3
C.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==3
C.abs(int(-4.95))==5
D.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]]=1
print(dic)
运行程序后,下列说法正确的是(  )
A.字典dic中的键值对共有4对
B.dic["Dairy"]的值为3
C.字典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=2
t1=a[0]
for i in range(1,x+1):
  t2=a[i]
  a[i]=t1
  t1=t2
a[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 randint
s="ABCDE"
r1,r2="",""
i=0
while i < len(s):
 f=randint(0,1)
 if f==0:
   r1=r1+s[i]
 else:
   r2=r2+s[i]
 i=i+1
print(r1+r2)
运行程序后,输出的内容不可能是(  )
A.BCDAE B.CEABD
C.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中。

展开更多......

收起↑

资源列表