python複習之易錯或難解題集合(列出對應知識點)(詳解答案)(結合程式不同執行結果說明)
複習python時,遇到的一些易錯題,網上沒有詳細的解釋,總結一下,若有錯誤和改進意見,歡迎評論交流!
1. 語句sorted([1, 2, 3], reverse=True) == reversed([1, 2, 3])執行結果為______。
正確答案: False
sorted() 函式對所有可迭代的物件進行排序操作,sorted(iterable, reverse=False) 即進行降序排列,返回的是降序排列後的原型別物件;reversed 函式返回一個反轉的迭代器,即任意的可迭代型別,需用list()函式轉換為列表物件
print(sorted([1, 2, 3], reverse=True) == list(reversed([1, 2, 3])))
輸出為:
2. sorted([111, 2, 33], key=lambda x: len(str(x)))的執行結果為______。
正確答案: [2,33,111]
sorted函式原型:sorted(iterable, key=None, reverse=False) ,key = 元素用來進行比較的引數;
lambda x: len(str(x)) 是python中的匿名函式,x是引數,返回值是len(str(x)),即元素轉換為字串後的長度
3. 表示式 3 and not 5 的值為______。
正確答案: False
not 5 返回 False,所以返回 False
not 0 // True
not -0 // True
not 0.0 // True
not 0+0j // True
not False // True
not 除0外任意數字(包括負數) // False
4. 已知列表 x = [1, 2],那麼表示式 list(enumerate(x)) 的值為______。
正確答案: [(0,1),(1,2)]
enumerate() 函式將一個可遍歷的資料物件(如列表、元組或字串),組合為一個索引序列:元素下標和資料,原型為:enumerate(sequence, [start=0]),預設從0開始。一般用在 for 迴圈當中,下題中可見
輸出中的(0,1)為下標為0,資料為1,(1,2)為下標為1,資料為2
5. 表示式 [index for index, value in enumerate([3,5,7,3,7]) if value == max([3,5,7,3,7])] 的值為______。
正確答案: [2, 4]
[ … for … in … if …] 為列表推導式的語法形式,題中的語句等價為:
result = []
for index, value in enumerate([3, 5, 7, 3, 7]):
if value == max([3, 5, 7, 3, 7]):
result.append(index)
print(result)
輸出為:
6. 以下程式的輸出結果是(提示:ord(’ a ')==97):
lista = [1, 2, 3, 4, 5, 'a', 'b', 'c', 'd', 'e']
print(lista[2] + lista[5])
正確答案: TypeError
python中型別不同,不能相加拼接
不同型別進行比較,如果其中一個是數字( int /float /long /complex 等),則數字型<其它非數字型;如果兩個都是非數字型,則:
tuple () > str > list [ ] > dict {} > number
python 3.X 不支援str和數字型別進行比較,會報異常
7. 執行下列Python語句後輸出顯示的結果是( )。
s = ”GOOD MORNING”
print s[3:-4]
正確答案: D MOR
[ start : end : step ] 是切片的語法形式,start 和 end 是開始和結束的元素下標,前取後不取,即 end 下標位置的元素不取。負數則從後向前數,從-1開始
G O O D M O R N I N G
0 1 2 3 -4-3-2-1
8. 執行下面操作後,y的值是( )。
g= map(str, range(10))
g.__next__()
g.__next__()
x = 1 in g
y = '4' in g
正確答案: False
解釋在:g= map(str, range(10)) g.next() g.next() x = 1 in g y = ‘4‘ in g …python易錯題詳解
這裡是平平無奇的77,妄想優秀 ▇ ▇ ▇ ▇ ▇ ▇ ▇ ▇ ▇ … 0%,若想轉載請註明原連結,歡迎下次再來!!