1. 程式人生 > 其它 >python複習之易錯或難解題集合(列出對應知識點)(詳解答案)(結合程式不同執行結果說明)

python複習之易錯或難解題集合(列出對應知識點)(詳解答案)(結合程式不同執行結果說明)

技術標籤:pythonpython列表字串其他演算法

複習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
not0外任意數字(包括負數)    // 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%,若想轉載請註明原連結,歡迎下次再來!!