您好,登錄后才能下訂單哦!
接著更新Python常見的面試題!
題目016:寫一個函數,給定矩陣的階數n,輸出一個螺旋式數字矩陣。
例如:n = 2,輸出:
例如:n = 3,輸出:
這個題目本身并不復雜,下面的代碼僅供參考。
def show
_spiral_matrix(n):
matrix = [
[0]
* n for _ in range(n)]
row, col = 0, 0
num, direction = 1, 0
while num <= n ** 2:
if matrix[
row][
col] == 0:
matrix[
row][
col] = num
num += 1
if direction == 0:
if col
<
n
-
1
and
matrix[
row][
col +
1] ==
0:
col +=
1
else:
direction +=
1
elif
direction ==
1:
if
row <
n
-
1
and
matrix[
row +
1][
col] ==
0:
row +=
1
else:
direction +=
1
elif
direction ==
2:
if
col > 0 and matrix[
row][
col - 1] == 0:
col -= 1
else:
direction += 1
else:
if row > 0 and matrix[
row - 1][
col] == 0:
row -= 1
else:
direction += 1
direction %= 4
for x in matrix:
for y in x:
print(y, end='\t')
print()
題目017:閱讀下面的代碼,寫出程序的運行結果。
items
=
[1,
2
,
3
,
4
]
print([i
for
i
in
items
if
i
>
2
])
print([i
for
i
in
items
if
i
%
2
])
print([(x,
y)
for
x,
y
in
zip('abcd',
(1,
2
,
3
,
4
,
5
))])
print({x:
f'item{x
**
2
}'
for
x
in
(2,
4
,
6
)})
print(len({x
for
x
in
'hello world'
if
x
not
in
'abcdefg'
}))
點評:生成式(推導式)屬于Python的特色語法之一,幾乎是面試必考內容。Python中通過生成式字面量語法,可以創建出列表、集合、字典。
[
3, 4]
[
1, 3]
[
('a', 1), ('b', 2), ('c', 3), ('d', 4)]
{2: 'item4', 4: 'item16', 6: 'item36'}
6
題目018:說出下面代碼的運行結果。
class
Parent:
x =
1
class Child1(Parent):
pass
class Child2(Parent):
pass
print(Parent.x, Child1.x, Child2.x)
Child1.x =
2
print(Parent.x, Child1.x, Child2.x)
Parent.x =
3
print(Parent.x, Child1.x, Child2.x)
點評:運行上面的代碼首先輸出1 1 1,這一點大家應該沒有什么疑問。接下來,通過Child1.x = 2給類Child1重新綁定了屬性x并賦值為2,所以Child1.x會輸出2,而Parent和Child2并不受影響。執行Parent.x = 3會重新給Parent類的x屬性賦值為3,由于Child2的x屬性繼承自Parent,所以Child2.x的值也是3;而之前我們為Child1重新綁定了x屬性,那么它的x屬性值不會受到Parent.x = 3的影響,還是之前的值2。
1
1
1
1
2
1
3
2
3
題目19:說說你用過Python標準庫中的哪些模塊。
點評:Python標準庫中的模塊非常多,建議大家根據自己過往的項目經歷來介紹你用過的標準庫和三方庫,因為這些內容應該是你最為熟悉的,經得起面試官深挖的。
題目20:__init__和__new__方法有什么區別?
Python中調用構造器創建對象屬于兩階段構造過程,首先執行__new__方法獲得保存對象所需的內存空間,再通過__init__執行對內存空間數據的填充(對象屬性的初始化)。__new__方法的返回值是創建好的Python對象(的引用),而__init__方法的第一個參數就是這個對象(的引用),所以在__init__中可以完成對對象的初始化操作。__new__是類方法,它的第一個參數是類,__init__是對象方法,它的第一個參數是對象。
溫馨提示:Python面試寶典會持續更新,從基礎到項目實戰的內容都會慢慢覆蓋到。雖然每天只更新5個題目,但是每道題擴散出的信息量還是比較大的,希望對找工作的小伙伴所有幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。