《Python語言程式設計》之第三次平時作業決議
- 程式填空題
- 單項選擇題

程式填空題
下面程式的功能是從串列中篩選出字串元素,并將它們連接為一個字串,程式運行后的輸出情況如下圖所示,請在橫線處填寫適當的陳述句或運算式將程式補充完整,

源程式:
s=’’
t=[123,‘AAA’,3.14,‘uestc’,True,‘BBB’,456]
for i in t:
if __________________________________________:
s+=i
else:
print(s)
答:
isinstance(i,str)
下面程式的功能是從鍵盤讀入一個字串,在文本塊中查找該字串,并輸出它在文本塊中的位置(用索引下標表示),程式運行后的輸入輸出情況如下圖所示,請在橫線處填寫適當的陳述句或運算式將程式補充完整,

源程式:
x=input(‘x=’)
s=‘xyzabcd’*2
t=[]
for i in range(len(s)-len(x)+1):
if x==__________________________________________:
t+=[i]
else:
print(t)
答:
s[i:i+len(x)]
下面程式的功能是將字串中的子串“bcd”全部替換為字串“AA”,程式運行后的輸入輸出情況如下圖所示,請在橫線處填寫適當的陳述句或運算式將程式補充完整,

源程式:
x=‘bcd’
t=‘AA’
s=‘xyzabcd’*2
for i in range(len(s)-len(x)+1):
if x==s[i:i+len(x)]:
s=s[:i]+t+__________________________________________
else:
print(s)
答:
s[i+len(x):]
下面程式的功能是從鍵盤讀入一個字串,判斷其是否是回文,程式運行后的輸入輸出情況如下圖所示,請在橫線處填寫適當的陳述句或運算式將程式補充完整,注:回文是指一個字串從左向右讀與從右向左讀相同,例如:noon,level,rotor,boob,

源程式:
s=input(‘s=’)
b=True
for i in range(len(s)//2):
if s[i]!= __________________________________________:
b=False
break
if b:
print(‘Yes’)
else:
print(‘No’)
答:
s[-(i+1)]
下面程式的功能是從鍵盤讀入一個由阿拉伯數字組成的字串(中間可以包含一個小數點),如果它是正整數,就刪去其左端的所有0字符,如果它是正小數,就刪去其兩端的所有0字符,最后再將它轉換為數值型資料(int或float),程式運行后的輸入輸出情況如下圖所示,請在橫線處填寫適當的陳述句或運算式將程式補充完整,

源程式:
s=input(‘s=’)
if ‘.’ in s:
x=float(__________________________________________)
else:
x=int(s.lstrip(‘0’))
print(x)
答:
s.lstrip('0')
下面程式的功能是從鍵盤讀入一個英文句子,將其轉換為標題格式,即每個單詞的首字母大寫,程式運行后的輸入輸出情況如下圖所示,請在橫線處填寫適當的陳述句或運算式將程式補充完整,

源程式:
s=input(‘s=’)
s=s.split()
t=’’
for i in s:
if not i.istitle():
i=chr(ord(i[0])-32)+ __________________________________________
t+=i+’ ’
else:
t=t.strip()
print(t)
答:
i[1:]
下面程式的功能是從鍵盤讀入一個由英文字母和阿拉伯數字組成的字串,當該字串滿足英文字母和阿拉伯數字交替出現(即沒有連續兩個英文字母或連續兩個阿拉伯數字出現)時,輸出“Yes”,否則輸出“No”,程式運行后的輸入輸出情況如下圖所示,請在橫線處填寫適當的陳述句或運算式將程式補充完整,


源程式:
import re
s=input(‘s=’)
z=re.search(’\d{2,}|[a-z]{2,}’,s, __________________________________________)
if(z):
print(‘No’)
else:
print(‘Yes’)
print(z)
答:
0
re.M|re.I
都可以,不太懂,看下面的題感覺0不太行,還是re.M|re.I好,re.I也行
Python 正則運算式|菜鳥教程
下面程式的功能是從鍵盤讀入一個英語單詞,判斷該單詞是否是以“er結尾”,如果該單詞是以“er結尾”的,則輸出“Yes”,否則輸出“No”,程式運行后的輸入輸出情況如下圖所示,請在橫線處填寫適當的陳述句或運算式將程式補充完整,

源程式:
import re
s=input(‘s=’)
z=re.search(,s,re.I)
if(z):
print(‘Yes’)
else:
print(‘No’)
print(z)
答:
'er$'
嚴謹一點可以不匹配非字母以外的字符,這里輸入 12er 也會判斷該單詞是以er結尾的,
下面程式的功能是從鍵盤連續讀入幾個整數,整數之間用逗號分隔,求這些整數之和,程式運行后的輸入輸出情況如下圖所示,請在橫線處填寫適當的陳述句或運算式將程式補充完整,

源程式:
import re
x=input(‘x=’)
t=re.split(’,’,x)
y=[__________________________________________ for i in t]
s=sum(y)
print(‘s={}’.format(s))
答:
int(i)
下面程式的功能是從鍵盤讀入一個正方形矩陣的行數,用串列構造該方陣,將其兩條對角線元素設定為1,其余元素設定為0,然后按照矩陣形狀輸出該矩陣,程式運行后的輸入輸出情況如下圖所示,請在橫線處填寫適當的陳述句或運算式將程式補充完整,

源程式:
n=eval(input(‘n=’))
t=[[0]*n for i in range(n)]
for i in range(n):
print(t[i])
for i in range(n):
t[i][i]=1
t[i][n-i-1]=1
for i in range(n):
for j in range(n):
print(‘t[{}][{}]={:??}’.format(______________________________,end=’’)
print()
for i in range(n):
print(t[i])
答:
i,j,t[i][j]
題目少了一個括號)
為什么會有一個愛心?
下面程式的功能是從鍵盤讀入一個矩陣的行數和列數,用串列構造該矩陣,將其所有靠邊的元素設定為1,其余元素設定為0,然后按照矩陣形狀輸出該矩陣,,程式運行后的輸入輸出情況如下圖所示,請在橫線處填寫適當的陳述句或運算式將程式補充完整,

源程式:
m,n=eval(input(‘m,n=’))
t=[[1]*n for i in range(m)]
for i in range(m):
print(t[i])
for i in range(1,m-1):
for j in range(1, __________________________________________):
t[i][j]=0
print()
for i in range(m):
print(t[i])
答:
n-1
顯而易見
下面程式的功能是將一個矩陣轉置,然后再輸出它,程式運行后的輸入輸出情況如下圖所示,請在橫線處填寫適當的陳述句或運算式將程式補充完整,提示:矩陣轉置就是將矩陣中t[i][j]與t[j][i]元素互換,

源程式:
t=[[1,2,3],[4,5,6],[7,8,9]]
for i in range(len(t)):
print(t[i])
for i in range(len(t)):
for j in range(i):
t[i][j],t[j][i]= __________________________________________
print()
for i in range(len(t)):
print(t[i])
答:
t[j][i],t[i][j]
顯而易見*2
下面程式的功能是從鍵盤讀入一個正方形矩陣的行數,用串列構造該方陣,將其右上三角元素設定為1,其余元素設定為0,然后按照矩陣形狀輸出該矩陣,程式運行后的輸入輸出情況如下圖所示,請在橫線處填寫適當的陳述句或運算式將程式補充完整,

源程式:
n=eval(input(‘n=’))
t=[[0]*n for i in range(n)]
for i in range(n):
print(t[i])
for i in range(n):
for j in range(__________________________________________,n):
t[i][j]=1
print()
for i in range(n):
print(t[i])
答:
i
顯而易見*3
下面程式的功能是從鍵盤讀入一個正方形矩陣的行數,用串列構造該方陣,將其左下三角元素設定為1,其余元素設定為0,然后按照矩陣形狀輸出該矩陣,程式運行后的輸入輸出情況如下圖所示,請在橫線處填寫適當的陳述句或運算式將程式補充完整,

源程式:
n=eval(input(‘n=’))
t=[[0]*n for i in range(n)]
for i in range(n):
print(t[i])
for i in range(n):
for j in range(n):
if(__________________________________________):
t[i][j]=1
print()
for i in range(n):
print(t[i])
答:
i>=j
下面程式的功能是從鍵盤讀入一個正方形矩陣的行數,用串列構造該方陣,將其左上三角元素設定為1,其余元素設定為0,然后按照矩陣形狀輸出該矩陣,程式運行后的輸入輸出情況如下圖所示,請在橫線處填寫適當的陳述句或運算式將程式補充完整,

源程式:
n=eval(input(‘n=’))
t=[[0]*n for i in range(n)]
for i in range(n):
print(t[i])
for i in range(n):
for j in range(n):
if(__________________________________________<n):
t[i][j]=1
print()
for i in range(n):
print(t[i])
答:
i+j
下面程式的功能是從鍵盤讀入一個正方形矩陣的行數,用串列構造該方陣,將其主對角帶元素設定為1,其余元素設定為0,然后按照矩陣形狀輸出該矩陣,程式運行后的輸入輸出情況如下圖所示,請在橫線處填寫適當的陳述句或運算式將程式補充完整,

源程式:
n=eval(input(‘n=’))
t=[[0]*n for i in range(n)]
for i in range(n):
print(t[i])
for i in range(n):
if(i-1>=0):t[i-1][i]=1
t[i][i]=1
if(i+1<n):t[__________________________________________][i]=1
print()
for i in range(n):
print(t[i])
答:
i+1
下面程式的功能是從鍵盤讀入一串字符,統計其中各個字符的出現次數,并輸出出現頻次最高的字符及其出現的次數,程式運行后的輸入輸出情況如下圖所示,請在橫線處填寫適當的陳述句或運算式將程式補充完整,

源程式:
s=input(‘s=’)
t=list(s)
d={}.fromkeys(set(t), __________________________________________)
for i in t:
d[i]=d[i]+1
print(d)
n=max(d.values())
for k,v in d.items():
if(v==n):
m=k
break
print(“d[’{}’]={}”.format(m,n))
答:
0
下面程式的功能是從鍵盤讀入正整數n,生成n個在[0,5]范圍內的亂數,統計不同數字出現的次數,并按照升序輸出之,程式運行后的輸入輸出情況如下圖所示,請在橫線處填寫適當的陳述句或運算式將程式補充完整,

源程式:
import random
n=eval(input(‘n=’))
s=[random.randint(0,5) for i in range(n)]
print(s)
t=set(s)
d={}
for i in t:
__________________________________________=s.count(i)
print(d)
print(sorted(d.items()))
答:
d[i]
下面程式的功能是從鍵盤讀入一串字符,刪去重復字符(即重復字符只保留一個),最后輸出之,程式運行后的輸入輸出情況如下圖所示,請在橫線處填寫適當的陳述句或運算式將程式補充完整,

源程式:
s=input(‘s=’)
t=list(s)
x=__________________________________________
y=’’.join(x)
print(y)
答:
set(t)
下面程式的功能是從鍵盤讀入一串字符,刪去重復字符(即重復字符只保留一個),最后按照各個字符首次出現的次序輸出之,程式運行后的輸入輸出情況如下圖所示,請在橫線處填寫適當的陳述句或運算式將程式補充完整,

源程式:
s=input(‘s=’)
t=list(s)
x=’’
for i in t:
if i not in __________________________________________:
x+=i
print(x)
答:
x
下面程式的功能是將26個英文小寫字母及其ASCII碼組成一個字典,并輸出之,程式運行后的輸入輸出情況如下圖所示(由于篇幅限制,在此只顯示前幾個詞條),請在橫線處填寫適當的陳述句或運算式將程式補充完整,

源程式:
import string
c=string.ascii_letters
k=[(i, __________________________________________) for i in c if(i>=‘a’)]
d=dict(k)
for k,v in d.items():
print(“d[’{}’]={}”.format(k,v))
答:
ord(i)
下面程式的功能是從鍵盤讀入某系統的5個登錄賬號和密碼,并構建成字典,最后輸出之,程式運行后的輸入輸出情況如下圖所示,請在橫線處填寫適當的陳述句或運算式將程式補充完整,

源程式:
d=__________________________________________
for i in range(3):
n=input(‘name=’)
k=input(‘key=’)
d[n]=k
print(d)
答:
{}
這種題確定不是在逗我?
下面程式的功能是實作數字加密功能,將10個阿拉伯數字分別用10個英文字母表示,讀入一個數字字串,將其轉換為密文并輸出之,程式運行后的輸入輸出情況如下圖所示,請在橫線處填寫適當的陳述句或運算式將程式補充完整,

源程式:
m=list(‘0123456789’)
n=list(‘cbafedhgji’)
d=dict(zip(__________________________________________))
print(d)
s=input(‘s=’)
t=[d[i] for i in s]
x=’’.join(t)
print(x)
答:
m,n
撰寫一段程式實作下面的功能:從鍵盤讀入秘鑰數字和明文,使用凱撒密碼演算法,將明文加密為密文,
提示:愷撒密碼是一種替換加密的技術,明文中的所有字母都在英文字母表上向后(或向前)按照一個固定數目(秘鑰)進行偏移后被替換成密文,例如,當偏移量是3(即key=3)的時候,所有的字母A將被替換成D,B變成E,以此類推,W變成Z,X變成A,Y變成B,Z變成C,

例如:明文=hello,則對應的密文=khoor,
答:
key=int(input('key='))
s=input('s=')
c=''
for i in s:
if i.isalpha():
temp=ord(i)+key
if chr(temp).isalpha():
c+=chr(temp)
else:
c+=chr(temp-26)
else:
c+=i
print(c)
注意越界,比如z-c
撰寫一段程式實作下面的功能:隨機產生一個長度為10的任意字串(見下面的代碼段),將其中的英文字母、阿拉伯數字和其他字符篩選出來各自單獨組成一個字串,例如:
隨機字串是:‘a@B23#c&4dE*?5’,將被拆分為三個字串:‘aBcdE’,‘2345’,’@#&*?’,
import re,string,random
c=string.ascii_letters+string.digits+string.punctuation
t=[random.choice? for i in range(10)]
s=’’.join(t)
print(s)
答:
import re,string,random
c=string.ascii_letters+string.digits+string.punctuation
t=[random.choice(c) for i in range(10)]
s=''.join(t)
print(s)
s1=''
s2=''
s3=''
for i in s:
if i.isalpha():
s1+=i
elif i.isdigit():
s2+=i
else:
s3+=i
print(s1)
print(s2)
print(s3)
還是這種題有點意思,比填空好多了
單項選擇題

第92題有點問題,
菜鳥教程上寫的是- > & > ^ = |,另一個博客上寫的是 - > & > ^ > |,我選擇相信博客的說法,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/238068.html
標籤:python
上一篇:Python學習:Pandas庫



