日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python助教的面试题_六个Python经典面试题(附详解)

發布時間:2024/9/30 python 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python助教的面试题_六个Python经典面试题(附详解) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 列表(list)和元組(tuple)有什么區別?

在我每一次應聘Python數據科學家的面試中,這個問題都會被問到。所以對這個問題的答案,我可以說是了如指掌。列表是可變的。創建后可以對其進行修改。元組是不可變的。元組一旦創建,就不能對其進行更改。

列表表示的是順序。它們是有序序列,通常是同一類型的對象。比如說按創建日期排序的所有用戶名,如["Seth",

"Ema", "Eli"]。

元組表示的是結構。可以用來存儲不同數據類型的元素。比如內存中的數據庫記錄,如(2, "Ema",

"2020–04–16")(#id, 名稱,創建日期)。

2. 如何進行字符串插值?

在不導入Template類的情況下,有3種方法進行字符串插值。

name = 'Chris'

# 1. f stringsprint(f'Hello {name}')

# 2. % operatorprint('Hey %s %s' % (name,

ame))

# 3. format

print(

"My name is {}".format((name)))

3. “is”和“==”有什么區別?

在我的Python職業生涯的早期,我認為它們是相同的,因而制造了一些bug。所以請大家聽好了,“is”用來檢查對象的標識(id),而“==”用來檢查兩個對象是否相等。我們將通過一個例子說明。創建一些列表并將其分配給不同的名字。請注意,下面的b指向與a相同的對象。

a = [1,2,3]

b = a

c = [1,2,3]

下面來檢查是否相等,你會注意到結果顯示它們都是相等的。

print(a == b)

print(a == c)

#=> True

#=> True

但是它們具有相同的標識(id)嗎?答案是不。

print(a is b)

print(a is c)

#=> True

#=> False

我們可以通過打印他們的對象標識(id)來驗證這一點。

print(id(a))

print(id(b))

print(id(c))

#=> 4369567560

#=> 4369567560

#=> 4369567624

你可以看到:c和a和b具有不同的標識(id)。

4. 什么是裝飾器(decorator)?

這是每次面試我都會被問到的另一個問題。它本身就值得寫一篇文章。如果你能自己用它編寫一個例子,那么說明你已經做好了準備。

裝飾器允許通過將現有函數傳遞給裝飾器,從而向現有函數添加一些額外的功能,該裝飾器將執行現有函數的功能和添加的額外功能。

我們將編寫一個裝飾器,該裝飾器會在調用另一個函數時記錄日志。

編寫裝飾器函數logging。它接受一個函數func作為參數。它還定義了一個名為log_function_called的函數,它先執行打印出一些“函數func被調用”的信息(print(f'{func} called.')),然后調用函數func()。最后返回定義的函數。

def logging(func):

def log_function_called():

print(f'{func} called.')

func()

return log_function_called

讓我們編寫其他兩個函數,我們最終會將裝飾器添加到其中(但還沒有)。

def my_name():

print('chris')def friends_name():

print('naruto')my_name()

friends_name()

#=> chris

#=> naruto

現在將裝飾器添加到上面編寫的兩個函數之中。

@logging

def my_name():

print('chris')@logging

def friends_name():

print('naruto')my_name()

friends_name()

#=>

called.

#=> chris

#=>

called.

#=> naruto

現在,你了解了如何僅僅通過在其上面添加@logging(裝飾器),就能夠輕松地將日志添加到我們編寫的任何函數中。

5. 解釋Range函數

Range函數可以用來創建一個整數列表,一般用在for循環中。它有3種使用方法。

Range函數可以接受1到3個參數,參數必須是整數。

請注意:我已經將range的每種用法包裝在一個遞推式構造列表(list comprehension)中,以便我們可以看到生成的值。

用法1 - range(stop):生成從0到參數“stop”之間的整數。

[i for i in range(10)]

#=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

用法2 - range(start, stop) : 生成從參數“start”到“stop”之間的整數

[i for i in range(2,10)]

#=> [2, 3, 4, 5, 6, 7, 8, 9]

用法3 - range(start, stop, step):以參數“step”為步長,生成從“start”到“stop”之間的整數。

[i for i in range(2,10,2)]

#=> [2, 4, 6, 8]

6.

定義一個名為car的類,它有兩個屬性:“color”和“speed”。然后創建一個實例并返回“speed”。

class Car :

def __init__(self, color, speed):

self.color = color

self.speed = speedcar = Car('red','100mph')

car.speed

#=> '100mph'

總結

以上是生活随笔為你收集整理的python助教的面试题_六个Python经典面试题(附详解)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。