第七章Tuple +List + Set + Dictionary [序對+串列+集合+字典]-習題
習題1
請使用集合功能來完成以下問題:市立入江小學3年4組正舉辦期中考試,數學及格的有:長山、小玉、花輪、永澤、小丸子,英文及格的有:永澤、花輪、丸尾、野口、美環。請分別列出「數學及格且英文不及格的同學名單」和「數學不及格且英文及格的同學名單」。
請使用集合功能來完成以下問題:市立入江小學3年4組正舉辦期中考試,數學及格的有:長山、小玉、花輪、永澤、小丸子,英文及格的有:永澤、花輪、丸尾、野口、美環。請分別列出「數學及格且英文不及格的同學名單」和「數學不及格且英文及格的同學名單」。
觀看解答
math = {"長山", "小玉", "花輪", "永澤", "小丸子"} # 數學及格 english = {"永澤", "花輪", "丸尾", "野口", "美環"} # 英文及格 print(math-english) # 數學及格、英文不及格 print(english-math) # 英文及格、數學不及格 執行結果: (元素順序可能不同) {'小丸子', '小玉', '長山'} {'野口', '美環', '丸尾'}習題2
請利用迴圈及串列的append和pop功能:將「資料i (i=1, …, 10)」倒序放入串列folder中,例如(10,9,8...)。然後,再將資料順序取出,例如(1,2,3...)。
請利用迴圈及串列的append和pop功能:將「資料i (i=1, …, 10)」倒序放入串列folder中,例如(10,9,8...)。然後,再將資料順序取出,例如(1,2,3...)。
觀看解答
folder = [] # 建立空串列 for i in range(10, 0, -1): # 由10至1,一次遞減1 folder.append("資料" + str(i)) # 在串列最尾加上"資料i" for j in range(1, 11): # 由1至10 print(folder.pop()) # 取出串列中最後一個元素並顯示 執行結果: 資料1 資料2 資料3 資料4 資料5 資料6 資料7 資料8 資料9 資料10習題3
請將"The Beatles split up in April 1970."用字串的split功能(請參閱附錄一)以半形空白分割為多個子字串,然後再印出index為2的子字串。
請將"The Beatles split up in April 1970."用字串的split功能(請參閱附錄一)以半形空白分割為多個子字串,然後再印出index為2的子字串。
觀看解答
sentence = "The Beatles split up in April 1970." sentence = sentence.split(" ") # 以半形空白做切割 print(sentence[2]) # 印出第3個字串 執行結果:split習題4
若執行下列程式碼,則輸出值應為多少?
>>>
list2_3 = [[1, 2, 3], [4, 5, 6]]
print(list2_3[1][2])
>>
若執行下列程式碼,則輸出值應為多少?
>>>
list2_3 = [[1, 2, 3], [4, 5, 6]]
print(list2_3[1][2])
>>
觀看解答
6習題5
讓使用者輸入一個2x3的矩陣,再翻轉後輸出。
讓使用者輸入一個2x3的矩陣,再翻轉後輸出。
觀看解答
# 使用者輸入 row1 = input("請輸入2x3矩陣的第一列(各元素請用半形空白作區隔):") row2 = input("請輸入2x3矩陣的第二列(各元素請用半形空白作區隔):") # 分割 row1 = row1.split(" ") row2 = row2.split(" ") # 建立二維串列 matrix = [row1, row2] # 轉置輸出 for m in range(3): for n in range(2): print(matrix[n][m], end=' ') print()觀看解答
# 兩矩陣資料 matrix1 = [[1, 0, 2], [-1, 3, 1]] matrix2 = [[3, 1], [2, 1], [1, 0]] # 預設結果矩陣各元素為0 matrixDot = [[0, 0], [0, 0]] # 矩陣乘法 for m in range(2): for n in range(2): for i in range(3): matrixDot[m][n] += matrix1[m][i]*matrix2[i][n] # 輸出 print(matrixDot[0][0], matrixDot[0][1]) print(matrixDot[1][0], matrixDot[1][1]) 執行結果: 5 1 4 2觀看解答
# 矩陣資料 matrix = [[2, 5], [3, 7]] # 行列式值 matrix_det = matrix[0][0]*matrix[1][1] - matrix[0][1]*matrix[1][0] # 輸出 if (matrix_det != 0): print(matrix[1][1]/matrix_det, end=' ') print(-1*matrix[0][1]/matrix_det) print(-1*matrix[1][0]/matrix_det, end=' ') print(matrix[0][0]/matrix_det) else: print("False") 執行結果: 執行結果: -7.0 5.0 3.0 -2.0習題8
預設一串列progression = [1, 2, 4, 8],請設計一程式判斷該串列為等差數列或等比數列,並輸出下一項。
預設一串列progression = [1, 2, 4, 8],請設計一程式判斷該串列為等差數列或等比數列,並輸出下一項。
觀看解答
progression = [1, 2, 4, 8] if (progression[3]-progression[2] == progression[2]-progression[1]): print(progression, "為等差數列,下一項為", progression[3]*2-progression[2]) else: print(progression, "為等比數列,下一項為", progression[3]**2/progression[2]) 執行結果:[1, 2, 4, 8] 為等比數列,下一項為 16.0習題9
當使用者分別輸入「P」、「R」或「J」時,請利用字典(dict)的方法分別輸出「Python」、「Ruby」或「Java」。
當使用者分別輸入「P」、「R」或「J」時,請利用字典(dict)的方法分別輸出「Python」、「Ruby」或「Java」。
觀看解答
dic = {"P":"Python", "R":"Ruby", "J":"Java"} Str = input("請輸入P/R/J:") print(dic[Str])習題10
撰寫一程式讓使用者連續輸入數字,一次輸入一個。每當使用者輸入一個數字時,程式便輸出統計至此數的眾數與該數的出現次數;若眾數有兩個以上,則請用空白隔開。
撰寫一程式讓使用者連續輸入數字,一次輸入一個。每當使用者輸入一個數字時,程式便輸出統計至此數的眾數與該數的出現次數;若眾數有兩個以上,則請用空白隔開。