去面試Python工程師,這幾個基礎問題一定要能回答,Python面試題No4

夢想橡皮擦發表於2019-05-09

今天的面試題以基礎為主,去面試Python工程師,這幾個基礎問題不能答錯

第1題:列表和元組有什麼不同?

列表和元組是Python中最常用的兩種資料結構,字典是第三種。

相同點:

  • 都是序列
  • 都可以儲存任何資料型別
  • 可以通過索引訪問

語法差異

使用方括號[]建立列表,而使用括號()建立元組。

是否可變

列表是可變的,而元組是不可變的,這標誌著兩者之間的關鍵差異。

重用與拷貝

元組無法複製。 因為元組是不可變的,所以執行tuple(tuple_name)將返回自己

記憶體開銷

Python將低開銷的較大的塊分配給元組,因為它們是不可變的。 列表則分配小記憶體塊。 與列表相比,元組的記憶體更小。 ' 當你擁有大量元素時,元組比列表快。 列表的長度是可變的。

第2題:什麼是負索引?

Python中的序列索引可以是正也可以是負

如果是正索引,0是序列中的第一個索引,1是第二個索引。 如果是負索引,-1是最後一個索引,-2是倒數第二個索引。

	lst=[11,22,33,44,55]
複製程式碼

全取列表

>>> lst[:]
[11, 22, 33, 44, 55]
複製程式碼

取不到最後一個元素

>>> lst[:-1] # 注意這裡不能輸出55,因為切片操作都是左閉右開的
[11, 22, 33, 44]
複製程式碼

列表倒序

>>> lst[::-1]
[55, 44, 33, 22, 11]
複製程式碼

取最後一個

>>> lst[-1]
55
複製程式碼

取第一個

>>> lst[0]
11
複製程式碼

第3題: 如何隨機打亂列表中元素,要求不引用額外的記憶體空間?

用 random 包中的 shuffle() 函式來實現

import random
random.shuffle(你的列表)
# 舉個例子:
L1 = [1, 3, 5, 7]
random.shuffle(L1)
複製程式碼

第4題:解釋 Python 中的 join() 和 split() 函式?

join() 函式可以將指定的字元新增到字串中

‘1,2,3,4,5’
複製程式碼
a=','.join('123456')
print(a)
print(type(a))

#1,2,3,4,5,6

#<class 'str'>
複製程式碼

split() 函式可以用指定的字元分割字串

[‘1’, ‘2’, ‘3’, ‘4’, ‘5’]
複製程式碼
a='1,2,3,4,5,6'.split(',')
print(a)
print(type(a))


#['1', '2', '3', '4', '5', '6']
#<class 'list'>
複製程式碼

第5題:如何刪除字串中的前置空格?

  1. strip():把頭和尾的空格去掉
  2. lstrip():把左邊的空格去掉
  3. rstrip():把右邊的空格去掉
  4. replace('c1','c2'):把字串裡的c1替換成c2。故可以用replace(' ','')來去掉字串裡的所有空格
  5. split():通過指定分隔符對字串進行切片,如果引數num 有指定值,則僅分隔 num 個子字串
  6. re.split(r'\s+', 'a b c') # 使用正規表示式

第6題:Python 中的 pass 語句有什麼作用?

在編寫程式碼時只寫框架思路,具體實現還未編寫就可以用 pass 進行佔位,使程式不報錯,不會進行任何操作。

比如:

while False:
	pass
複製程式碼

pass通常用來建立一個最簡單的類:

class MyEmptyClass:
	pass
複製程式碼

pass在軟體設計階段也經常用來作為TODO,提醒實現相應的實現,比如:

def readtxt(*args):
	pass # to do list
複製程式碼

第7題:解釋 Python 中的成員運算子?

成員運算子

in 是判斷是否包含

通過成員運算子‘in’ 和 ‘not in’,確認一個值是否是另一個值的成員。

print('me' in 'disappointment')#True
print('us' in 'disappointment')#False
複製程式碼

身份運算子

is 是判斷記憶體地址

  • is 是判斷兩個識別符號是不是引用自一個物件
  • is not 是判斷兩個識別符號是不是引用自不同物件

tops: in 的 not 在前,is 的 not 在後

微信搜尋:非本科程式設計師,關注吧

掃碼關注非本科程式設計師

相關文章