乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      最常見的 35 個 Python 面試題及答案(2018 版)

       gexian 2019-04-05

      雷鋒網(wǎng)按:本文為 AI 研習(xí)社編譯的技術(shù)博客,原文 Top 35 Python Interview Questions and Answers in 2018 ,作者 DataFlair Team。

      翻譯 | 于志鵬   整理 | 凡江

      1. Python 面試問題及答案

      作為一個 Python 新手,你必須熟悉基礎(chǔ)知識。在本文中我們將討論一些 Python 面試的基礎(chǔ)問題和高級問題以及答案,以幫助你完成面試。包括 Python 開發(fā)問題、編程問題、數(shù)據(jù)結(jié)構(gòu)問題、和 Python 腳本問題。讓我們來深入研究這些問題。

      Python 面試問題

      Q.1. Python 的特點和優(yōu)點是什么?

      Python 可以作為編程的入門語言,因為他具備以下特質(zhì):

      1.  解釋性

      2.  動態(tài)特性

      3.  面向?qū)ο?/p>

      4.  語法簡潔

      5.  開源

      6.  豐富的社區(qū)資源

      實際上 Python 的優(yōu)點遠(yuǎn)不止這些,更詳細(xì)的介紹可以閱讀 Introduction to Python(  https://aining/blogs/python-tutorial/)

      Q.2. 深拷貝和淺拷貝的區(qū)別是什么?

      深拷貝是將對象本身復(fù)制給另一個對象。這意味著如果對對象的副本進(jìn)行更改時不會影響原對象。在 Python 中,我們使用 deepcopy()函數(shù)進(jìn)行深拷貝,使用方法如下:

      深拷貝-Python 面試問題及答案

      淺拷貝是將對象的引用復(fù)制給另一個對象。因此,如果我們在副本中進(jìn)行更改,則會影響原對象。使用 copy()函數(shù)進(jìn)行淺拷貝,使用方法如下:

      淺拷貝—Python 面試問題及答案

      Q.3. 列表和元祖有什么不同?

      主要區(qū)別在于列表是可變的,元祖是不可變的。看下面的例子:

      會出現(xiàn)以下錯誤提示:

      TypeError: ‘tuple’  object does not support item assignment

      關(guān)于列表和元祖的更多內(nèi)容參考 Tuples vs Lists(  https://aining/blogs/python-tuples-vs-lists/)

      2. Python 面試基礎(chǔ)題

      Q.4 到 Q.20 是新手經(jīng)常會被問到的一些 Python 基礎(chǔ)題,有經(jīng)驗的人也可以參考這些問題來復(fù)習(xí)這些概念。

      Q.4. 解釋 Python 中的三元表達(dá)式

      與 C++不同, 在 Python 中我們不需要使用 ? 符號,而是使用如下語法:

      [on true] if []else [on false]

      如果 [] 為真, 則 [on true] 部分被執(zhí)行。如果表示為假則 [on false] 部分被執(zhí)行

      下面是例子:

      2

      Hi

      Q.5. Python 中如何實現(xiàn)多線程?

      線程是輕量級的進(jìn)程,多線程允許一次執(zhí)行多個線程。眾所周知,Python 是一種多線程語言,它有一個多線程包。

      GIL(全局解釋器鎖)確保一次執(zhí)行單個線程。一個線程保存 GIL 并在將其傳遞給下一個線程之前執(zhí)行一些操作,這就產(chǎn)生了并行執(zhí)行的錯覺。但實際上,只是線程輪流在 CPU 上。當(dāng)然,所有傳遞都會增加執(zhí)行的開銷。

      Q.6. 解釋繼承

      一個類繼承自另一個類,也可以說是一個孩子類/派生類/子類,繼承自父類/基類/超類,同時獲取所有的類成員(屬性和方法)。

      繼承使我們可以重用代碼,并且還可以更方便地創(chuàng)建和維護(hù)代碼。Python 支持以下類型的繼承:

      1.  單繼承- 一個子類類繼承自單個基類

      2.  多重繼承- 一個子類繼承自多個基類

      3.  多級繼承- 一個子類繼承自一個基類,而基類繼承自另一個基類

      4.  分層繼承- 多個子類繼承自同一個基類

      5.  混合繼承- 兩種或兩種以上繼承類型的組合

      關(guān)于繼承的更多內(nèi)容參考 Python Inheritance(  https://aining/blogs/python-inheritance/)

      Q.7. 什么是 Flask?

      Flask 是一個使用 Python 編寫的輕量級 Web 應(yīng)用框架,使用 BSD 授權(quán)。其 WSGI 工具箱采用 Werkzeug,模板引擎則使用 Jinja2。除了 Werkzeug 和 Jinja2 以外幾乎不依賴任何外部庫。因為 Flask 被稱為輕量級框架。

      Flask 的會話會話使用簽名 cookie 來允許用戶查看和修改會話內(nèi)容。它會記錄從一個請求到另一個請求的信息。但如果要修改會話,則必須有密鑰 Flask.secret_key。

      我們將在后續(xù)的課程中進(jìn)一步討論 Flask。

      Q.8. 如何在 Python 中管理內(nèi)存?

      Python 用一個私有堆內(nèi)存空間來放置所有對象和數(shù)據(jù)結(jié)構(gòu),我們無法訪問它。由解釋器來管理它。不過使用一些核心 API,我們可以訪問一些 Python 內(nèi)存管理工具控制內(nèi)存分配。

      Q.9. 解釋 Python 中的 help() 函數(shù)和 dir() 函數(shù)。

      help() 函數(shù)返回幫助文檔和參數(shù)說明:

      運行結(jié)果如下:

      Help on function copy in module copy

      copy(x)

      Shallow copy operation on arbitrary Python objects.

      See the module』s __doc__ string for more info.

      dir() 函數(shù)返回對象中的所有成員 (任何類型)

      Q.10. 當(dāng)退出 Python 時是否釋放所有內(nèi)存分配?

      答案是否定的。那些具有對象循環(huán)引用或者全局命名空間引用的變量,在 Python 退出是往往不會被釋放

      另外不會釋放 C 庫保留的部分內(nèi)容。

      Q.11. 什么是猴子補(bǔ)???

      在運行時動態(tài)修改類和模塊

      Hi, monkey

      Q.12. 什么是 Python 字典?

      字典是我在 C++和 Java 中沒有見過的數(shù)據(jù)結(jié)構(gòu),它擁有鍵-值對

      3

      字典是可變的,我們也可以用推導(dǎo)式的方式創(chuàng)建它.

      {25: 5, 16: 4, 9: 3, 4: 2, 1: 1}

      要了解更多字典的內(nèi)容請點擊 Python Dictionaries(  https://aining/blogs/python-dictionaries/)

      Q.13. 能否解釋一下 *args 和 **kwargs?

      如果我們不知道將多少個參數(shù)傳遞給函數(shù),比如當(dāng)我們想傳遞一個列表或一個元組值時,就可以使用*args。

      3

      2

      1

      4

      7

      當(dāng)我們不知道將會傳入多少關(guān)鍵字參數(shù)時,使用**kwargs 會收集關(guān)鍵字參數(shù)。

      a.1

      b.2

      c.7

      使用 args 和 kwargs 作為參數(shù)名只是舉例,可以任意替換。

      對于 Python 的基礎(chǔ)題任何疑問,請在評論區(qū)提問。

      Q.14. 編程實現(xiàn)計算文件中的大寫字母數(shù)

      26

      Q.15. 什么是負(fù)索引?

      我們先創(chuàng)建如下列表:

      與正索引不同,負(fù)索引是從右邊開始檢索。

      6

      同樣可以用于列表的切片:

      [3, 4, 5, 6, 7]

      Q.16. 如何隨機(jī)打亂列表中元素,要求不引用額外的內(nèi)存空間?

      我們用 random 包中的 shuffle() 函數(shù)來實現(xiàn)。

      [3, 4, 8, 0, 5, 7, 6, 2, 1]

      Q.17. 解釋 Python 中的 join() 和 split() 函數(shù)

      join() 函數(shù)可以將指定的字符添加到字符串中。

      ‘1,2,3,4,5’

      split() 函數(shù)可以用指定的字符分割字符串

      [‘1’, ‘2’, ‘3’, ‘4’, ‘5’]

      Q.18. Python 區(qū)分大小寫嗎?

      驗證 Python 是否區(qū)分大小寫的方法是測試 myname 和 Myname 在程序中是不是算同一個標(biāo)識符。觀察以下代碼的返回結(jié)果:

      Myname

      NameError: name  ‘Myname’ is not defined

      如你所見,這里出現(xiàn)了 NameError,所以 Python 是區(qū)分大小的語言。

      Q.19. Python 中標(biāo)識符的命名規(guī)則?

      Python 中的標(biāo)識符可以是任意長度,但必須遵循以下命名規(guī)則:

      1.  只能以下劃線或者 A-Z/a-z 中的字母開頭。

      2.  其余部分只能使用 A-Z/a-z/0-9。

      3.  Python 標(biāo)識符區(qū)分大小寫。

      4.  關(guān)鍵字不能作為標(biāo)識符。Python 有以下這些關(guān)鍵字:

      Q.20. 如何刪除字符串中的前置空格

      前置空格是第一個非空格字符前的所有空格,使用 lstrip() 函數(shù)來刪除.

      ‘Ayushi   ‘

      如圖這個字符串既包含前置空格也包含后置空格. 調(diào)用 lstrip() 函數(shù)去除了前置空格。如果想去除后置空格,使用 rstrip() 函數(shù)。

      ‘   Ayushi’

      以上是面向 Python 新手的基礎(chǔ)題部分。

      3. Python 面試進(jìn)階題

      Q. 21 至 Q. 35 是針對有經(jīng)驗者的一些 Python 面試問題及其答案和示例。

      Q.21. 如何將字符串轉(zhuǎn)換為小寫?

      使用 lower() 函數(shù)

      ‘a(chǎn)yushi’

      轉(zhuǎn)換為大寫用 upper() 函數(shù)

      ‘AYUSHI’

      要檢查字符串是否為全大寫或全小寫,使用 isupper() 和 islower() 函數(shù)

      像 @ 和$這樣的字符即滿足大寫也滿足小寫。

      istitle() 可以檢查字符串是否是標(biāo)題格式。

      True

      Q.22. Python 中的 pass 語句有什么作用?

      我們在寫代碼時,有時可能只寫了函數(shù)聲明而沒想好函數(shù)怎么寫,但為了保證語法檢查的正確必須輸入一些東西。在這種情況下,我們使用 pass 語句。

      類似的 break 語句可以跳出循環(huán)。

      0

      1

      2

      continue 語句可以跳到下一輪循環(huán)。

      0

      1

      2

      4

      5

      6

      Q.23. 請解釋 Python 中的閉包?

      如果在一個內(nèi)部函數(shù)里。對在外部作用域(但不是在全局作用域)的變量進(jìn)行引用,那么內(nèi)部函數(shù)就是一個閉包。

      7

      閉包的詳細(xì)解釋請點擊 Closures in Python。(https://aining/blogs/python-closure/)

      Q.24. 解釋 Python 中的//,%和**運算符

      //運算符執(zhí)行地板除法,返回結(jié)果的整數(shù)部分 (向下取整)。

      3

      用/符號除法結(jié)果為 3.5。

      **符號表示取冪. a**b 返回 a 的 b 次方

      1024

      % 是取模符號。返回除法后的余數(shù)。

      6

      0.5

      對于 Python 進(jìn)階面試問題和答案有任何疑問請在評論區(qū)提問。

      Q.24. Python 中有多少種運算符,解釋算術(shù)運算符。

      這類面試問題可以判斷你的 Python 功底,可以舉一些實例來回答這類問題。

      在 Python 中我們有 7 中運算符:算術(shù)運算符、關(guān)系 (比較) 運算符、賦值運算符、邏輯運算符、位運算符、成員運算符、身份運算符。

      1.  加號 (+) 將兩個對象的值相加。

      15

      2.  減號 (-) 將第一個對象的值減去第二個對象的值。

      -1

      3.  乘號 (*) 將兩個對象的值相乘。

      56

      4.  除號 (/) 將第一個對象的值除以第二個對象的值。

      0.875

      1.0

      關(guān)于地板除法、取模和取冪,請參考上一個問題。

      Q.25. 解釋 Python 中的關(guān)系運算符。

      關(guān)系運算符用來比較兩個對象。

      1.  判斷小于 (<):如果符號左邊的值比右邊小則返回 True。

      False

      2.  判斷大于 (>):如果符號左邊的值比右邊大則返回 True。

      True

      出現(xiàn)上面的錯誤結(jié)果是因為 Python 的浮點運算存在一些 Bug。

      3.  判斷小于等于 (<=):如果符號左邊的值小于或等于右邊則返回 True。

      True

      4.  大判斷于等于 (>=):如果符號左邊的值大于或等于右邊則返回 True。

      True

      5.  判斷等于 (==) 如果符號兩邊的值相等則返回 True。

      True

      6.  判斷不等于 (!=) 如果符號兩邊的值不等則返回 True。

      True

      True

      Q.26. 解釋 Python 中的賦值和算數(shù)運算符?

      這是面試中的常見題目。我們將算數(shù)運算符和賦值符號放在一起介紹。

      Q.27. 解釋 Python 中的邏輯運算符

      Python 中有三個邏輯運算符:and、or、not

      Q.28. 解釋 Python 中的成員運算符

      使用 in 和 not in 運算符我們可以判斷某個值是否在成員中。

      Q.29. 解釋 Python 中的身份運算符

      這是非常常見的 Python 面試題,用下面的示例來回答.

      is 和 not is 運算符可以判斷兩個對象是否相同

      Q.30. 解釋 Python 中的位運算符

      此運算符按二進(jìn)制位對值進(jìn)行操作。

      1.  與 (&) 返回按位與結(jié)果

      2.  或 (|) 返回按位或結(jié)果

      3.  異或 (^) 返回按位異或結(jié)果

      1

      4.  取反 (~) 返回按位取反結(jié)果

      -3

      5.  左移位 (<<) 將符號左邊數(shù)的二進(jìn)制左移右邊數(shù)位

      4

      1 的二級制 001 左移 2 位變成 100 也即十進(jìn)制的 4

      6.  右移位 (>>)

      1

      想了解關(guān)于位運算符的更多內(nèi)容請點擊 Operators in Python(https://aining/blogs/python-operators/)

      Q.31. 如何在 Python 使用多進(jìn)制數(shù)字?

      除十進(jìn)制以外,在 Python 中還可以使用二進(jìn)制、八進(jìn)制、十六進(jìn)制。

      1.  二進(jìn)制數(shù)有 0 和 1 組成,我們使用 0b 或 0B 前綴表示二進(jìn)制數(shù)

      10

      使用 bin() 函數(shù)可以將數(shù)字轉(zhuǎn)換為二進(jìn)制

      ‘0b1111’

      2.  八進(jìn)制數(shù)由數(shù)字 0-7 組成,使用前綴 0o 或 0O 表示 8 進(jìn)制數(shù)

      ‘0o10’

      3.  十六進(jìn)數(shù)由數(shù)字 0-15 組成,使用前綴 0x 或者 0X 表示 16 進(jìn)制數(shù)

      ‘0x10’

      ‘0xf’

      Q.32. 如何獲取字典中的所有鍵?

      使用 keys() 來獲取字典中的所有鍵

      Q.33. 問什么標(biāo)識符不建議使用下劃線開頭?

      因為在 Python 中以下劃線開頭的變量為私有變量,如果你不想讓變量私有,就不要使用下劃線開頭。

      Q.34. 如何聲明多個變量并賦值?

      有兩種方式:

      Q.35. 什么是元組的解封裝?

      首先我們來介紹元組封裝:

      (3, 4, 5)

      將 3,4,5 封裝到元組 mytuple 中。

      現(xiàn)在我們要將這些值解封裝到變量 x,y,z 中

      12

      以上是 Python 高級面試問題和答案,新手也可以參考這些問題以獲得進(jìn)階的 Python 知識。

      4. 結(jié)束語

      本篇文章介紹了一些重要的 Python 面試問題和答案,后續(xù)我們還會增加。在你面試之前應(yīng)該熟練掌握這些。如有想添加的問題歡迎隨時評論。

      原文鏈接:https://aining/blogs/top-python-interview-questions-answer/

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多