中文字幕精品无码一区二区,成全视频在线播放观看方法,大伊人青草狠狠久久,亚洲一区影音先锋色资源

3.1 字符串專項(xiàng)練習(xí) 2021—2022學(xué)年浙教版(2019)選修1(含答案)

資源下載
  1. 二一教育資源

3.1 字符串專項(xiàng)練習(xí) 2021—2022學(xué)年浙教版(2019)選修1(含答案)

資源簡介

字符串專題練習(xí)
一、選擇題
下列Python字符串不合法的是:(D)
A.”I love ‘China’” B.’I “l(fā)ove” China’
C.’I love \’China\’’ D.’I love ‘China”
解析:選D,字符串一般采用單引號(hào)、雙引號(hào)或三引號(hào)加以界定。當(dāng)使用單引號(hào)時(shí),雙引號(hào)可以作為字符串中的一部分,反之亦然;也可以使用反斜杠轉(zhuǎn)義符輸出單引號(hào)或雙引號(hào)。
2.有如下程序段:
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)
該程序運(yùn)行后,最后顯示的內(nèi)容是( A )
A.cimedipE B.cimedip C.cimed D.cime
解析:選A,該程序中語句“if i<“a” or i>“z”:;t=“””的功能是字符i為非小寫字母時(shí),變量t就清空。因此在“Epidemic”出現(xiàn)前,變量t中的內(nèi)容為空。這樣變量t中最后的內(nèi)容為“Epidemic”的重新組合。語句t=i+t的功能就是將“Epidemic”進(jìn)行逆向組合。
有如下Python程序段:
a=”Beautiful is better than ugly.”.split()
b=””.join(a)
則下列說法正確的是:(B)
a[4]的值為“ugly”,b[4]的值為“t”
a[4]的值為“ugly.”,b[4]的值為“t”
a[-4]的值為“is”,b[-4]的值為“u”
a[-4]的值為“Beautiful”,b[-4]的值為“g”
解析:選B,a[4]的值為“ugly.”;b[4]的值為“t”;
a[-4]的值為“is”;b[-4]的值為“g”。
4.有如下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]return b
if len(a)>len(b):
return a
else:
return b
print(fun(“126”,”26”))
則程序執(zhí)行后,輸出的結(jié)果為:(D)
A.a B.b C.126 D.26
解析:選D,自定義函數(shù)fun()的功能是比較字符串a(chǎn) 和b的大小,并返回較大的字符串,因?yàn)椤?26”<“26”,故返回“26”。
5.有如下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)
當(dāng)輸入“123ABC456”時(shí),程序輸出結(jié)果為: (A)
A.321 B.654 C.123 D.975
解析:選A,程序的功能是逆序提取字符串中的連續(xù)整數(shù)并求整數(shù)和,注意程序輸出的是變量t的值。
6.有如下Python程序段:
text=”床前明月光,疑是地上霜。舉頭望明月,低頭思故鄉(xiāng)。”
text=text.replace(“。”,“,”)
ans=[s[0] for s in text.split(“,”) if s]
ans=“”.join(ans)
則程序執(zhí)行后,ans的值為(C)
A.“床前明月光” B.“床前明月”
C.“床疑舉低” D.”舉頭望明”
解析:選C,程序的功能是獲取藏頭詩。具體做法是先用“,”替換“。”,這樣所有的分隔符均變成“,”,再用“,”將text分割成列表(注意最后一個(gè)列表元素為空串),并去列表元素的首字符,憑借成藏頭詩。
7.有如下python程序段:
text=“It is too old to learn.”
ans=text[:6]+“never”+text[6:]
print(ans)
則程序執(zhí)行后,輸出的結(jié)果為(C)
It is too old to learn
It is never too old to learn
It is nevertoo old to learn
It isnever too old to learn
解析:選C,text[:6]=“It is”,text[6:]=“too old to learn.”,因?yàn)椤皀ever”兩邊都沒有空格,故輸出It is nevertoo old to learn.。
8. 有如下Python程序段:
for ch in “I have a dream”:
if ch not in”aoeiu”:
continue
print(ch,end=””)
則程序執(zhí)行后,輸出的結(jié)果是(D)
A.無輸出 B.I have a dream
C.I hv drm D.aeaea
解析:選D,continue語句的作用是終止本次循環(huán),并忽略continue之后的所有語句,直接回到循環(huán)的頂端,提前進(jìn)入下一次循環(huán),故程序只輸出包含在“aoeiu”中的字母。
9. 有如下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)
則程序執(zhí)行后,輸出的結(jié)果為(D)
A.Python B.Python3.8
C.pYTHON D.pYTHON3.8
解析:選D,程序的功能是將大小寫字母互相轉(zhuǎn)換,其他字符保持不變。
10. 有如下程序段:
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)
該程序運(yùn)行后,最后顯示的內(nèi)容為(D)
A.IqjwI12 B.21IwjqI C.cbqM33 D.33Mqbc
解析:選D,該程序的功能是將字符串的第1,3,5,…個(gè)字符在各自的范疇內(nèi)向后移動(dòng)2個(gè)位置(即如果是大寫字母、小寫字母、數(shù)字,各自向后移動(dòng)2個(gè)位置。注:每個(gè)范疇都看成一個(gè)圈)。最后將它們進(jìn)行逆向連接。
11.有如下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()函數(shù)用于將一個(gè)字符串或數(shù)字轉(zhuǎn)換為整型,例如
int(“101”,2)用于將二進(jìn)制數(shù)101轉(zhuǎn)換為十進(jìn)制數(shù),結(jié)果為5,則程序執(zhí)行后,輸出的結(jié)果為(A)
A.60BA
B.C174
C.182E8
D.305D
解析:選A,程序功能是將二進(jìn)制數(shù)轉(zhuǎn)換成十六進(jìn)制數(shù)。按照從低位到高位的(從右往左)的順序,每4位二進(jìn)制數(shù)轉(zhuǎn)換成1位十六進(jìn)制數(shù),不足4位則在高位補(bǔ)0。“110000010111010”補(bǔ)0的結(jié)果為“0110000010111010”,轉(zhuǎn)換成十六進(jìn)制數(shù)為60BA。
12. 回文串是一個(gè)對(duì)稱串,從左向右讀與從右向左讀是一樣的。例如:“aba”從左向右讀是“aba”,從右向左讀也是“aba”。下面的Python程序的功能就是將一個(gè)字符串轉(zhuǎn)換成回文串。如輸入“abc”,輸出“abccba”。程序如下:
s=input(“輸入一個(gè)串”)
s1=s
i=0
while i______(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
則完成此程序正確的語句為(B)
A.①③ B.②④ C.①④ D.②③
解析:選B,產(chǎn)生回文串,先將原串復(fù)制到一個(gè)新的變量中,然后在新變量的后面依次連接上原串的最后1個(gè)字符,倒數(shù)第2個(gè)字符,……,一直到原串的第1個(gè)字符連接上為止。
二、非選擇題
13.在字符串s中找連續(xù)數(shù)字(僅限1位數(shù))之和為n的子串,若存在多個(gè)子串符合要求,則輸出子串最長的那一串,如字符串“142176”中,和為14的子串有“4217”與“176”,子串“4217”的長度大于子串“176”的長度,最終輸出子串“4217”。假設(shè)所給字符串中必存在滿足條件的子串,實(shí)現(xiàn)該功能的python程序段如下,請(qǐng)?jiān)趧澗€處填上合適的代碼:
s=input(“輸入數(shù)字字符串:”)
n=int(“input(“輸入數(shù)值和:”))
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)
答案:(1)ch1=int(s[j]) (2)sum-=ch2 (3)len(st)<(j-i+1)
解析:查找連續(xù)單個(gè)數(shù)值之和等于指定值的最長序列。本程序具有隊(duì)列的思想,將當(dāng)前數(shù)值累加到sum中后,sum值還沒有超過指定值n,則將后續(xù)的數(shù)字的值加入;若sum的值超過指定值n,則將最先進(jìn)來的數(shù)值減去;若sum的值等于指定值且長度超過原有的記錄,則替換當(dāng)前記錄。
14. 某字符加密法:先輸入英文字符串(大小寫均可,長度不超過100),依次將其中字符的ASCII碼值轉(zhuǎn)化為7位二進(jìn)制數(shù),形成輸入碼并以矩陣形式輸出;將7位二進(jìn)制數(shù)進(jìn)行加密處理,先進(jìn)行水平翻轉(zhuǎn),再將翻轉(zhuǎn)后的二進(jìn)制數(shù)奇數(shù)位上的數(shù)字取反,0轉(zhuǎn)1、1轉(zhuǎn)0;最后將加密后的7位二進(jìn)制數(shù)轉(zhuǎn)化為十進(jìn)制數(shù)作為密文顯示。
按上述要求,編寫一個(gè)Python程序,功能如下:輸入英文字符串,運(yùn)行程序輸出對(duì)應(yīng)的輸入碼,并顯示密文。程序運(yùn)行界面如圖所示。
若輸入的英文字符串是“Ok”,則加密后的密文是______________________________。
實(shí)現(xiàn)上述功能的Python程序如下,請(qǐng)?jiān)趧澗€處填入合適的代碼。
‘’’依次生成并輸出英文字符串text各字符對(duì)應(yīng)的7位二進(jìn)制數(shù)‘’’
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
‘’’對(duì)各字符對(duì)應(yīng)的7位二進(jìn)制數(shù)按規(guī)則進(jìn)行加密處理,并返回密文’’’
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(“請(qǐng)輸入英文字符串:”)
print(“輸入碼:”)
plain_code=show_code(text)
print(f”密文:{encode(plain_code)}”)
答案:(1)44 62
(2)①n//2 ②plain_code[i][6-j] ③str(s)
解析:自定義函數(shù)show_code(text)的作用是依次生成并輸出英文字符串text各字符對(duì)應(yīng)的7位二進(jìn)制數(shù),n就是字符的ASCII碼值,根據(jù)進(jìn)制轉(zhuǎn)換算法可知第①空答案為n//2;自定義函數(shù)encode(plain_code)的作用是將各字符對(duì)應(yīng)的7位二進(jìn)制數(shù)按規(guī)則進(jìn)行加密處理,因?yàn)橐冗M(jìn)行水平翻轉(zhuǎn),故num不是第j位上的二進(jìn)制數(shù),而是j的對(duì)稱位的二進(jìn)制數(shù),則第②空答案為plain_code[i][6-j];最后將十進(jìn)制數(shù)密文添加到列表secret_code中,并拼接成字符串返回,注意第③空答案不能寫成s,因?yàn)椴荒苤苯影颜麛?shù)拼接成字符串。字符串專題練習(xí)
一、選擇題
下列Python字符串不合法的是:( )
A.”I love ‘China’” B.’I “l(fā)ove” China’
C.’I love \’China\’’ D.’I love ‘China”
2.有如下程序段:
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)
該程序運(yùn)行后,最后顯示的內(nèi)容是( )
A.cimedipE B.cimedip C.cimed D.cime
有如下Python程序段:
a=”Beautiful is better than ugly.”.split()
b=””.join(a)
則下列說法正確的是:( )
a[4]的值為“ugly”,b[4]的值為“t”
a[4]的值為“ugly.”,b[4]的值為“t”
a[-4]的值為“is”,b[-4]的值為“u”
a[-4]的值為“Beautiful”,b[-4]的值為“g”
4.有如下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]return b
if len(a)>len(b):
return a
else:
return b
print(fun(“126”,”26”))
則程序執(zhí)行后,輸出的結(jié)果為:( )
A.a B.b C.126 D.26
5.有如下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)
當(dāng)輸入“123ABC456”時(shí),程序輸出結(jié)果為: ( )
A.321 B.654 C.123 D.975
6.有如下Python程序段:
text=”床前明月光,疑是地上霜。舉頭望明月,低頭思故鄉(xiāng)。”
text=text.replace(“。”,“,”)
ans=[s[0] for s in text.split(“,”) if s]
ans=“”.join(ans)
則程序執(zhí)行后,ans的值為( )
A.“床前明月光” B.“床前明月”
C.“床疑舉低” D.”舉頭望明”
7.有如下python程序段:
text=“It is too old to learn.”
ans=text[:6]+“never”+text[6:]
print(ans)
則程序執(zhí)行后,輸出的結(jié)果為( )
It is too old to learn
It is never too old to learn
It is nevertoo old to learn
It isnever too old to learn
8. 有如下Python程序段:
for ch in “I have a dream”:
if ch not in”aoeiu”:
continue
print(ch,end=””)
則程序執(zhí)行后,輸出的結(jié)果是( )
A.無輸出 B.I have a dream
C.I hv drm D.aeaea
9. 有如下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)
則程序執(zhí)行后,輸出的結(jié)果為( )
A.Python B.Python3.8
C.pYTHON D.pYTHON3.8
10. 有如下程序段:
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)
該程序運(yùn)行后,最后顯示的內(nèi)容為( )
A.IqjwI12 B.21IwjqI C.cbqM33 D.33Mqbc
11.有如下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()函數(shù)用于將一個(gè)字符串或數(shù)字轉(zhuǎn)換為整型,例如
int(“101”,2)用于將二進(jìn)制數(shù)101轉(zhuǎn)換為十進(jìn)制數(shù),結(jié)果為5,則程序執(zhí)行后,輸出的結(jié)果為( )
A.60BA
B.C174
C.182E8
D.305D
12. 回文串是一個(gè)對(duì)稱串,從左向右讀與從右向左讀是一樣的。例如:“aba”從左向右讀是“aba”,從右向左讀也是“aba”。下面的Python程序的功能就是將一個(gè)字符串轉(zhuǎn)換成回文串。如輸入“abc”,輸出“abccba”。程序如下:
s=input(“輸入一個(gè)串”)
s1=s
i=0
while i______(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.②③
二、非選擇題
13.在字符串s中找連續(xù)數(shù)字(僅限1位數(shù))之和為n的子串,若存在多個(gè)子串符合要求,則輸出子串最長的那一串,如字符串“142176”中,和為14的子串有“4217”與“176”,子串“4217”的長度大于子串“176”的長度,最終輸出子串“4217”。假設(shè)所給字符串中必存在滿足條件的子串,實(shí)現(xiàn)該功能的python程序段如下,請(qǐng)?jiān)趧澗€處填上合適的代碼:
s=input(“輸入數(shù)字字符串:”)
n=int(“input(“輸入數(shù)值和:”))
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)
14. 某字符加密法:先輸入英文字符串(大小寫均可,長度不超過100),依次將其中字符的ASCII碼值轉(zhuǎn)化為7位二進(jìn)制數(shù),形成輸入碼并以矩陣形式輸出;將7位二進(jìn)制數(shù)進(jìn)行加密處理,先進(jìn)行水平翻轉(zhuǎn),再將翻轉(zhuǎn)后的二進(jìn)制數(shù)奇數(shù)位上的數(shù)字取反,0轉(zhuǎn)1、1轉(zhuǎn)0;最后將加密后的7位二進(jìn)制數(shù)轉(zhuǎn)化為十進(jìn)制數(shù)作為密文顯示。
按上述要求,編寫一個(gè)Python程序,功能如下:輸入英文字符串,運(yùn)行程序輸出對(duì)應(yīng)的輸入碼,并顯示密文。程序運(yùn)行界面如圖所示。
若輸入的英文字符串是“Ok”,則加密后的密文是______________________________。
實(shí)現(xiàn)上述功能的Python程序如下,請(qǐng)?jiān)趧澗€處填入合適的代碼。
‘’’依次生成并輸出英文字符串text各字符對(duì)應(yīng)的7位二進(jìn)制數(shù)‘’’
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
‘’’對(duì)各字符對(duì)應(yīng)的7位二進(jìn)制數(shù)按規(guī)則進(jìn)行加密處理,并返回密文’’’
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(“請(qǐng)輸入英文字符串:”)
print(“輸入碼:”)
plain_code=show_code(text)
print(f”密文:{encode(plain_code)}”)

展開更多......

收起↑

資源列表

<pre id="tfb94"><li id="tfb94"></li></pre>

<bdo id="tfb94"><rt id="tfb94"></rt></bdo>
  • <menu id="tfb94"><dl id="tfb94"></dl></menu><i id="tfb94"><acronym id="tfb94"><sub id="tfb94"></sub></acronym></i>

    1. 主站蜘蛛池模板: 乐都县| 武宣县| 江都市| 旺苍县| 云浮市| 遂昌县| 阳城县| 溆浦县| 墨江| 虹口区| 青川县| 阜新| 彰化县| 玛多县| 曲靖市| 京山县| 阜南县| 泾源县| 武功县| 寿宁县| 平凉市| 海阳市| 星座| 罗江县| 镇沅| 邵阳县| 搜索| 肇州县| 彭泽县| 宜君县| 白朗县| 香格里拉县| 南投市| 赞皇县| 迁安市| 金堂县| 孟津县| 桦甸市| 蒙自县| 咸丰县| 达日县|