Python面試知識點

1.Python

Python是強類型語言,這意味着每個對象都有明確的類型(或類),默許轉換隻能發生在特定的情況下:

>>> a = 4.5
>>> b = 2
>>> a/b
2.25

判斷某個對象是否是某個類的實例,使用 isinstance函數:

a = 4.5
b = 4
isinstance(a, (int, float))
isinstance(b, (int, float))

2.鴨子類型

通常的,可能不需要知道對象的類型,只關心對象具有哪些方法或用途。通常被稱爲鴨子類型

判斷兩個引用是否指向同一對象:

  • 同一引用,使用 is
  • 反之用 is not

isis not 常用來判斷一個對象是否是None,因爲只有一個None的實例

3.可變類型和不可變類型

  • 可變類型:list,dict,Numpy數組,用戶定義的類型(類)
  • 不可變類型:數值類型,字符串,元組

int可以存儲任意大的數

4.字符串格式化

{0:.2f}表示格式化第一個參數爲帶有2個小數點的float類型
{1:s}表示格式化第二個參數爲字符串
{2:d}表示格式化第三個參數爲整數

例:

>>>templates = '{0:.2f}{1:s} are worth US${2:d}'
>>>templates.format(4.5660, 'Argentine Pesos', 1)
>>>4.57Argentine Pesos are worth US$1

5.字節和Unicode

在Python3及以上的版本中, Unicode是一級的字符串類型,這樣可以更一致的處理ASCII和Non-ASCII文本。在老的Python版本中,字符串都是字節,不使用Unicode編碼。

  • 兩個最流行的Unicode編碼方案是UTF-8和UTF-16
  • Unicode是一個簡單的標準,用來把字符映射到數字上。
  • Unicode並不告訴你字符是怎麼編碼成字節的。這是被編碼方案決定的,通過UTF來指定。

6.None

  • None是Python的空值類型,如果一個函數沒有明確的函數返回值,則默認返回None
  • None也常常作爲函數參數的默認值
  • None不僅僅是一個保留字,還是NoneType的實例
>>>type(None)
>>>NoneType

7.range

range 函數返回一個迭代器,它產生一個均勻分佈的整數序列

8.三元表達式

value = true-expr if condition else fase-expr

9. str.title

str.title返回str的所有單詞的首字母大寫格式

mgw = 'my name is jack!'
x = mgw.title()
print(x)
My Name Is Jack!

10.柯里化

指通過“部分參數應用”從現有函數派生出新函數的技術。

例如:

有計算兩數相加的函數add_numbers,通過該函數派生出有一個參數的函數 add_five

def add_numbers(x, y):
    return x+y

add_five = lambda y: add_numbers(5, y)
print(add_five(6))
>>> 11

add_numbers函數的第二個參數成爲“柯里化的”,內置的functools模塊中的partial函數進行簡化:

from functools import partial
add_five = partial(add_numbers, 5)
print(add_five(6))
>>> 11

12.range和xrange

range返回一個序列,xrange和range類似,但是他是一個生成器,它生成的數是一個個取出,所以xrange的性能更強

range(0,5)
[0, 1, 2, 3, 4]

xrange(0, 5)
xrange(5)

公衆號:一丁點技術
公衆號:一丁點技術

發佈了48 篇原創文章 · 獲贊 72 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章