内容正文:
3.1字符串 1课时(分层作业)
【基础达标】
1.字符串是由 或 组成的有限序列。
2.字符串中的字符来自于某些特定的字符集,如ASCII(AmericanStandard Code for Information Interchange,美国信息交换标准码)字符集,它包括 、 、
、 等共 个字符。
3.空串是不包含任何字符的串,其长度为 。
4.空格串是由 组成的字符串,其长度为 的个数。
5.字符串的特性包括: 、 。
6.字符串是一种 ,它的数据元素个数是 的,由零个或多个字符组成。
7.字符串的操作可以实现 、 、 等。
8.字符串的基本操作有 、 、 等。
9.已知字符串a"人生苦短,我用Python”,则下列说法正确的是( )
A.a[5]的值为",",a[:5]的值为"人生苦短"
B.a[5]的值为"我”,a[:5]的值为"人生苦短"
C.a[-5]的值为"y",a[-5:]的值为" thon "
D.a[-5]的值为"用",a[-5:]的值为"ython "
10.下列Python字符串不合法的是:( )
A.”I love ‘China’” B.’I “love” China’
C.’I love \’China\’’ D.’I love ‘China”
【巩固提升】
1.有如下程序段:
S=“2022 Hope To Get Out Of The Epidemic”
t=“”
for i in s:
if i<“a” or i>“z”:
t=””
t=i+t
print(t)
该程序运行后,最后显示的内容是( )
A.cimedipE B.cimedip C.cimed D.cime
2.有如下Python程序段:
a=”Beautiful is better than ugly.”.split()
b=””.join(a)
则下列说法正确的是:( )
A.a[4]的值为“ugly”,b[4]的值为“t”
B.a[4]的值为“ugly.”,b[4]的值为“t”
C.a[-4]的值为“is”,b[-4]的值为“u”
D.a[-4]的值为“Beautiful”,b[-4]的值为“g”
3.有如下python 程序段:
def fun(a,b):
n=min(len(a),len(b))
for i in range(n):
if a[i]>b[i]:
return a
elif a[i]<b[i]:
return b
if len(a)>len(b):
return a
else:
return b
print(fun(“126”,”26”))
则程序执行后,输出的结果为:( )
A.a B.b C.126 D.26
4.有如下python程序段:
a=input()
t,s=0,0
for c in a[::-1]:
if c.isdigit():
t=t*10+int(c)
else:
s+=t
t=0
print(t)
当输入“123ABC456”时,程序输出结果为: ( )
A.321 B.654 C.123 D.975
5.有如下Python程序段:
text=”床前明月光,疑是地上霜。举头望明月,低头思故乡。”
text=text.replace(“。”,“,”)
ans=[s[0] for s in text.split(“,”) if s]
ans=“”.join(ans)
则程序执行后,ans的值为( )
A.“床前明月光” B.“床前明月”
C.“床疑举低” D.”举头望明”
6.有如下python程序段:
text=“It is too old to learn.”
ans=text[:6]+“never”+text[6:]
print(ans)
则程序执行后,输出的结果为( )
A.It is too old to learn
B.It is never too old to learn
C.It is nevertoo old to learn
D.It isnever too old to learn
7. 有如下Python程序段:
for ch in “I have a dream”:
if ch not in”aoeiu”:
continue
print(ch,end=””)
则程序执行后,输出的结果是( )
A.无输出 B.I have a dream
C.I hv drm D.aeaea
【链接高考】
1.有如下python程序段:
s=“Python3.8”
ans=“”
for ch in s:
if ch.isupper():
ans+=ch.lower()
elif ch.islower():
ans+=ch.upper()
else:
ans+=ch
print(ans)
则程序执行后,输出的结果为( )
A.Python B.Python3.8
C.pYTHON D.pYTHON3.8
2.有如下程序段:
s=””
ch=”GaozhouKG2021”
n=len(ch)
for i in range(1,n,2):
c=ch[i]
if “A”<=c<=“Z”:
c=chr((ord(c)-ord(“A”)+2)%26+65)
elif “a”<=c<=“z”:
c=chr((ord(c)-ord(“a”)+2)%26+97)
else:
c=chr(ord(c)+1)
s=c+s
print(s)
该程序运行后,最后显示的内容为( )
A.IqjwI12 B.21IwjqI C.cbqM33 D.33Mqbc
3.有如下python程序段:
a=“110000010111010”
if len(a)%4!=0:
a=(4-len(a)%4)*“0”+a)
s=“0123456789ABCDEF”
ans=[]
for i in range(0,len(a),4):
num=int(a[i:i+4],2)
ans.append(s[num])
print(‘’.join(ans))
已知int()函数用于将一个字符串或数字转换为整型,例如
int(“101”,2)用于将二进制数101转换为十进制数,结果为5,则程序执行后,输出的结果为( )
A.60BA
B.C174
C.182E8
D.305D
4.回文串是一个对称串,从左向右读与从右向左读是一样的。例如:“aba”从左向右读是“aba”,从右向左读也是“aba”。下面的Python程序的功能就是将一个字符串转换成回文串。如输入“abc”,输出“abccba”。程序如下:
s=input(“输入一个串”)
s1=s
i=0
while i<len(s):
______(1)______
_______(2)______
i+=1
print(“回文串:”,s1)
在横线(1)与(2)处可选的语句如下:
①ch=s[len(s)-i]
② ch=s[len(s)-1-i]
③s1=ch+s1
④s1=s1+ch
则完成此程序正确的语句为( )
A.①③ B.②④ C.①④ D.②③
5.在字符串s中找连续数字(仅限1位数)之和为n的子串,若存在多个子串符合要求,则输出子串最长的那一串,如字符串“142176”中,和为14的子串有“4217”与“176”,子串“4217”的长度大于子串“176”的长度,最终输出子串“4217”。假设所给字符串中必存在满足条件的子串,实现该功能的python程序段如下,请在划线处填上合适的代码:
s=input(“输入数字字符串:”)
n=int(“input(“输入数值和:”))
n=14
i=0;sum=0;st=“”
for j in range(len(s)):
____(1)_______
sum+=ch1
while sum>n:
ch2=int(s[i])
____(2)_________
i+=1
if sum==n and____(3)________:
st=s[i:j+1]
print(st)
6.某字符加密法:先输入英文字符串(大小写均可,长度不超过100),依次将其中字符的ASCII码值转化为7位二进制数,形成输入码并以矩阵形式输出;将7位二进制数进行加密处理,先进行水平翻转,再将翻转后的二进制数奇数位上的数字取反,0转1、1转0;最后将加密后的7位二进制数转化为十进制数作为密文显示。
按上述要求,编写一个Python程序,功能如下:输入英文字符串,运行程序输出对应的输入码,并显示密文。程序运行界面如图所示。
请输入英文字符串:Python
输入码:
P:1010000
y:1111001
t:1110100
h:1101111
o:1101111
n:1101110
密文:80 26 66 94 46 110
(1)若输入的英文字符串是“Ok”,则加密后的密文是______________________________。
(2)实现上述功能的Python程序如下,请在划线处填入合适的代码。
‘’’依次生成并输出英文字符串text各字符对应的7位二进制数‘’’
def show_code(text):
code=[[0]*7 for i in range(len(text))]
for i in range(len(text)):
n=ord(text[i])
j=0
s=””
while n>0:
code[i][6-j]=n%2
s=str(n%2)+s
n= ______①_______
j=j+1
print(f”{text[i]}:{s}”)
return code
‘’’对各字符对应的7位二进制数按规则进行加密处理,并返回密文’’’
def encode(plain_code):
secret_code=[ ]
for i in range(len(plain_code)):
s=0
for j in range(7):
num=___②___________
if j%2==0:
num=1-num
s=s*2+num
secret_code.append(______③________)
return “”.join(secret_code)
text=input(“请输入英文字符串:”)
print(“输入码:”)
plain_code=show_code(text)
print(f”密文:{encode(plain_code)}”)
参考答案
【基础达标】
1.零个、多个字符
2.大小写英文字母、数字、标点符号、控制字符等、128
3.零
4.空格、空格字符
5.有限序列性、可比性
6.线性表结构、有限
7.从字符串中提取子串、将字符串转换成小写或大写、字符串匹配
8.子串判断、求子串、字符串的连接
9.[解析]a[5]表示字符串中的第6个字符,本题中a[5]为“我”。a[:5]表示取从第一个字符开始到下标为4的字符串,值为“人生苦短,”。AB选项错误。α[—5]表示从右往左数第5个字符,值为“y”。a[—5 :]表示从右往左数第5个字符开始到结束的字符串,值为“gthon”。
答案:C
10. [解析]字符串一般采用单引号、双引号或三引号加以界定。当使用单引号时,双引号可以作为字符串中的一部分,反之亦然;也可以使用反斜杠转义符输出单引号或双引号。
答案:D
【巩固提升】
1. [解析]该程序中语句“if i<“a” or i>“z”:;t=“””的功能是字符i为非小写字母时,变量t就清空。因此在“Epidemic”出现前,变量t中的内容为空。这样变量t中最后的内容为“Epidemic”的重新组合。语句t=i+t的功能就是将“Epidemic”进行逆向组合。
答案:A
2.[解析]a[4]的值为“ugly.”;b[4]的值为“t”;
a[-4]的值为“is”;b[-4]的值为“g”。
答案:B
3.[解析]自定义函数fun()的功能是比较字符串a 和b的大小,并返回较大的字符串,因为“126”<“26”,故返回“26”。
答案:D
4.[解析]程序的功能是逆序提取字符串中的连续整数并求整数和,注意程序输出的是变量t的值。
答案:A
5.[解析]程序的功能是获取藏头诗。具体做法是先用“,”替换“。”,这样所有的分隔符均变成“,”,再用“,”将text分割成列表(注意最后一个列表元素为空串),并去列表元素的首字符,凭借成藏头诗。
答案:C
6.[解析]text[:6]=“It is”,text[6:]=“too old to learn.”,因为“never”两边都没有空格,故输出It is nevertoo old to learn.。
答案:C
7.[解析]continue语句的作用是终止本次循环,并忽略continue之后的所有语句,直接回到循环的顶端,提前进入下一次循环,故程序只输出包含在“aoeiu”中的字母。
答案:D
【链接高考】
1.[解析]程序的功能是将大小写字母互相转换,其他字符保持不变。
答案:D
2.[解析]该程序的功能是将字符串的第1,3,5,…个字符在各自的范畴内向后移动2个位置(即如果是大写字母、小写字母、数字,各自向后移动2个位置。注:每个范畴都看成一个圈)。最后将它们进行逆向连接。
答案:D
3.[解析]程序功能是将二进制数转换成十六进制数。按照从低位到高位的(从右往左)的顺序,每4位二进制数转换成1位十六进制数,不足4位则在高位补0。“110000010111010”补0的结果为“0110000010111010”,转换成十六进制数为60BA。
答案:A
4.[解析]产生回文串,先将原串复制到一个新的变量中,然后在新变量的后面依次连接上原串的最后1个字符,倒数第2个字符,……,一直到原串的第1个字符连接上为止。
答案:B
5.[解析]查找连续单个数值之和等于指定值的最长序列。本程序具有队列的思想,将当前数值累加到sum中后,sum值还没有超过指定值n,则将后续的数字的值加入;若sum的值超过指定值n,则将最先进来的数值减去;若sum的值等于指定值且长度超过原有的记录,则替换当前记录。
答案:(1)ch1=int(s[j]) (2)sum-=ch2 (3)len(st)<(j-i+1)
6.[解析]自定义函数show_code(text)的作用是依次生成并输出英文字符串text各字符对应的7位二进制数,n就是字符的ASCII码值,根据进制转换算法可知第①空答案为n//2;自定义函数encode(plain_code)的作用是将各字符对应的7位二进制数按规则进行加密处理,因为要先进行水平翻转,故num不是第j位上的二进制数,而是j的对称位的二进制数,则第②空答案为plain_code[i][6-j];最后将十进制数密文添加到列表secret_code中,并拼接成字符串返回,注意第③空答案不能写成s,因为不能直接把整数拼接成字符串。
答案:(1)44 62
(2)①n//2 ②plain_code[i][6-j] ③str(s)
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$