Python面試題



尊敬的讀者,這些Python程式語言面試題是專門為幫助您瞭解在Python程式語言面試中可能遇到的問題型別而設計的。根據我的經驗,優秀的 interviewers 很少會提前計劃好要問哪些具體問題,通常問題會從該主題的一些基本概念開始,然後根據進一步的討論和您的回答繼續進行。

Python 是一種高階的、解釋型的、互動式的和麵向物件的指令碼語言。Python 的設計目標是使其具有高度的可讀性。它經常使用英語關鍵字,而其他語言使用標點符號,並且它比其他語言具有更少的句法結構。

以下是Python的一些顯著特性:

  • 它支援函式式和結構化程式設計方法以及面向物件程式設計。

  • 它可以用作指令碼語言,也可以編譯成位元組碼以構建大型應用程式。

  • 它提供非常高階的動態資料型別並支援動態型別檢查。

  • 它支援自動垃圾回收。

  • 它可以很容易地與C、C++、COM、ActiveX、CORBA和Java整合。

PYTHONPATH - 它與PATH的作用類似。這個變數告訴Python直譯器在哪裡查詢匯入到程式中的模組檔案。它應該包含Python原始碼庫目錄和包含Python原始碼的目錄。PYTHONPATH有時由Python安裝程式預設。

PYTHONSTARTUP - 它包含一個初始化檔案的路徑,該檔案包含Python原始碼。每次啟動直譯器時都會執行它。在Unix中,它被命名為.pythonrc.py,它包含載入實用程式或修改PYTHONPATH的命令。

PYTHONCASEOK - 它用於在Windows中指示Python在import語句中查詢第一個不區分大小寫的匹配項。將此變數設定為任何值以啟用它。

PYTHONHOME - 它是替代的模組搜尋路徑。它通常嵌入在PYTHONSTARTUP或PYTHONPATH目錄中,以方便切換模組庫。

是的!Python是一種區分大小寫的程式語言。

Python有五種標準資料型別:

  • 數字

  • 字串

  • 列表

  • 元組

  • 字典

它將列印完整的字串。輸出將是Hello World!。

它將列印字串的第一個字元。輸出將是 H。

它將列印從第 3 個到第 5 個字元。輸出將是 llo。

它將列印從第 3 個字元開始的字元。輸出將是 llo World!。

它將列印字串兩次。輸出將是 Hello World!Hello World!。

它將列印連線後的字串。輸出將是 Hello World!TEST。

它將列印完整的列表。輸出將是 ['abcd', 786, 2.23, 'john', 70.200000000000003]。

它將列印列表的第一個元素。輸出將是 abcd。

它將列印從第二個到第三個元素。輸出將是 [786, 2.23]。

它將列印從第三個元素開始的元素。輸出將是 [2.23, 'john', 70.200000000000003]。

它將列印列表兩次。輸出將是 [123, 'john', 123, 'john']。

它將列印連線後的列表。輸出將是 ['abcd', 786, 2.23, 'john', 70.2, 123, 'john']

元組是另一種序列資料型別,類似於列表。元組由多個用逗號分隔的值組成。但是,與列表不同,元組用括號括起來。

列表和元組的主要區別在於:列表用方括號 ([ ]) 括起來,其元素和大小可以更改,而元組用括號 (( )) 括起來,不能更新。元組可以被認為是隻讀列表。

它將列印完整的元組。輸出將是 ('abcd', 786, 2.23, 'john', 70.200000000000003)。

它將列印元組的第一個元素。輸出將是 abcd。

它將列印從第二個到第三個元素。輸出將是 (786, 2.23)。

它將列印從第三個元素開始的元素。輸出將是 (2.23, 'john', 70.200000000000003)。

它將列印元組兩次。輸出將是 (123, 'john', 123, 'john')。

它將列印連線後的元組。輸出將是 ('abcd', 786, 2.23, 'john', 70.200000000000003, 123, 'john')。

Python 的字典是一種雜湊表型別。它們的工作方式類似於 Perl 中的關聯陣列或雜湊,由鍵值對組成。字典鍵幾乎可以是任何 Python 型別,但通常是數字或字串。另一方面,值可以是任何任意的 Python 物件。

字典用花括號 ({ }) 括起來,可以使用方括號 ([]) 分配和訪問值。

dict = {}
dict['one'] = "This is one"
dict[2]     = "This is two"
tinydict = {'name': 'john','code':6734, 'dept': 'sales'}

使用 dictionary.keys() 函式,我們可以從字典物件中獲取所有鍵。

print dict.keys()   # Prints all the keys

使用 dictionary.values() 函式,我們可以從字典物件中獲取所有值。

print dict.values()   # Prints all the values

int(x [,base]) - 將 x 轉換為整數。如果 x 是字串,則 base 指定基數。

long(x [,base] ) - 將 x 轉換為長整數。如果 x 是字串,則 base 指定基數。

float(x) − 將 x 轉換為浮點數。

str(x) − 將物件 x 轉換為字串表示形式。

repr(x) − 將物件 x 轉換為表示式字串。

eval(str) − 評估字串並返回一個物件。

tuple(s) − 將 s 轉換為元組。

list(s) − 將 s 轉換為列表。

set(s) − 將 s 轉換為集合。

dict(d) − 建立一個字典。d 必須是 (鍵,值) 元組的序列。

frozenset(s) − 將 s 轉換為凍結集合。

chr(x) − 將整數轉換為字元。

unichr(x) − 將整數轉換為 Unicode 字元。

ord(x) − 將單個字元轉換為其整數值。

hex(x) − 將整數轉換為十六進位制字串。

oct(x) − 將整數轉換為八進位制字串。

** 指數 - 對運算子執行指數(冪)計算。如果 a = 10 且 b = 20,則 a**b = 10 的 20 次冪。

// 地板除法 - 運算數的除法,結果是商,其中小數點後的數字被刪除。

is - 如果運算子兩側的變數指向同一個物件,則評估結果為真,否則為假。x is y,如果 id(x) 等於 id(y),則結果為 1。

not in - 如果在指定的序列中找不到變數,則評估結果為真,否則為假。x not in y,如果 x 不是序列 y 的成員,則 not in 的結果為 1。

break 語句 - 終止迴圈語句並將執行轉移到緊跟在迴圈後面的語句。

continue 語句 - 使迴圈跳過其主體其餘部分,並在重新迭代之前立即重新測試其條件。

pass 語句 - Python 中的 pass 語句用於在語法上需要語句但不需要執行任何命令或程式碼時。

choice(seq) − 從列表、元組或字串中返回一個隨機項。

randrange ([start,] stop [,step]) − 從 range(start, stop, step) 返回一個隨機選擇的元素。

random() − 返回一個隨機浮點數 r,使得 0 小於或等於 r 且 r 小於 1。

seed([x]) − 設定用於生成隨機數的整數起始值。在呼叫任何其他隨機模組函式之前呼叫此函式。返回 None。

shuffle(lst) − 就地隨機化列表的專案。返回 None。

capitalize() − 將字串的首字母大寫。

isalnum() − 如果字串至少有 1 個字元且所有字元都是字母數字字元,則返回 true,否則返回 false。

isdigit() − 如果字串僅包含數字,則返回 true,否則返回 false。

islower() − 如果字串至少有 1 個大小寫字元且所有大小寫字元都小寫,則返回 true,否則返回 false。

isnumeric() − 如果 Unicode 字串僅包含數字字元,則返回 true,否則返回 false。

isspace() − 如果字串僅包含空格字元,則返回 true,否則返回 false。

istitle() − 如果字串正確地進行了“標題大小寫”,則返回 true,否則返回 false。

isupper() − 如果字串至少包含一個大小寫字元,並且所有大小寫字元都為大寫,則返回 True;否則返回 False。

join(seq) − 使用分隔符字串,將序列 seq 中元素的字串表示形式合併(連線)成一個字串。

len(string) − 返回字串的長度。

ljust(width[, fillchar]) − 返回一個用空格填充的字串,其中原始字串左對齊到總共 width 列。

lower() − 將字串中的所有大寫字母轉換為小寫。

lstrip() − 刪除字串中所有前導空格。

max(str) − 返回字串 str 中最大的字母字元。

min(str) − 返回字串 str 中最小的字母字元。

replace(old, new [, max]) − 將字串中所有出現的 old 替換為 new,如果給定 max,則最多替換 max 次。

strip([chars]) − 對字串執行 lstrip() 和 rstrip() 操作。

swapcase() − 反轉字串中所有字母的大小寫。

title() − 返回字串的“標題大小寫”版本,即所有單詞都以大寫字母開頭,其餘為小寫。

upper() − 將字串中的所有小寫字母轉換為大寫。

isdecimal() − 如果 Unicode 字串僅包含十進位制字元,則返回 True;否則返回 False。

要刪除列表元素,如果知道要刪除哪個確切的元素,可以使用 del 語句;如果不知道,可以使用 remove() 方法。

3.

[1, 2, 3, 4, 5, 6]

['Hi!', 'Hi!', 'Hi!', 'Hi!']

True

1
2
3

3,偏移量從零開始。

2,負數:從右邊計數。

2, 3,切片獲取部分。

cmp(list1, list2) − 比較兩個列表的元素。(注:`cmp` 函式在 Python 3 中已移除,可以使用其他方法例如比較運算子進行比較)

len(list) − 返回列表的總長度。

max(list) − 返回列表中值最大的專案。

min(list) − 返回列表中值最小的專案。

list.index(obj) − 返回列表中 obj 首次出現的最低索引。

list.insert(index, obj) − 在索引 index 處將物件 obj 插入列表。

list.pop(obj=list[-1]) − 刪除並返回列表中的最後一個物件或 obj。

list.remove(obj) − 從列表中刪除物件 obj。

list.reverse() − 就地反轉列表中的物件。

list.sort([func]) − 對列表中的物件進行排序,如果給出,則使用比較函式 func。

“lambda”是 Python 中的一個關鍵字,用於建立匿名函式。lambda 函式不包含語句塊,也不包含 return 語句。

存根 (Stub)。

棧 (Stack)。

是。

Python 中有一些模組和函式只能在某些平臺上執行。

是的,它有一個編譯器,該編譯器會自動工作,因此我們不會注意到 Python 的編譯器。

Django(Python 的 Web 框架)。

2. 微框架,例如 Flask 和 Bottle。

3. 用於高階內容管理的 Plone 和 Django CMS。

下表解釋了 Python 2 版本和 Python 3 版本之間的區別。

序號 部分 Python 2 版本 Python 3 版本
1. 列印函式

列印命令無需括號即可使用。

Python 3 需要括號才能列印任何字串。如果沒有括號,它將引發錯誤。

2. Unicode

ASCII str() 型別和單獨的 Unicode(),但在 Python 2 中沒有位元組型別程式碼。

Unicode (utf-8),它有兩個位元組類:

  • 位元組
  • 位元組陣列。

3. 異常

Python 2 接受新的和舊的語法表示法。

當我們不將異常引數括在括號中時,Python 3 將依次引發 SyntaxError。

4. 比較不可排序型別

它不會引發任何錯誤。

如果我們嘗試比較不可排序的型別,它會引發“TypeError”作為警告。

Jython

(Jython 是 Jpython 的繼承者。)

是。

否。

OS。

當代碼行縮排 4 個空格時,一個程式碼塊開始。

def check(a,b):
   if(len(a)!=len(b)):
      return False
   else:
      if(sorted(list(a)) == sorted(list(b))):
         return True
   else:
      return False

Scikit-learn 是用於機器學習的 Python 庫。

pass 表示什麼都不做,即表示空操作。

Pylint 和 pychecker。

計算列表中所有數字之和的程式為:

def sum(numbers):
   total = 0
   for num in numbers:
      total+=num
   print(''Sum of the numbers: '', total)
sum((100, 200, 300, 400, 0, 500))

我們定義一個名為“sum”的函式,引數為 numbers。在 for 迴圈中,我們儲存列表所有值的總和。

反轉字串的程式如下:

def string_reverse(str1):

rev_str = ' '
index = len(str1) #defining index as length of string.
while(index>0):
   rev_str = rev_str + str1[index-1]
   index = index-1
   return(rev_str)

print(string_reverse('1tniop'))

首先,我們宣告一個變數來儲存反轉後的字串。然後使用 while 迴圈和字串的索引(索引由字串長度計算),我們反轉字串。當索引大於零時,while 迴圈開始。每次索引減少 1。當索引達到零時,我們得到字串的反轉。

程式為:

def test_range(num):
   if num in range(0, 101):
      print(''%s is in range''%str(num))
   else:
      print(''%s is not in range''%str(num))

輸出:

test_range(101)

101 不在範圍內

為了測試特定範圍內的任何數字,我們使用“if..in”方法和 else 條件。

程式為:

def string_test(s):

a = { ''Lower_Case'':0 , ''Upper_Case'':0} #intiail count of lower and upper
for ch in s: #for loop
   if(ch.islower()): #if-elif-else condition
      a[''Lower_Case''] = a[''Lower_Case''] + 1
   elif(ch.isupper()):
      a[''Upper_Case''] = a [''Upper_Case''] + 1
   else:
      pass

print(''String in testing is: '',s) #printing the statements.
print(''Number of Lower Case characters in String: '',a[''Lower_Case''])
print(''Number of Upper Case characters in String: '',a[''Upper_Case''])

輸出:

string_test("Tutorials POINT")

正在測試的字串是:Tutorials POINT

字串中小寫字元的數量:8

字串中大寫字元的數量:6

我們使用 .islower() 和 .isupper() 方法。我們初始化小寫和大寫的計數。使用 if 和 else 條件,我們計算小寫和大寫字元的總數。

下一步是什麼?

接下來,您可以回顧一下您以前完成的作業,並確保您可以自信地談論它們。如果您是應屆畢業生,面試官並不期望您回答非常複雜的問題,而是要確保您的基礎概念非常紮實。

其次,如果您無法回答一些問題,這並不重要,重要的是您回答的任何問題,都必須充滿自信地回答。所以在面試中要充滿自信。我們在 tutorialspoint 祝您面試順利,並祝您未來的事業一切順利。乾杯 :-)

廣告