按域名瀏覽

2023年Python麵試145個熱門問題和答案

目錄

你是一個有抱負的Python開發人員嗎?Python的職業生涯在2023年呈上升趨勢,你可以成為這個不斷增長的社區的一員。所以,如果你已經準備好沉浸在知識的寶庫中,並為即將到來的python麵試做好準備,那麼你就來對地方了。

我們整理了一份全麵的Python麵試問題和答案列表,在需要的時候可以派上用場。一旦你準備好了我們在列表中提到的問題,你將準備好進入許多python工作角色,如python開發人員、數據科學家、軟件工程師、數據庫管理員、質量保證測試員等等。

Python編程可以用很少的代碼行實現多個函數,並使用強大的庫支持強大的計算。由於這些因素,對具有Python編程知識的專業人員的需求有所增加。查看免費的python的課程了解更多

本博客涵蓋了Python麵試中最常見的問題,這些問題將幫助你找到好工作。

問題分為以下幾類:

  1. 針對新生的Python麵試問題
  2. 有經驗的Python麵試問題
  3. Python編程麵試問題
  4. Python麵試問題常見問題

針對新生的Python麵試問題

本節為新生準備的Python麵試問題涵蓋了麵試過程中常見的70多個問題。作為一名新生,你可能對麵試過程不熟悉;然而,學習這些問題會幫助你自信地回答麵試官,並在即將到來的麵試中取得好成績。

1.Python是什麼?

Python由Guido van Rossum創建並於1991年首次發布。它是一種高級的通用編程語言,強調代碼的可讀性,並提供易於使用的語法。一些開發人員和程序員更喜歡使用Python來滿足他們的編程需求,因為它很簡單。30年後,範·羅森於2018年辭去了社區領袖的職位。

Python解釋器可用於許多操作係統。CPython是Python的參考實現,是開源軟件,有一個基於社區的開發模型,它的幾乎所有變體實現也是如此。非營利的Python軟件基金會管理Python和CPython。

2.為什麼Python ?

Python是一種高級的通用編程語言。Python是一種編程語言,可用於創建桌麵GUI應用程序、網站和在線應用程序。作為一種高級編程語言,Python還允許您在處理日常編程任務時專注於應用程序的基本功能。編程語言的基本語法限製使得代碼庫易於理解和應用程序易於管理。

3.如何安裝Python?

要安裝Python,請訪問Anaconda.org並點擊“下載Anaconda”。在這裏,您可以下載Python的最新版本。在安裝Python之後,這是一個非常簡單的過程。下一步是啟動IDE並開始用Python編碼。如果你想了解更多關於這個過程的信息,請查看這個Python教程。看看如何安裝python

看看這個python安裝的圖示。

如何安裝python

4.Python有哪些應用?

Python以其通用特性而聞名,這使得它幾乎可以用於任何軟件開發部門。Python幾乎出現在每一個新的領域。它是最流行的編程語言,可以用來創建任何應用程序。

-網頁應用

我們可以使用Python來開發web應用程序。它包含HTML和XML庫,JSON庫,電子郵件處理庫,請求庫,美麗的湯庫,Feedparser庫和其他互聯網協議。Instagram使用的是Python web框架Django。

-桌麵GUI應用程序

圖形用戶界麵(GUI)是一種允許與任何程序輕鬆交互的用戶界麵。Python包含Tk GUI框架,用於創建用戶界麵。

-基於控製台的應用程序

命令行或shell用於執行基於控製台的程序。這些是用來執行命令的計算機程序。這類程序在上一代計算機中更為常見。它以REPL或Read-Eval-Print循環而聞名,這使它成為命令行應用程序的理想選擇。

Python有許多免費的庫和模塊,可以幫助創建命令行應用程序。為了讀寫,需要使用適當的IO庫。它具有處理參數和生成內置控製台幫助文本的功能。還有其他高級庫可用於創建獨立的控製台應用程序。

-軟件開發

Python對於軟件開發過程很有用。它是一種支持語言,可用於建立控製和管理、測試和其他事情。

  • SCons用於構建控製。
  • 使用Buildbot和Apache Gumps可以自動進行持續編譯和測試。

-科學和數字

這是人工智能的時代,在這個時代,機器可以像人一樣執行任務。Python是一種用於人工智能和機器學習應用的優秀編程語言。它有許多科學和數學庫,使困難的計算變得簡單。

將機器學習算法付諸實踐需要大量的算術運算。Numpy, Pandas, Scipy, Scikit-learn等科學和數值Python庫是可用的。如果您知道如何使用Python,您將能夠在代碼之上導入庫。下麵列出了一些突出的機器庫框架。

-業務應用

標準應用程序與商業應用程序不同。這種類型的程序需要大量的可伸縮性和可讀性,而Python提供了這些。

Oddo是一個基於python的一體化應用程序,提供了廣泛的業務應用程序。該商業應用程序構建在Tryton平台上,該平台由Python提供。

-基於音頻或視頻的應用

Python是一種通用的編程語言,可用於構建多媒體應用程序。例如,TimPlayer、cplay和其他用Python編寫的多媒體程序。

- 3D CAD應用

工程相關建築采用CAD(計算機輔助設計)進行設計。它用於創建係統組件的三維可視化。Python中的以下特性可用於開發3D CAD應用程序:

  • 胡鬧(流行的)
  • CAMVOX
  • HeeksCNC
  • AnyCAD
  • RCAM

-企業應用

Python可以用來開發應用程序,供企業或組織使用。OpenERP, Tryton, Picalo這些實時應用都是例子。

-圖像處理應用

Python有很多處理圖片的庫。圖片可以按我們的規格修改。OpenCV、Pillow和SimpleITK都是python中的圖像處理庫。在本主題中,我們已經介紹了廣泛的應用程序,Python在這些應用程序的開發中發揮了關鍵作用。我們將在接下來的教程中學習更多關於Python原理的知識。

5.Python的優點是什麼?

Python是一種高級解釋性的通用動態編程語言。它的體係結構框架優先考慮代碼的可讀性,並廣泛利用縮進。

  • 第三方模塊存在。
  • 有幾個支持庫可用(NumPy用於數值計算,Pandas用於數據分析等)
  • 社區開發和開源
  • 適應性強,易於閱讀、學習和書寫
  • 很容易處理的數據結構
  • 高級語言
  • 動態類型的語言(不需要根據賦值提到數據類型,它接受數據類型)
  • 麵向對象程序設計語言
  • 互動性和可運輸性
  • 理想的原型,因為它允許你用最少的代碼添加額外的功能。
  • 非常有效的
  • 物聯網的可能性
  • 跨操作係統的可移植解釋語言
  • 由於它是一種解釋型語言,所以它會逐行執行任何代碼,如果發現遺漏了什麼,就會拋出錯誤。
  • Python是免費使用的,並且有一個大型的開源社區。
  • Python對庫提供了大量支持,這些庫提供了許多函數來完成手頭的任何任務。
  • Python最好的特性之一是它的可移植性:它可以並且確實運行在任何平台上,而無需更改需求。
  • 與其他編程語言(如Java、c++等)相比,用更少的代碼行提供了許多功能。

破解Python麵試

6.Python的主要特性是什麼?

Python是數據科學家和AIML專業人員最流行的編程語言之一。這種流行是由於Python的以下關鍵特性:

  • Python由於其清晰的語法和可讀性而容易學習
  • Python很容易解釋,這使得調試很容易
  • Python是免費的,開源的
  • 它可以跨不同的語言使用
  • 它是一種支持類概念的麵向對象語言
  • 它可以很容易地與其他語言集成,如c++、Java等

7.Python字麵量是什麼意思?

字麵量是表示值的一種簡單而直接的形式。字麵量反映了該語言中可用的基本類型選項。整數、浮點數、布爾值和字符串是最常見的文字形式。Python支持以下文字:

Python中的字麵量與保存在變量或常量中的數據有關。Python中有幾種類型的字麵量

字符串:它是一組代碼中包含的字符序列。根據所使用的引用的數量,可以是單字符串、雙字符串或三重字符串。由單引號或雙引號括起來的單個字符稱為字符字麵量。

數字文字:這些是不可改變的數字,可以分為三種類型:整數、浮點數和複數。

布爾常量:True或False分別表示“1”和“0”,可以賦值給它們。

特殊的文字:它用於對未生成的字段進行分類。“None”是用來表示它的值。

  • 字符串字麵量:" halo ", ' 12345 '
  • Int字麵值:0,1,2,-1,-2
  • 長字麵量:89675L
  • 浮點字麵值:3.14
  • 複雜字麵量:12j
  • 布爾字麵值:True或False
  • 特殊字麵值:無
  • Unicode字麵量:u " hello "
  • 列出字麵量:[],[5,6,7]
  • 元組字麵量:(),(9,),(8,9,0)
  • 字典字麵量:{},{' x ':1}
  • 設置字麵量:{8,9,10}

8.Python是什麼類型的語言?

Python是一種解釋性的、交互式的、麵向對象的編程語言。類、模塊、異常、動態類型和高級動態數據類型都有。

Python是一種帶有動態類型的解釋型語言。因為代碼沒有轉換成二進製形式,所以這些語言有時被稱為“腳本”語言。當我說動態類型時,我指的是在編碼時不必聲明類型;解釋器在運行時找到它們。

Python簡潔易學的語法的可讀性被優先考慮,從而降低了軟件維護成本。Python提供了模塊和包,允許程序模塊化和代碼重用。Python解釋器及其全麵的標準庫可以免費下載,並以源代碼或二進製形式發布到所有主要平台。

9.Python如何成為一種解釋型語言?

解釋器獲取您的代碼並執行(執行)您提供的操作,生成您指定的變量,並執行大量的幕後工作以確保其順利工作或警告您有關問題。

Python不是解釋型或編譯型語言。實現的屬性是它是解釋的還是編譯的。Python是一個字節碼(解釋器可讀指令的集合),可以以多種方式解釋。

源代碼保存在. py文件。

Python從源代碼為虛擬機生成一組指令。這種中間格式被稱為“字節碼”,它是通過將.py源代碼編譯為.pyc(字節碼)而創建的。這個字節碼可以被標準的CPython解釋器或PyPy的JIT (Just in Time編譯器)解釋。

Python被稱為解釋型語言,因為它使用解釋器將您編寫的代碼轉換為計算機處理器可以理解的語言。稍後,您將下載並使用Python解釋器,以便能夠創建Python代碼,並在處理項目時在自己的計算機上執行它。

10.什麼是活力?

PEP8,通常被稱為PEP8或PEP-8,是一個文檔,概述了編寫Python代碼的最佳實踐和建議。它是由Guido van Rossum, Barry Warsaw和Nick Coghlan在2001年創作的。PEP 8的主要目標是使Python代碼更具可讀性和一致性。

Python Enhancement Proposal (PEP)是Python Enhancement Proposal的首字母縮寫,有很多。Python增強建議(PEP)是一份文檔,它解釋了Python建議的新特性,並為社區詳細介紹了Python的元素,例如設計和風格。

11.Python中的命名空間是什麼?

在Python中,命名空間是一個為每個對象分配唯一名稱的係統。變量或方法可以被視為對象。Python有自己的命名空間,以Python字典的形式保存。讓我們以計算機中的目錄-文件係統結構為例。不用說,在許多文件夾中都可能找到同名的文件。但是,通過提供文件的絕對路徑,可以根據需要將文件路由到該路徑。

名稱空間本質上是一種技術,用於確保程序中的所有名稱都是不同的,並且可以互換使用。您可能已經意識到Python中的所有東西都是對象,包括字符串、列表、函數等等。另一個值得注意的事情是Python使用字典來實現名稱空間。存在名稱到對象的映射,名稱作為鍵,對象作為值。相同的名稱可以被許多名稱空間使用,每個名稱空間都將其映射到不同的對象。下麵是一些命名空間的例子:

本地命名空間:這個命名空間存儲函數的本地名稱。此名稱空間是在調用函數時創建的,並且僅在函數返回之前存在。

全局命名空間:項目中使用的各種導入模塊的名稱存儲在此名稱空間中。它在模塊添加到項目時形成,並一直持續到腳本完成。

內置命名空間:此名稱空間包含內置函數和異常的名稱。

12.什麼是PYTHON PATH?

PYTHONPATH是一個環境變量,允許用戶向sys. path目錄中添加額外的文件夾。Python的path目錄列表。簡而言之,它是一個在Python解釋器開始之前設置的環境變量。

13.什麼是Python模塊?

Python模塊是一個文件中的Python命令和定義的集合。在模塊中,你可以指定函數、類和變量。模塊還可以包括可執行代碼。當代碼被組織成模塊時,就更容易理解和使用。它還邏輯地組織代碼。

14.Python中的局部變量和全局變量是什麼?

局部變量是在函數內部聲明的,其作用域僅限於該函數,而全局變量是在任何函數之外定義的,並且具有全局作用域。換句話說,局部變量隻能在創建它們的函數中使用,而全局變量可以在整個程序和每個函數中訪問。

局部變量

局部變量是在函數中創建的變量,並且是該函數獨有的變量。在函數之外,它不能被訪問。

全局變量

全局變量是在任何函數之外定義的變量,在整個程序中都可用,也就是說,在每個函數內部和外部都可用。

15.解釋Flask是什麼以及它的好處?

Flask是一個開源的web框架。是一組用於構建在線應用程序的工具、框架和技術。一個網頁,一個維基,一個巨大的基於web的日曆軟件,或一個商業網站被用來構建這個web應用程序。Flask是一個微框架,這意味著它不太依賴於其他庫。

好處:

有幾個令人信服的理由來利用Flask作為web應用程序框架。像- - - - - -

  • 集成的單元測試支持
  • 它有一個內置的開發服務器和一個快速調試器。
  • 基於Unicode的Restful請求分派
  • 允許使用cookie。
  • 模板WSGI 1.0兼容jinja2
  • 此外,燒瓶讓你完全控製你的項目的進展。
  • HTTP請求處理功能
  • Flask是一個輕量級和多功能的web框架,可以很容易地與一些擴展集成。
  • 您可以使用自己喜歡的設備進行連接。ORM Basic的主要API是精心設計和組織的。
  • 非常適應
  • 在製造方麵,燒瓶易於使用。

16.Django比Flask好嗎?

Django更受歡迎,因為它有大量開箱即用的功能,使得複雜的應用程序更容易構建。Django最適合具有許多特性的大型項目。對於較小的應用程序來說,這些功能可能有些多餘。

如果你是web編程的新手,Flask是一個很好的開始。許多網站都是使用Flask構建的,並接收了大量流量,盡管沒有基於django的網站那麼多。如果你想要精確的控製,你應該使用flask,而Django開發人員則依賴於大型社區來創建獨特的網站。

17.提到Django、Pyramid和Flask之間的區別。

Flask是一個“微框架”,專為需求更少的小型應用程序設計。Pyramid和Django都適用於更大的項目,但它們以不同的方式處理擴展性和靈活性。

金字塔的設計是靈活的,允許開發人員為他們的項目使用最好的工具。這意味著開發人員可以選擇數據庫、URL結構、模板樣式和其他選項。Django渴望包含web應用程序所需要的所有組件,因此程序員隻需打開這個盒子,開始工作,隨時引入Django的許多組件。

Django默認包含ORM,但是Pyramid和Flask為開發者提供了如何(以及是否)存儲數據的控製。對於非django的web應用程序,SQLAlchemy是最流行的ORM,但也有很多替代選項,從DynamoDB和MongoDB到簡單的本地持久化,如LevelDB或常規SQLite。金字塔是設計用於任何類型的持久層,甚至那些還沒有構思。

Django 金字塔
它是一個python框架。 它和Django一樣 它是一個微觀框架。
它用於構建大型應用程序。 它和Django一樣 它用於創建一個小型應用程序。
它包括一個ORM。 它提供了靈活性和正確的工具。 它不需要外部庫。

18.討論Django架構

Django有一個MVC(模型-視圖-控製器)架構,它分為三個部分:

1.模型

模型由數據庫表示,是支撐整個程序的邏輯數據結構(通常是關係數據庫,如MySql, Postgres)。

2.視圖

視圖是用戶界麵,或者當你在瀏覽器中訪問一個網站時看到的東西。HTML/CSS/Javascript文件被用來表示它們。

3.控製器

控製器是視圖和模型之間的鏈接,它負責將數據從模型傳輸到視圖。

您的應用程序將圍繞使用MVC的模型進行顯示或更改。

19.用Python解釋作用域?

把範圍想象成一個家庭的父親;每個對象都在一個範圍內工作。正式的定義是,這是一段代碼,無論你聲明多少個對象,它們都是相關的。以下是一些相同的例子:

  • 當地的範圍:當你在函數內部創建一個變量時,它屬於該函數本身的局部作用域,並且它隻會在該函數內部使用。

例子:

Def harshit_fun(): y = 100 print (y) harshit_func() 100
  • 全球範圍:當一個變量在python代碼主體中創建時,它被稱為全局作用域。關於全局作用域最好的部分是它們可以在任何範圍內的python代碼的任何部分訪問,無論是全局的還是局部的。

例子:

Y = 100 def harshit_func(): print (Y)
  • 嵌套函數:這也被稱為函數中的函數,如上麵的例子所述,在局部作用域中,變量y不能在函數外部可用,而是在另一個函數內部的任何函數中可用。

例子:

Def first_func(): y = 100 Def nested_func1(): print(y) nested_func1() first_func()
  • 模塊級別範圍:這本質上是指在程序中可訪問的當前模塊的全局對象。
  • 外層的範圍:這是對程序中可以調用的所有內置名稱的引用。

20.列出Python中常見的內置數據類型?

以下是最常用的內置數據類型:

數字:由整數、浮點數和複數組成。

列表:我們已經了解了一些關於列表的知識,正式的定義是,列表是可變項的有序序列,並且列表中的元素可以屬於不同的數據類型。

例子:

list = [100, "beplay2018官网 Great Learning ", 30]

元組:這也是一個有序的元素序列,但與列表不同,元組是不可變的,這意味著一旦聲明就不能更改。

例子:

tup_2 = (100, "beplay2018官网 Great Learning ", 20)

字符串:這稱為在單引號或雙引號中聲明的字符序列。

例子:

"嗨,我在great learbeplay2018官网ning工作" "嗨,我在great learning工作"

集:集合基本上是順序不統一的獨特物品的集合。

例子:

Set = {1,2,3}

字典:字典總是將值存儲在鍵和值對中,其中每個值都可以通過其特定的鍵訪問。

例子:

[12] harshit = {1: ' video_games ', 2: ' sports ', 3: ' content '}

布爾:布爾值隻有兩個:真正的而且

21.Python中的全局屬性、受保護屬性和私有屬性是什麼?

類的屬性也稱為變量。在Python中,變量有三個訪問修飾符,即

A.公眾-聲明為public的變量可以在類內部或外部的任何地方訪問。

B.私人-聲明為private的變量隻能在當前類中訪問。

C.受保護的-聲明為受保護的變量隻能在當前包中訪問。

屬性也被分類為:

—本地屬性在代碼塊/方法中定義,並且隻能在該代碼塊/方法中訪問。

—全局屬性定義在代碼塊/方法之外,並且可以在任何地方訪問。

class Mobile: m1 = "Samsung Mobiles" //全局屬性def price(self): m2 = " expensive Mobiles" //本地屬性返回m2 Sam_m = Mobile()打印(Sam_m.m1)

22.Python中的關鍵字是什麼?

Python中的關鍵字是保留字,用作標識符、函數名或變量名。它們幫助定義語言的結構和語法。

Python 3.7中總共有33個關鍵字,它們可以在下一個版本(即Python 3.8)中更改。以下是所有關鍵字的列表:

Python中的關鍵字:

最後 返回
沒有一個 繼續 λ 試一試
真正的 def 外地
而且 全球
作為 elif 如果 收益率
斷言 其他的 進口 通過
打破 除了

23.Python中的列表和元組有什麼區別?

List和tuple是Python中的數據結構可以存儲一個或多個對象或值。使用方括號,可以構建一個列表,在一個變量中保存多個對象。元組與數組一樣,可以在單個變量中保存許多項,並使用圓括號定義。

列表 元組
列表是可變的。 元組是不可變的。
迭代的影響是耗時的。 迭代具有使事情進展更快的效果。
該列表對於插入和刪除等操作更方便。 可以使用元組數據類型訪問這些項。
列表占用更多內存。 與列表相比,元組使用更少的內存。
列表中內置了許多技術。 Tuple中沒有很多內置方法。
意外的更改和錯誤更有可能發生。 它很難發生在元組中。
考慮到這種數據結構的性質,它們會消耗大量內存 它們消耗的內存更少
語法:
list = [100, "beplay2018官网 Great Learning ", 30]
語法:tup_2 = (100, " Greabeplay2018官网t Learning ", 20)

24.如何連接兩個元組?

假設我們有兩個這樣的元組->

tup1 = (1, " a ",True)

Tup2 = (4,5,6)

元組的連接意味著我們將一個元組的元素添加到另一個元組的末尾。

現在,讓我們繼續,連接tuple2和tuple1:

代碼:

tup1=(1,"a",True) tup2=(4,5,6) tup1+tup2

您所要做的就是在兩個元組之間使用' + '操作符,就會得到連接的結果。

類似地,讓我們連接tuple1和tuple2:

代碼:

tup1=(1,"a",True) tup2=(4,5,6) tup2+tup1

25.Python中的函數是什麼?

答:Python中的函數指的是有組織的、可重用的代碼來執行單個和相關事件的塊。函數對於為重用高度編碼的應用程序創建更好的模塊化非常重要。Python有許多內置函數,如print()。但是,它還允許您創建用戶定義的函數。

26.如何初始化一個隻有零的5*5 numpy數組?

我們會用到.zeros ()方法。

導入numpy為np n1=np.zeros((5,5)) n1

使用np.zero()並傳入其中的維度。因為我們想要一個5*5的矩陣,所以我們將在.zeros()方法中傳遞(5,5)。

27.熊貓是什麼?

Pandas是一個開源的python庫,為基於數據的操作提供了一組非常豐富的數據結構。熊貓以其酷炫的特征適合於數據操作的每一個角色,無論是學術還是解決複雜的業務問題。熊貓可以處理各種各樣的文件,是掌握最重要的工具之一。

了解更多關於Python熊貓

28.什麼是數據幀?

pandas數據框架是pandas中的一種可變數據結構。Pandas支持跨兩個軸排列的異構數據。(行和列)。

閱讀熊貓文件:-

12 以pddf=p.read_csv(" mydata.csv ")導入熊貓


這裏df是pandas數據幀。Read_csv()用於將逗號分隔的文件讀取為pandas中的數據幀。

29.什麼是熊貓係列?

係列是一種一維的熊貓數據結構,幾乎可以使用任何類型的數據。它類似於excel列。它支持多重操作,用於一維數據操作。

從數據中創建一個係列:

代碼:

import pandas as pd data=["1",2,"three",4.0] series=pd. series (data) print(series) print(type(series))

30.你對熊貓群了解多少?

pandas groupby是pandas支持的一個特性,用於分割和分組對象。像sql/mysql/oracle groupby一樣,它用於按類和實體對數據進行分組,這些實體可以進一步用於聚合。數據幀可以按一個或多個列進行分組。

代碼:

Df = pd。數據Frame({'Vehicle':['Etios','Lamborghini','Apache200','Pulsar200'], 'Type':["car","car","motorcycle","motorcycle"]}) df

執行分組類型如下代碼:

df.groupby(“類型”).count ()

31.如何從列表中創建一個數據框架?

要從列表中創建數據框架,

1)創建一個空的數據框架
2)將列表作為單個列添加到列表中

代碼:

df=pd.DataFrame() bikes=["bajaj","tvs","herohonda","kawasaki","bmw"] cars=["lamborghini","masserati","ferrari","hyundai","ford"] df["cars"]=cars df["bikes"]=bikes df

32.如何從字典中創建數據幀?

字典可以直接作為參數傳遞給DataFrame()函數來創建數據幀。

代碼:

import pandas as pd bikes=["bajaj","tvs","herohonda","kawasaki","bmw"] cars=["lamborghini","masserati","ferrari","hyundai","ford"] d={"cars":cars,"bikes":bikes} df=pd. dataframe (d) df


33.如何在熊貓中結合數據框架?

通過pandas中的concat()、append()和join()函數,可以水平或垂直地堆疊兩個不同的數據幀。

當數據幀具有相同的列時,Concat工作得最好,並且可以用於具有相似字段的數據的連接,並且基本上是將數據幀垂直堆疊成單個數據幀。

Append()用於數據幀的水平堆疊。如果兩個表(數據幀)要合並在一起,那麼這是最好的連接函數。

當我們需要從具有一個或多個公共列的不同數據框架中提取數據時,使用Join。在這種情況下,堆疊是水平的。

在回答問題之前,這裏有一個快速的視頻來幫助你刷新Python的記憶。

34.熊貓提供什麼樣的連接?

熊貓有左連接、內連接、右連接和外連接。

35.如何在熊貓合並數據框架?

合並取決於被合並的不同數據幀的類型和字段。如果數據具有相似的字段,則數據將沿軸0合並,否則將沿軸1合並。

36.給下麵的數據框架刪除所有具有Nan的行。

dropna函數可以用來做到這一點。

df.dropna df(原地= True)

37.如何訪問數據幀的前五個條目?

通過使用head(5)函數,我們可以得到一個數據幀的前5個條目。默認情況下,df.head()返回前5行。為了得到前n行,將使用df.head(n)。

38.如何訪問數據幀的最後五個條目?

通過使用tail(5)函數,我們可以得到一個數據幀的前5個條目。默認情況下,df.tail()返回前5行。為了得到最後n行,將使用df.tail(n)。

39.如何在索引中使用給定值從熊貓數據框架獲取數據條目?

要從給定索引x的數據框架中獲取一行,我們可以使用loc。

Df。Loc[10],其中10是索引值。

代碼:

import pandas as pd bikes=["bajaj","tvs","herohonda","kawasaki","bmw"] cars=["lamborghini","masserati","ferrari","hyundai","ford"] d={"cars":cars,"bikes":bikes} df=pd. dataframe (d) a=[10,20,30,40,50] df。指數= df.loc [10]

40.什麼是注釋,如何在Python中添加注釋?

在Python中,注釋指的是一段用於提供信息的文本。當不止一個人處理一組代碼時,這一點尤其重要。它可以用來分析代碼,留下反饋和調試。注釋有兩種類型,包括:

  1. 單行注釋
  2. 多重線評論

添加注釋所需的代碼

#注釋-單行注釋

””“注意

請注意

注意“”——多行注釋

41.Python中的字典是什麼?舉個例子。

Python字典是沒有特定順序的項的集合。Python字典寫在帶鍵和值的花括號中。字典被優化為檢索已知鍵的值。

例子

d ={“a”:1、“b”:2}

42.a和a的區別是什麼元組和字典嗎?

元組和字典之間的一個主要區別是字典是可變的,而元組不是。這意味著字典的內容可以在不改變其標識的情況下改變,但在元組中,這是不可能的。

43.找出這個numpy數組-> np.array([1,5,3,100,4,48])的平均值,中位數和標準偏差

Import numpy as np n1=np.array([10,20,30,40,50,60]) print(np.mean(n1)) print(np.median(n1)) print(np.std(n1))

44.什麼是分類器?

分類器用於預測任何數據點的類別。分類器是用於為任何特定數據點分配類別標簽的特殊假設。分類器通常使用訓練數據來理解輸入變量和類之間的關係。分類是機器學習中監督學習的一種方法。

45.在Python中如何將字符串轉換為小寫字母?

字符串中的所有大寫字母都可以通過使用string.lower()方法轉換為小寫字母:

例:

string = ' GREATLEARNING ' print(string.lower())

o / p: greatlearning

46.如何獲得字典中所有鍵的列表?

獲取鍵列表的方法之一是使用:dict.keys()

該方法返回字典中所有可用的鍵。

{1:a, 2:b, 3:c} Dict .keys()

O /p: [1,2,3]

47.如何將字符串的第一個字母大寫?

我們可以用利用()函數將字符串的第一個字符大寫。如果第一個字符已經是大寫,則返回原始字符串。

語法:

string_name.capitalize ()

例:

N = " greatlearning " print(N .capitalize())

o / p: Greatlearning

48.在Python中如何在給定的索引處插入元素?

Python有一個內置函數,稱為insert()函數。

它可用於在給定索引處插入元素。

語法:

list_name。插入(指數(元素)

例:

List = [0,1,2,3,4,5,6,7] #insert 10 at第6個索引列表。插入(10)

o / p:[0, 1, 2, 3, 4, 5, 10, 6、7]

49.如何從列表中刪除重複的元素?

有多種方法可以從列表中刪除重複的元素。但是,最常見的是,通過使用set()函數將列表轉換為集合,並在需要時使用list()函數將其轉換回列表。

例:

list0 = [2,6,4,7,4,6,7,2] list1 = list(set(list0)) print("沒有重複項的列表:" + str(list1)))

o/p:沒有重複的列表:[2,4,6,7]

50.什麼是遞歸?

遞歸是一個函數在它的主體中調用自己一次或多次。在程序中使用遞歸函數的一個非常重要的條件是,它必須終止,否則就會出現無限循環的問題。

51.解釋Python列表理解。

列表推導式用於將一個列表轉換為另一個列表。元素可以有條件地包含在新列表中,每個元素都可以根據需要進行轉換。它由一個引到for子句的表達式組成,用括號括起來。

為例:

List = [i for i in range(1000)]打印列表

52.bytes()函數是什麼?

bytes()函數返回一個bytes對象。它用於將對象轉換為字節對象或創建指定大小的空字節對象。

53.Python中有哪些不同類型的操作符?

Python有以下基本操作符:

算術(加(+),減(-),乘(*),除(/),模(%)),關係(<, >, <=, >=, ==, !=,),
賦值(=。+=, -=, /=, *=, %=),
邏輯(和,或不),成員,標識和位操作符

54.“with語句”是什麼?

python中的" with "語句用於異常處理。可以在執行包含" with "語句的代碼塊時打開和關閉文件。,不使用close()函數。它本質上使代碼更容易閱讀。

55.Python中的map()函數是什麼?

Python中的map()函數用於對指定可迭代對象的所有元素應用函數。它由兩個參數組成,函數和可迭代對象。該函數被作為一個參數,然後應用於可迭代對象的所有元素(作為第二個參數傳遞)。結果返回一個對象列表。

add(n):返回n + n number= (15,25,35,45) res= map(add, num) print(list(res))

o / p: 30、50、70、90

56.在Python中__init__是什麼?

_init_方法論是Python中的保留方法,也就是OOP中的構造函數。當從類創建對象時,調用_init_方法來訪問類屬性。

還讀:Python __init__概述

57.執行靜態分析的工具是什麼?

用於在Python中查找錯誤的兩個靜態分析工具是Pychecker和Pylint。Pychecker從源代碼中檢測錯誤,並就其風格和複雜性發出警告。而Pylint檢查模塊是否符合編碼標準。

58.Python中的pass是什麼?

Pass是一個執行時不執行任何操作的語句。換句話說,它是一個Null語句。解釋器不會忽略該語句,但是該語句不會導致任何操作。當您不希望執行任何命令,但需要語句時,可以使用它。

59.如何在Python中複製對象?

並非所有對象都可以在Python中複製,但大多數都可以。我們可以使用“=”操作符將對象複製到變量中。

例:

var = copy.copy (obj)

60.如何將數字轉換為字符串?

內置函數str()可用於將數字轉換為字符串。

61.Python中的模塊和包是什麼?

模塊是構建程序的方式。每個Python程序文件都是一個模塊,導入其他屬性和對象。程序的文件夾是一個模塊包。包可以包含模塊或子文件夾。

62.Python中的object()函數是什麼?

在Python中,object()函數返回一個空對象。不能向此對象添加新的屬性或方法。

63.NumPy和SciPy的區別是什麼?

NumPy代表數字Python,而SciPy代表科學Python。NumPy是定義數組和簡單數學問題的基本庫,而SciPy用於更複雜的問題,如數值積分和優化以及機器學習等。

64.len()做什麼?

Len()用於確定字符串、列表、數組等的長度。

例:

STR = " greatlearning " print(len(STR))

o / p: 13

65.在Python中定義封裝?

封裝意味著將代碼和數據綁定在一起。例如Python類。

66.Python中的type()是什麼?

Type()是一個內置方法,它要麼返回對象的類型,要麼根據傳遞的參數返回一個新的對象類型。

例:

A = 100型(A)

o / p: int

67.split()函數的作用是什麼?

Split函數用於使用定義的分隔符將字符串分割為更短的字符串。

信= (A, B, C) n = text.split(", ")打印(n)

o/p: [' A ', ' B ', ' C ']

68.python提供了哪些內置類型?

Python有以下內置數據類型:

數字Python識別了三種類型的數字:

  1. 整數:所有正數和負數,不含小數部分
  2. 浮點數:用浮點表示的任何實數
  3. 複數:實數和虛數組成的數,用x+yj表示。X和y是浮點數,j是-1(-1的平方根稱為虛數)

布爾:布爾數據類型是一種有兩個可能值之一的數據類型,即True或False。注意“T”和“F”是大寫字母。

字符串:字符串值是用單引號、雙引號或三引號括起來的一個或多個字符的集合。

列表:列表對象是一個或多個數據項的有序集合,這些數據項可以是不同類型的,放在方括號中。列表是可變的,因此可以修改,我們可以添加,編輯或刪除列表中的單個元素。

設置:用花括號括起來的唯一對象的無序集合

凍結:它們就像一個集合,但不可變,這意味著一旦創建了它們,我們就不能修改它們的值。

字典:字典對象是無序的,其中每個值都有一個鍵,我們可以通過它的鍵訪問每個值。這些對的集合用花括號括起來。例如{' First Name ': ' Tom ', ' last Name ': ' Hardy '}請注意,Number值、字符串和元組是不可變的,而List或Dictionary對象是可變的。

69.Python中的docstring是什麼?

Python文檔字符串是用三引號括起來的字符串字麵量,出現在函數、方法、類或模塊的定義之後。它們通常用於描述特定函數、方法、類或模塊的功能。我們可以使用__doc__屬性訪問這些文檔字符串。

這裏有一個例子:

def square(n): " '輸入一個數字n,返回n的平方''返回n**2打印(square.__doc__)

輸出:輸入一個數字n,返回n的平方。

70.如何在Python中反轉字符串?

在Python中,沒有內置函數可以幫助我們反轉字符串。我們需要使用數組切片操作。

1 Str_reverse = string[::-1]

了解更多:如何在Python中反轉字符串

71.如何在CMD中檢查Python版本?

要檢查CMD中的Python版本,請按CMD +空格。這將打開重點報道。在這裏,輸入“terminal”並按enter。執行命令時,輸入python -version或python -V,按“enter”。這將在命令下麵的下一行中返回python版本。

72.Python在處理標識符時區分大小寫嗎?

是的。Python在處理標識符時區分大小寫。它是一種區分大小寫的語言。這樣,variable和variable就不一樣了。

有經驗的Python麵試問題

本節針對有經驗的Python麵試問題,涵蓋了作為有Python經驗的專業人員在麵試過程中經常被問到的20多個問題。這些常見的問題可以幫助你提高技能,並知道在接下來的麵試中會發生什麼。

73.如何通過使用其他列的值在熊貓中創建一個新列?

我們可以在pandas數據框架上執行基於列的數學運算。操作員可以對包含數值的Pandas列進行操作。

代碼:

進口大熊貓作為pd = [1, 2, 3] b =(2、3、5)d ={“col1”:“col2”:b} df = pd.DataFrame (d) df[”和“]= df(“col1”)+ df(“col2”)df(“差異”)= df(“col1”)df df(“col2”)

輸出:

熊貓

74.在熊貓身上,grouby有哪些不同的功能?

pandas中的Grouby()可以與多個聚合函數一起使用。其中包括sum(),mean(), count(),std()。

數據根據類別進行分組,然後使用上述函數對這些單獨組中的數據進行聚合。

75.如何在pandas中刪除一列或一組列?給定下麵的數據幀下拉列“col1”。

Drop()函數可用於從數據幀中刪除列。

d ={“col1”:(1、2、3),“col2”:[“A”、“B”、“C”]}df = pd.DataFrame (d) df = df.drop((“col1”),軸= 1)df

76.給定以下數據幀,刪除列值為A的行。

代碼:

d ={“col1”:(1、2、3),“col2”:[“A”、“B”、“C”]}df = pd.DataFrame (d) df.dropna(原地= True) df = df (df.col1 != 1] df

77.熊貓的馴鹿是什麼?

重新索引是重新分配pandas數據框架索引的過程。

代碼:

import pandas as pd bikes=["bajaj","tvs","herohonda","kawasaki","bmw"] cars=["lamborghini","masserati","ferrari","hyundai","ford"] d={"cars":cars,"bikes":bikes} df=pd. dataframe (d) a=[10,20,30,40,50] df。指數= df

78.你對函數了解多少?創建一個lambda函數,輸出列表中所有元素的和——> [5,8,10,20,50,100]

Lambda函數是Python中的匿名函數。它們是使用關鍵字lambda定義的。Lambda函數可以接受任意數量的參數,但它們隻能有一個表達式。

From functools import reduce sequences = [5,8,10,20,50,100] sum = reduce (lambda x, y: x+y, sequences) print(sum)

79.vstack()在numpy中是什麼?舉個例子。

Vstack()是一個垂直對齊行的函數。所有行必須具有相同數量的元素。

代碼:

Import numpy as np n1=np.array([10,20,30,40,50]) n2=np.array([50,60,70,80,90]) print(np.vstack((n1,n2)))

80.如何在Python中刪除字符串中的空格?

在python中,可以使用strip()或replace()函數從字符串中刪除空格。Strip()函數用於刪除開頭和結尾的空白,而replace()函數用於刪除字符串中的所有空白:

字符串。替換(" "," ")ex1: str1= "偉大的學習beplay2018官网"打印(str.strip()) o/p:偉大的學習ex2: str2= "偉大的學習"打印(str.replace(" ", " ")))

o / p: greatlearning

81.解釋Python支持的文件處理模式。

Python中有三種文件處理模式:隻讀(r)、隻讀(w)、讀寫(rw)和追加(a)。所以,如果你以讀模式打開一個文本文件。前麵的模式為“rt”表示隻讀,“wt”表示寫,等等。類似地,可以通過指定“b”以及前麵的文件訪問標誌(“r”,“w”,“rw”和“a”)來打開二進製文件。

82.什麼是酸洗和解洗?

Pickling是將Python對象層次結構轉換為字節流並將其存儲到數據庫中的過程。它也被稱為序列化。解醃與醃製相反。字節流被轉換回對象層次結構。

83.在Python中如何管理內存?

這是python麵試中最常被問到的問題之一

python中的內存管理包括一個私有堆,其中包含所有對象和數據結構。堆由解釋器管理,程序員根本無法訪問它。Python內存管理器負責所有的內存分配。此外,還有一個內置的垃圾收集器,用於回收和釋放堆空間的內存。

84.什麼是Python中的unittest ?

Unittest是Python中的單元測試框架。它支持共享測試的設置和關閉代碼、將測試聚合到集合、測試自動化以及測試獨立於報告框架。

85.如何在Python中刪除文件?

在Python中,可以使用os命令刪除文件。Remove (filename)或os.unlink(filename)

86.如何在Python中創建一個空類?

要創建空類,可以在類對象定義之後使用pass命令。pass是Python中不執行任何操作的語句。

87.什麼是Python裝飾器?

裝飾器是將另一個函數作為參數來修改其行為而不改變函數本身的函數。當我們想在不改變函數的情況下動態地增加函數的功能時,這些函數非常有用。

這裏有一個例子:

def smart_divide(func): def inner(a, b): print(" divide ", a, "by", b) if b == 0: print("Make sure分母不為零")return return func(a, b) return inner @smart_divide (a, b): print(a/b) divide(1,0)

這裏的smart_divide是一個裝飾函數,用於向簡單的除法函數添加功能。

88.什麼是動態類型語言?

類型檢查是任何編程語言的重要組成部分,它是為了確保最小的類型錯誤。為變量定義的類型在編譯時或運行時進行檢查。當類型檢查在編譯時完成時,它被稱為靜態類型語言,當類型檢查在運行時完成時,它被稱為動態類型語言。

  1. 在動態類型語言中,對象在運行時通過賦值與類型綁定。
  2. 動態類型編程語言生成的優化代碼相對較少
  3. 在動態類型語言中,變量的類型在使用之前不需要定義。因此,它可以動態分配。

89.Python中的切片是什麼?

在Python中切片指的是訪問序列的各個部分。序列可以是任何可變和可迭代的對象。slice()是Python中用於將給定序列劃分為所需段的函數。

slice函數的使用有兩種變體。python中切片的語法:

  1. 片(啟動、停止)
  2. 二氧化矽(啟動,停止,步進)

例:

Str1 =(“g”、“r”、“e”,“一個”,“t”,“l”、“e”,“一個”,“r”、“n”,“我”、“n”,“g”)substr1 =片(3、5)打印(Str1 [substr1]) / /相同的代碼也可以用以下方式Str1 =(“g”、“r”、“e”,“一個”,“t”,“l”、“e”,“一個”,“r”、“n”,“我”、“n”,“g”)打印(Str1 [3,5]) Str1 =(“g”、“r”、“e”,“一個”,“t”,“l”、“e”,“一個”,“r”、“n”,“我”、“n”,“g”)substr1 =片(2)0,14日打印(Str1 [substr1]) / /相同的代碼也可以用以下方式Str1 =(“g”、“r”、“e”,“一個”,“t”,“l”、“e”,“一個”,“r”、“n”,“我”、“n”," g ") print(Str1[0,14,2])

90.Python數組和列表之間的區別是什麼?

Python Arrays和List都是有序的元素集合,並且都是可變的,但區別在於如何使用它們

數組存儲從array模塊導入的異構數據,但數組可以存儲從numpy模塊導入的異構數據。但是列表可以存儲異構數據,而且要使用列表,不需要從任何模塊導入。

導入數組為a1 array1 = a1。數組('i', [1,2,5]) print (array1)

或者,

導入numpy as a2 array2 = a2。數組([5,6,9,2])打印(array2)

  1. 數組必須在使用它之前聲明,但列表不需要聲明。
  2. 與列表相比,在數組上進行數值運算更容易。

91.Python中的作用域解析是什麼?

變量的可訪問性在python中是根據變量聲明的位置定義的,在python中稱為變量作用域。作用域解析指的是這些變量查找名稱和變量匹配的順序。下麵是python中為變量聲明定義的作用域。

a.局部作用域——在循環中聲明的變量,函數體隻能在該函數或循環中訪問。

b.全局作用域——變量在最頂層的任何其他代碼之外聲明,並且在任何地方都可以訪問。

c.封閉作用域——變量在封閉函數中聲明,隻能在封閉函數中訪問。

d.內置作用域——在python的各個模塊的內置函數中聲明的變量具有內置作用域,並且隻能在該特定模塊中訪問。

在java中,任何變量的作用域解析都是以特定的順序進行的,該順序為

局部作用域->外圍作用域->全局作用域->內置作用域

92.什麼是字典和列表推導式?

列表推導式提供了一種比for循環更緊湊和優雅的方式來創建列表,並且還可以從現有列表創建新列表。

使用的語法如下:

A代表in迭代器

或者,

A用於in迭代器if條件

例:

List1 = [a for a in range(5)] print(List1)

List2 = [a for a in range(5) if a < 3] print(List2)

字典推導式提供了一種更緊湊和優雅的方式來創建字典,而且,可以從現有的字典創建一個新字典。

使用的語法是:

{key:迭代器中項目的表達式}

例:

([(i, i*2) for i in range(5)])

93.在Python中,xrange和range有什麼區別?

Range()和xrange()是python中的內置函數,用於生成指定範圍內的整數。如果使用python 2.0版本,兩者之間的區別就可以理解了,因為python 3.0版本的xrange()函數被重新實現為range()函數本身。

對於python 2.0, range函數和xrange函數的區別如下:

  1. 相對而言,Range()占用更多內存
  2. Xrange(),執行速度相對較快
  3. Range()返回一個整數列表,xrange()返回一個生成器對象。

Ex充足的:

對於I在範圍(1,10,2):打印(I)

94..py和.pyc文件有什麼區別?

.py是python中由python解釋器解釋的源代碼文件。

.pyc是python編譯器生成的字節碼,但.pyc文件僅為內置模塊/文件創建。

Python編程麵試問題

除了要有理論知識,還要有實踐經驗,了解編程麵試問題,這是麵試過程中至關重要的一部分。這有助於招聘人員了解你的實際經驗。以上是45個以上最常見的Python編程麵試問題。

下麵是如何生成python編程輸出的圖示。

什麼是python編程?

95.你有以下covid-19數據集:

這是python麵試中最常被問到的問題之一

從這個數據集,你將如何為截至17=07-2020年確診病例最多的前5個州繪製條形圖?

索爾:

#隻保留必需的列df = df[['日期','州/聯邦領土','治愈','死亡','確認']]]#重命名列名稱df。列=['日期','狀態','治愈','死亡','確認']#當前日期= df[df.]日期== ' 2020-07-17 ']#Sorting data w.r.t number of confirmed cases max_confirmed_cases=today.sort_values(by=”confirmed”,ascending=False) max_confirmed_cases #Getting states with maximum number of confirmed cases top_states_confirmed=max_confirmed_cases[0:5] #Making bar-plot for states with top confirmed cases sns.set(rc={‘figure.figsize’:(15,10)}) sns.barplot(x=”state”,y=”confirmed”,data=top_states_confirmed,hue=”state”) plt.show()

代碼的解釋:

首先,我們用這個命令隻取所需的列:

df = df[['日期','州/聯邦領土','治愈','死亡','確認']]]

然後,我們繼續,重命名列:

df。列=[‘日期’,‘國家’,‘治愈’,‘死亡’,‘確認’)

在此之後,我們隻提取日期等於7月17日的記錄:

今天= df[df。日期== ' 2020-07-17 ']

然後,我們繼續選擇前5個州。關於covid病例:

max_confirmed_cases=today.sort_values(by= " confirmed ",ascending=False) [0:5]

最後,我們繼續做一個條形圖:

Sns.set (rc={' figure.figsize ':(15,10)}) sns.barplot(x= " state ",y= " confirmed ",data=top_states_confirmed,hue= " state ") plt.show()

在這裏,我們使用seaborn庫來製作條形圖。“State”列映射到x軸上,“confirmed”列映射到y軸上。條形圖的顏色由“狀態”列決定。

96.從covid-19數據集中:

如何繪製死亡人數最多的前5個州的柱狀圖?

max_death_cases=today.sort_values(by= " deaths ",ascending=False) max_death_cases sns.set(rc={' figure.figsize ':(15,10)}) sns.barplot(x= " state ",y= " deaths ",data=top_states_death,hue= " state ") plt.show()

代碼的解釋:

首先,我們將數據框架按“死亡人數”列降序排序:

max_death_cases = today.sort_values(=“死亡”,提升= False) max_death_cases

然後,我們繼續在seaborn library的幫助下製作條形圖:

Sns.set (rc={' figure.figsize ':(15,10)}) sns.barplot(x= " state ",y= " deaths ",data=top_states_death,hue= " state ") plt.show()

在這裏,我們將“狀態”列映射到x軸,將“死亡”列映射到y軸。

97.從covid-19數據集中:

你如何製作一個折線圖來顯示確診病例的日期?

索爾:

Maha = df[df.]state == ' Maharashtra '] sns.set(rc={' figure.figsize ':(15,10)}) sns.lineplot(x= " date ",y= " confirmed ",data=maha,color= " g ") plt.show()

代碼的解釋:

我們首先提取所有邦等於“Maharashtra”的記錄:

Maha = df[df.]state == '馬哈拉施特拉邦']

然後,我們繼續使用seaborn庫製作線狀圖:

sns.set (rc ={“figure.figsize”:(10)})sns.lineplot (x =“日期”,y =“證實”,data =王位,顏色=“g”)plt.show ()

在這裏,我們將“date”列映射到x軸,將“confirmed”列映射到y軸。

98.在這個“馬哈拉施特拉邦”數據集中:

如何實現以“日期”為自變量,以“確認”為因變量的線性回歸算法?也就是說,你必須預測確診病例的數量。

從sklearn。Model_selection import train_test_split maha[' date ']=maha[' date '].map(dt.datetime.toordinal) maha.head() x=maha[' date '] y=maha[' confirmed '] x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.3) from sklearn。線性模型導入線性回歸lr =線性回歸()lr.fit(np.array(x_train).重塑(-1,1),np.array(y_train).重塑(-1,1))lr.predict(np.array([[737630]])))

代碼的解決方案:

我們首先將日期轉換為序數類型:

從sklearn。Model_selection import train_test_split maha[' date ']=maha[' date '].map(dt.datetime.toordinal)

這樣做是因為我們不能在日期列之上構建線性回歸算法。

然後,我們繼續將數據集劃分為訓練集和測試集:

x_train、x_test y_train y_test = train_test_split (x, y, test_size = 0.3)

最後,我們繼續構建模型:

從sklearn。線性模型導入線性回歸lr =線性回歸()lr.fit(np.array(x_train).重塑(-1,1),np.array(y_train).重塑(-1,1))lr.predict(np.array([[737630]])))

99.在這個customer_hanger數據集上:

這是python麵試中最常被問到的問題之一

建立一個Keras序列模型,找出在客戶任期的基礎上有多少客戶會流失?

從keras。models從keras導入Sequential。圖層導入model = Sequential()模型。add(Dense(12, input_dim=1, activation= ' relu ')))模型。add(Dense(8, activation= ' relu ')))模型。add(密度(1,激活= ' s形的'))model.compile(loss= ' binary_crossentropy ', optimizer= ' adam ', metrics=[' accuracy '])模型。Fit (x_train, y_train, epochs=150,validation_data=(x_test,y_test)) y_pred = model.predict_classes(x_test) from sklearn。(y_test,y_pred)

代碼的解釋:

我們將從導入所需的庫開始:

從Keras。模型從Keras導入Sequential。圖層導入

然後,我們繼續構建順序模型的結構:

model = Sequential()模型。add(Dense(12, input_dim=1, activation= ' relu ')))模型。add(Dense(8, activation= ' relu ')))模型。add(密度(1,激活= ' s形的'))

最後,我們將繼續預測這些值:

model.compile(loss= ' binary_crossentropy ', optimizer= ' adam ', metrics=[' accuracy '])模型。Fit (x_train, y_train, epochs=150,validation_data=(x_test,y_test)) y_pred = model.predict_classes(x_test) from sklearn。(y_test,y_pred)

One hundred.在虹膜數據集上:

建立一個決策樹分類模型,因變量為“Species”,自變量為“Sepal.Length”。

y = iris[[' Species ']] x = iris[['萼片。長度']]來自sklearn。從sklearn導入train_test_split x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.4)tree import DecisionTreeClassifier dtc = DecisionTreeClassifier() dtc.fit(x_train,y_train) y_pred=dtc.predict(x_test從sklearn。指標導入confusi_matrix (y_test,y_pred) (22+7+9)/(22+2+0+7+7+11+1+1+9)

代碼的解釋:

我們從提取自變量和因變量開始:

y = iris[[' Species ']] x = iris[['萼片。長度的]]

然後,我們將數據分為訓練集和測試集:

從sklearn。導入train_test_split x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.4)

之後,我們繼續構建模型:

從sklearn。tree import DecisionTreeClassifier dtc = DecisionTreeClassifier() dtc.fit(x_train,y_train) y_pred=dtc.predict(x_test

最後,我們建立混淆矩陣:

從sklearn。指標導入confusi_matrix (y_test,y_pred) (22+7+9)/(22+2+0+7+7+11+1+1+9)

101.在虹膜數據集上:

建立自變量為“花瓣長度”,因變量為“萼片長度”的決策樹回歸模型。

[[x =虹膜的花瓣。長度的]]y = iris[[‘Sepal.Length’]] x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.25) from sklearn.tree import DecisionTreeRegressor dtr = DecisionTreeRegressor() dtr.fit(x_train,y_train) y_pred=dtr.predict(x_test) y_pred[0:5] from sklearn.metrics import mean_squared_error mean_squared_error(y_test,y_pred)

102.你將如何從“cricbuzz”網站抓取數據?

import sys import time from bs4 import BeautifulSoup import requests import pandas as pd try: #使用瀏覽器獲取url。這是可疑的命令,可能會爆炸。Page =requests.get(' cricbuzz.com ') #如果出現錯誤,可能會拋出異常。error_type, error_obj, error_info = sys.exc_info() #獲取異常信息print (' ERROR FOR LINK: ',url) #打印導致問題的鏈接print (error_type, ' Line: ', error_info.tb_lineno) #打印拋出異常的錯誤信息和行#忽略此頁。放棄這一切,回去吧。time.sleep(2) soup=BeautifulSoup(page.text, ' html.parser ') links=soup.find_all(' span ',attrs={' class ': ' w_tle '}) links for i in links: print(i.text) print(" \n ")

103.編寫一個用戶定義的函數來實現中心極限定理。你必須在這個“保險”數據集上實現中心極限定理:

你還必須在“BMI的抽樣分布”和“BMI的總體分布”上建立兩個圖。

Df = pd.read_csv(' insurance.csv ') series1 = Df .csv。series1指控。dtype def central_limit_theorem(data,n_samples = 1000, sample_size = 500, min_value = 0, max_value = 1338): " " "用這個函數來演示中心極限定理。data = 1D數組,或pd。序列n_samples =要創建的樣本數量sample_size =單個樣本的大小min_value =數據的最小索引值max_value =數據的最大索引值" " " %matplotlib inline import pandas as pd import numpy as np import matplotlib。Pyplot as PLT import seaborn as SNS b = {} for I in range(n_samples): x = np.unique(np.random。randint(min_value, max_value, size = sample_size)) #具有特定大小的隨機數集合b[i] = data[x]. Mean() #每個樣本的平均值c = pd.DataFrame() c[' sample '] = b.s ekeys() #樣本數c[' Mean '] = b.s evalues() #特定樣本plt的平均值figure(figsize= (15,5)) plt.subplot(1,2,1) sns.distplot(c.Mean) plt.subplot(1,2,1)標題(f“bmi的抽樣分布。\n \u03bc = {round(c.m mean .mean(), 3)} & SE = {round(c.m mean .std(),3)} ") plt.xlabel(' data ') plt.ylabel(' freq ') plt.subplot(1,2,2) sns.distplot(data) plt.xlabel(' data ')標題(f“bmi的人口分布。\n \u03bc = {round(data.mean(), 3)} & \u03C3 = {round(data.std(),3)} ") plt.xlabel(' data ') plt.ylabel(' freq ') plt.show() central_limit_theorem(series1,n_samples = 5000, sample_size = 500)

代碼的解釋:

我們首先用下麵的命令導入insurance.csv文件:

Df = pd.read_csv(' insurance.csv ')

然後我們繼續定義中心極限定理方法:

defcentral_limit_theorem (data,n_samples = 1000, sample_size = 500, min_value = 0, max_value = 1338):

該方法包括以下參數:

  • 數據
  • N_samples
  • Sample_size
  • Min_value
  • Max_value

在這個方法中,我們導入所有必需的庫:

導入pandas as pd import numpy as np import matplotlib。Pyplot作為PLT導入海運作為SNS

然後,我們繼續創建“bmi抽樣分布”的第一個子圖:

sns.distplot(c.Mean)標題(f“bmi的抽樣分布。\ n \ u03bc ={輪(c.Mean.mean (), 3)} & SE ={輪(c.Mean.std(), 3)}”)plt.xlabel(數據)plt.ylabel(頻率)

最後,我們創建了“BMI的人口分布”子圖:

sns.distplot(data) plt.subplot(1,2,2)標題(f“bmi的人口分布。\ n \ u03bc ={輪(data.mean (), 3)} & \ u03C3 ={輪(data.std(), 3)}”)plt.xlabel(數據)plt.ylabel(頻率)plt.show ()

104.編寫代碼對亞馬遜評論進行情緒分析:

這是python麵試中最常被問到的問題之一。

Import pandas as pd Import numpy as np Import matplotlib。python.keras導入模型,層,優化器從tensorflow.keras.預處理.text導入標記器,text_to_word_sequence從tensorflow.keras.預處理.sequence導入pad_sequences從sklearn導入bz2度量導入f1_score, roc_auc_score, accuracy_score導入re %matplotlib內聯def get_labels_and_texts(file): labels = [] texts = [] for line in bz2.BZ2File(file):x = line.decode(“utf - 8”)labels.append (int (x [9]) - 1) texts.append (x [10] .strip())返回np.array(標簽),文本train_labels, train_texts = get_labels_and_texts(“train.ft.txt.bz2”)test_labels test_texts = get_labels_and_texts (test.ft.txt.bz2) train_labels [0] train_texts [0] train_labels = train_labels [0:500] train_texts = train_texts[0:500]進口再保險NON_ALPHANUM = re.compile (r (\ W)) NON_ASCII = re.compile (r”[^ a-z0-1 \ s]”)def normalize_texts(文本):normalized_texts =[]文本的文本:lower = text.lower() no_punctuation = non_字母。sub(r ' ', lower) no_non_ascii = NON_ASCII。Sub (r ", no_punctuation) normalized_texts.append(no_non_ascii)返回normalized_texts train_texts = normalize_texts(train_texts) test_texts = normalize_texts(test_texts) from sklearn.feature_extraction。text import CountVectorizer cv = CountVectorizer(binary=True) cv.fit(train_texts) X = cv.transform(train_texts) X_test = cv.transform(test_texts) from sklearn. txt從sklearn導入LogisticRegression。指標從sklearn導入accuracy_score。model_select import train_test_split X_train, X_val, y_train, y_val = train_test_split(X, train_labels, train_size = 0.75) for c in [0.01, 0.05, 0.25, 0.5, 1]: lr = LogisticRegression(c =c)fit(X_train, y_train) print("精度為C=%s: %s " % (C, accuracy_score(y_val, lr.predict(X_val)))) lr.predict(X_test[29]))

105.使用numpy和matplotlib實現一個概率圖:

索爾:

Import numpy為np Import pylab Import scipy。從matplotlib導入pyplot as PLT n1=np.random.normal(loc=0,scale=1,size=1000) np.percentile(n1100) n1=np.random.normal(loc=20,scale=3,size=100) Stats .probplot(n1,dist= " norm ",plot=pylab) PLT .show()

106.在虹膜數據集上實現多元線性回歸:

自變量應為“萼片”。寬度”、“花瓣。”、“花瓣長度。Width”,因變量應為“Sepal.Length”。

索爾:

import pandas as pd iris = pd.read_csv(" iris.csv ") iris.head() x = iris[[' Sepal.Width ', '花瓣. length ', '花瓣. length ', '花瓣。寬度']]y =虹膜[['萼片。長度']]來自sklearn。從sklearn導入train_test_split x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.35)linear_model import LinearRegression lr = LinearRegression() lr。Fit (x_train, y_train) y_pred = lr.predict(x_test) from sklearn。參數導入

代碼的解決方案:

我們首先導入所需的庫:

導入熊貓為pd iris = pd.read_csv(" iris.csv ") iris.head()

然後,我們將繼續提取自變量和因變量:

x = iris[['萼片.寬度','花瓣.長度','花瓣.長度'。寬度']]y =虹膜[['萼片。長度的]]

接下來,我們將數據分為訓練集和測試集:

從sklearn。導入train_test_split x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.35)

然後,我們繼續構建模型:

從sklearn。linear_model import LinearRegression lr = LinearRegression() lr。Fit (x_train, y_train) y_pred = lr.predict(x_test)

最後,我們將找出均方誤差:

從sklearn。參數導入

107.從這個信用欺詐數據集中:

找出欺詐交易和非欺詐交易的百分比。同時建立一個邏輯回歸模型,以找出交易是否欺詐。

索爾:

nfcount=0 notFraud=data_df[' Class '] for i in range(len(notFraud)): if notFraud[i]==0: nfcount=nfcount+1 nfcount per_nf=(nfcount/len(notFraud)))*100 print('數據集中非欺詐交易總數的百分比:',per_nf) fcount=0 fraud =data_df[' Class '] for i in range(len(fraud)): if fraud [i]==1: fcount=fcount+1 fcount per_f=(fcount/len(fraud))*100 print('數據集中欺詐交易總數的百分比:',per_f) x=data_df。drop([' Class '], axis = 1)#drop目標變量y=data_df[' Class '] xtrain, xtest, ytrain, ytest = train_test_split(x, y, test_size = 0.2, random_state = 42) logisticreg = LogisticRegression() logisticreg。Fit (xtrain, ytrain) y_pred = logisticreg.predict(xtest) accuracy= logisticreg.score(xtest,ytest) cm = metrics。confusi_matrix (ytest, y_pred) print(cm)

108.使用Keras在MNIST數據集上實現一個簡單的CNN。下麵這個,也加入了輟學層。

索爾:

從tensorflow.keras.datasets導入cifar10, mnist從tensorflow.keras.models導入Sequential從tensorflow.keras.layers導入Dense, Activation, Dropout, Flatten, shapes從tensorflow.keras.layers導入Convolution2D, MaxPooling2D。keras import utils import pickle from matplotlib import pyplot as plt import seaborn as sns plt. rcparams [' figure。figsize '] = (15,8) %matplotlib inline #加載/準備數據(x_train, y_train_num), (x_test, y_test_num) = mnst .load_data() x_train = x_train.重塑(x_train. num)Shape [0], 28,28,1).astype(' float32 ') x_test = x_test. Shape (x_test. Shape)。Shape [0], 28,28,1).astype(' float32 ') x_train /= 255 x_test /= 255 y_train = utils。To_categorical (y_train_num, 10) y_test = utils。to_categorical(y_test_num, 10) print(' - THE DATA - ') print(' x_train shape: ', x_train.shape) print(x_train. shape)Shape [0], ' train samples ')shape[0], ' test samples ') TRAIN = False BATCH_SIZE = 32 EPOCHS = 1 #定義模型類型model1 = tf.keras.Sequential() # Flatten images to Vector model1.add(重塑((784,),input_shape=(28,28,1))) # Layer 1 model1。add(Dense(128, kernel_initializer= ' he_normal ', use_bias=True)) model1.add(Activation(" relu ")) # Layer 2 model1。add(Dense(10, kernel_initializer= ' he_normal ', use_bias=True)) model1.add(Activation(" softmax "))) #損失和優化器model1.compile(Loss = ' categorical_crossentropy ', Optimizer = ' adam ', metrics=[' accuracy ']) #存儲訓練結果early_stop = keras.callbacks。earlystop (monitor= ' val_acc ', patience=10, verbose=1, mode= ' auto ') callback_list = [early_stopped]# [stats, early_stopped]#訓練模型model1。fit(x_train, y_train, nb_epoch=EPOCHS, batch_size= batch_size, validation_data=(x_test, y_test), callbacks=callback_list, verbose=True) #刪除層:#定義模型model3 = tf.keras.Sequential() #第一Conv層model3。add(Convolution2D(32, (3,3), input_shape=(28,28,1))) model3.add(Activation(' relu ')) # 2nd Conv Layer model3。add(Convolution2D(32, (3,3))) model3.add(Activation(' relu ')) #最大池化模型3.add(MaxPooling2D(pool_size=(2,2))) # Dropout model3.add(Dropout(0.25)) #全連接層model3.add(Flatten()) model3.add(Dense(128)) model3.add(Activation(' relu ')) #更多Dropout model3.add(Dropout(0.5)) #預測層model3.add(Dense(10)) model3.add(Activation(' softmax ')) # Loss and Optimizer model3.compile(Loss = ' categorical_crossentropy ', Optimizer = ' adam ',metrics=[' accuracy ']) #存儲訓練結果early_stopped = tf.keras.callbacks。EarlyStopping(monitor=’val_acc’, patience=7, verbose=1, mode=’auto’) callback_list = [early_stopping] # Train the model model3.fit(x_train, y_train, batch_size=BATCH_SIZE, nb_epoch=EPOCHS, validation_data=(x_test, y_test), callbacks=callback_list)

109.在這個電影鏡頭數據集上實現一個基於流行度的推薦係統:

導入OS Import numpy as np Import pandas as pd ratings_data = pd.read_csv(" ratings.csv ") ratings_data.head() movie_names = pd.read_csv(" movies.csv ") movie_names.head() movie_data = pd.read_csv(" movies.csv ")merge(ratings_data, movie_names, on= ' movieId ') movie_data.groupby(' title ')[' rating '].mean().head() movie_data.groupby(' title ')[' rating '].mean() movie_data.groupby(' title ')[' rating '].count()。sort_values(升序=False).head() movie_data.groupby(' title ')[' rating '].mean() ratings_mean_count = p.d ataframe (movie_data.groupby(' title ')[' rating '].mean() ratings_mean_count[' rating_counts '] = p.d ataframe (movie_data.groupby(' title ')[' rating '].count [' rating '].count()

110.在糖尿病數據集上實現樸素貝葉斯算法:

導入numpy作為np #線性代數導入pandas作為pd #數據處理,CSV文件I/O(例如pd.read_csv)導入matplotlib。Pyplot作為plt# matplotlib。pyplot plots data %matplotlib inline import seaborn as sns pdata = pd.read_csv(" poma -indians-diabetes.csv ") columns = list(pdata)[0:-1] #排除隻有pdata[columns]的結果列。hist(stacked=False, bins=100, figsize=(12,30), layout=(14,2));#前8列的直方圖

然而,我們希望看到圖形表示的相關性,所以下麵是它的函數:

Def plot_corr(df, size=11): corr = df.corr() fig, ax = plt。Subplots (figsize=(size, size)) ax.matshow(corr) plt.xticks(range(len(corr.columns)), corr.columns) plt.yticks(range(len(corr.columns)), corr.columns) plot_corr(pdata) from sklearn。model_selection import train_test_split X = pdata.drop(' class ',axis=1) #預測器特征列(8 X m) Y = pdata[' class '] #預測類(1=True, 0=False) (1 X m) x_train, x_test, y_train, y_test = train_test_split(X, Y, test_size=0.3, random_state=1) # 1隻是sklearn中的任意隨機種子號x_train.head()。使用高斯算法從Naive Bayes #中導入gaussiannb#,創建模型diab_model = GaussianNB() diab_model。fit(x_train, y_train.ravel()) diab_train_predict = diab_model.predict(x_train) from sklearn導入度量打印("模型精度:{0:.4f} " .format(度量。diab_test_predict = diab_model.predict(x_test) from sklearn import metrics print(" Model Accuracy: {0:.4f} " .format(metrics. score(y_train, diab_train_predict))) print()accuracy_score(y_test, diab_test_predict)) print() print(" Confusion Matrix ") cm=metrics。confusi_matrix (y_test, diab_test_predict, labels=[1,0]) df_cm = pd。數據Frame(cm, index = [i for i in [“1″,”0”]], columns = [i for i in [“Predict 1″,”Predict 0”]]) plt.figure(figsize = (7,5)) sns.heatmap(df_cm, annot=True)

111.如何找到元組中存在的最小值和最大值?

解決方案- - - - - - >

我們可以在元組頂部使用min()函數來找出元組中存在的最小值:

tup1 =(1、2、3、4、5)分鍾(tup1)

輸出

1

我們看到,元組中存在的最小值是1。

與min()函數類似的是max()函數,它將幫助我們找出元組中存在的最大值:

tup1 =(1、2、3、4、5)馬克斯(tup1)

輸出

5

我們看到,元組中存在的最大值是5。

112.如果你有這樣的一個列表- >[1,““,2,“b”、3、“c”)。如何訪問這個列表中的第2、第4和第5個元素?

解決方案- - - - - - >

首先,我們將創建一個元組,它將包含我們想要訪問的元素的索引。

然後,我們將使用for循環遍曆索引值並將它們打印出來。

下麵是整個過程的代碼:

I的索引= (1,3,4):print(a[I])

113.如果你有一個這樣的列表——> [" sparta ",True,3+4j,False]。您將如何反轉此列表中的元素?

解決方案- - - - - - >

我們可以在列表中使用reverse()函數:

a.reverse ()

114.如果你有這樣的字典- > fruit={“蘋果”:10,“橘子”:20,“香蕉”:30,“番石榴”:40}。你如何將“Apple”的值從10更新到100?

解決方案- - - - - - >

你可以這樣做:

水果(“蘋果”)= 100水果

在括號內給出鍵的名稱,並為其分配一個新值。

115.如果你有兩個這樣的集合——> s1 = {1,2,3,4,5,6}, s2 ={5,6,7,8,9}。你怎麼找到這些集合中的公共元素呢?

解決方案- - - - - - >

你可以使用intersection()函數來查找兩個集合之間的公共元素:

s1 = {1, 2, 3, 4, 5, 6} s2 = {5 6 7 8 9} s1.intersection (s2)

我們看到兩個集合之間的公共元素是5和6。

116.寫一個程序,用while循環輸出兩個表。

解決方案- - - - - - >

下麵是打印2-table的代碼:

代碼

我= 1 n = 2, < = 10:打印(n,“*”,“=”,n *我)我= + 1

輸出

我們首先初始化兩個變量“i”和“n”。' i '初始化為1,' n '初始化為' 2 '。

在while循環中,由於' i '的值從1到10,循環將迭代10次。

一開始,n*i等於2*1,然後輸出這個值。

然後,' i '的值增加,n*i變成2*2。我們繼續打印它。

這個過程一直持續到i值變為10。

117.寫一個函數,它將接收一個值,並打印出它是偶數還是奇數。

解決方案- - - - - - >

下麵的代碼將完成這項工作:

Def even_odd(x):如果x%2==0:打印(x,"是奇數")else:打印(x,"是奇數")

在這裏,我們首先創建一個名為“even_odd()”的方法。這個函數接受一個參數,並輸出所取的數字是偶數還是奇數。

現在,讓我們調用函數:

even_odd (5)

我們看到,當5作為參數傳遞給函數時,我們得到輸出-> ' 5是奇數'。

118.寫一個python程序來打印一個數字的階乘。

這是python麵試中最常被問到的問題之一

解決方案- - - - - - >

下麵是打印一個數字的階乘的代碼:

階乘= 1 #檢查數字是否為負,正或零如果num<0:打印(“對不起,負數的階乘不存在”)elif num==0:打印(“0的階乘是1”)else for i in range(1,num+1):階乘=階乘*i打印(“的階乘”,num,“is”,階乘)

我們從一個存儲在' num '中的輸入開始。然後,我們檢查' num '是否小於0,如果它確實小於0,我們打印'對不起,負數的階乘不存在'。

在這之後,我們檢查,如果' num '等於0,如果是這樣的話,我們輸出' the factorial (0) is 1 '。

另一方麵,如果' num '大於1,則進入for循環並計算該數字的階乘。

119.寫一個python程序來檢查給定的數字是否是回文

解決方案- - - - - - >

下麵是檢查給定數字是否為回文的代碼:

n=int(input(" input number:")) temp=n rev=0 while(n>0) dig=n%10 rev=rev*10+dig n=n//10 if(temp==rev): print("該數字是一個回文!")else: print("該數字不是一個回文!")

首先,我們將獲取一個輸入,並將其存儲在“n”中,並在“temp”中創建一個副本。我們還將另一個變量rev初始化為0。

然後,我們將進入一個while循環,直到“n”變成0。

在循環中,我們首先將“n”除以10,然後將餘數存儲在“dig”中。

然後,我們將' rev '乘以10,然後再加上' dig '。這個結果將被存儲回' rev '中。

接下來,我們將n除以10並將結果存儲回n中

for循環結束後,我們將比較' rev '和' temp '的值。如果它們相等,則輸出' The number is a palindrome ',否則輸出' The number is a palindrome '。

120.寫一個python程序來打印下麵的模式->

這是python麵試中最常被問到的問題之一:

1

2 - 2

3 3 3

4 4 4 4

55 55 55 5

解決方案- - - - - - >

下麵是打印該模式的代碼:

#10是在範圍(6)中為num打印的總數:對於範圍(num)中的I:打印(num,end=" ")#打印數字#每行後的新行以正確顯示模式打印("\n")

我們正在用嵌套的for循環來解決這個問題。我們會有一個外部的for循環,它從1到5。然後,我們有一個內部的for循環,它將打印相應的數字。

121.模式的問題。打印以下模式

# #

# # #

# # # #

# # # # #

解決方案- - - - - - >

Def pattern_1(num): #外層循環處理行數#內部循環處理列數# n是行數。for i in range(0, n): # j的值取決於i for j in range(0, i+1): #打印散列打印("#",end="") #每行結束後打印("\r") num = int(input("輸入模式中的行數:"))pattern_1(num)

122.打印下麵的圖案。

# #

# # #

# # # #

# # # # #

解決方案- - - - - - >

代碼:

def pattern_2 (num): #的數量定義空間k = 2 * num - 2 #外層循環總是處理的行數#讓我們使用內循環來控製空間#的數量我們需要空間最初是最大的數量然後減量後每次迭代範圍(0,num):我的j的範圍(0 k):打印(結束= " ")#遞減k每次循環後k = k - 2 #重新初始化的內循環來保持跟蹤列數#類似pattern_1 j函數的範圍(0,+ 1):print("# ", end="") #每一行結束行print("\r") num = int(input("輸入模式的行數"))pattern_2(num)

123.打印以下圖案:

0

0 1

0 1 2

0 1 2 3

0 1 2 3 4

解決方案- - - - - - >

代碼:

Def pattern_3(num): #初始化起始數字number = 1 #外部循環總是處理行數#讓我們使用內部循環來控製範圍(0,num)中I的數字:# re在每次迭代後分配數字#確保列從0開始number = 0 #內部循環來處理範圍(0,I +1)中j的列數:# print number print(number, end=" ") #在每一行打印後按列遞增number = number + 1 #結束行("\r") num = int(input("輸入模式中的行數"))pattern_3(num)

124.打印以下圖案:

1

2 3

4 5 6

7 8 9 10

11 12 13 14 15

解決方案- - - - - - >

代碼:

Def pattern_4(num): #初始化起始數字number = 1 #外部循環總是處理行數#讓我們使用內部循環來控製範圍(0,num)中I的數字:#注釋重新初始化部分確保數字連續打印#確保列從0開始number = 0 #內部循環來處理範圍(0,I +1)中j的列數:# print number print(number, end=" ") #在每一行打印後按列遞增number = number + 1 #結束行("\r") num = int(input("輸入模式中的行數"))pattern_4(num)

125.打印以下圖案:

一個

B B

C C C

D D D D

解決方案- - - - - - >

def pattern_5 (num): #初始化值65 #的ASCII值同等數量= 65 #外循環總是為我在處理的行數範圍(0,num): #內循環處理j列數的範圍(0,+ 1):#尋找ASCII字符數量相當於=裝備(數量)#印刷字符值打印(char、結束= " ")#遞增數量數量=數量+ 1 #線結束後每一行打印(“\ r”)num = int(輸入(“在模式:輸入的行數”))pattern_5 (num)

126.打印以下圖案:

一個

B C

D e f

G h I j

kl mn o

P q r s ut

解決方案- - - - - - >

def pattern_6(num): #初始化值等價於ASCII中的'A' # ASCII值number = 65 #外部循環總是處理i在範圍(0,num)中的行數:#內部循環處理列數#值更改acc。對於j在範圍(0,i+1)中的外部循環:# int顯式轉換為char #返回等效於ASCII的字符。Char = chr(number) #打印Char值print(Char, end=" ") #打印下一個字符,每行打印後遞增number = number +1 #結束行("\r") num = int(input("輸入模式中的行數:"))pattern_6(num)

127.打印以下模式

# #

# # #

# # # #

# # # # #

解決方案- - - - - - >

代碼:

def pattern_7 (num): #空間是一個函數的輸入num k = 2 * num - 2 #外層循環範圍總是為我處理的行數(0,num): #內循環用於處理數j空間的範圍(0 k):打印(結束= " ")#變量持有信息的空間#每次迭代後遞減k = k - 1 #內循環初始化處理的j列數範圍(0,+ 1):#打印散列打印("# ",end="") #結束每行打印("\r") num = int(input("輸入行數"))pattern_7(n)

128.如果你有一個這樣的字典-> d1={" k1″:10," k2″:20," k3 ":30}。如何增加所有鍵的值?

d1 ={“k2”:“k1”:10日20日“k3”:30}我在d1.keys (): d1[我]= d1[我]+ 1

129.如何在python中獲得隨機數?

答。為了生成一個random,我們使用python的random模塊。下麵是一些從0-1生成浮點數的例子

import random n = random.random() print(n)在一定的範圍內(比如從a到b)生成一個整數:import random n = random.randint(a,b) print(n)

130.解釋一下如何在Django中設置數據庫。

項目的所有設置以及數據庫連接信息都包含在settings.py文件中。Django默認與SQLite數據庫一起工作,但也可以配置為與其他數據庫一起工作。

數據庫連接需要完整的連接信息,包括數據庫名、用戶憑證、主機名和驅動器名等等。

要連接到MySQL,並在應用程序和數據庫之間建立連接,請使用django.db.backend . MySQL驅動程序。

所有連接信息必須包含在設置文件中。我們的項目的settings.py文件有下麵的數據庫代碼。

DATABASES = {'default': {'ENGINE': 'django.db.backends. js .db.backends. js。mysql”、“名稱”:“djangoApp”、“用戶”:“根”、“密碼”:“mysql”、“主機”:“localhost”、“端口”:“3306年}}

這個命令將為管理、認證、內容類型和會話構建表。現在您可以通過從數據庫下拉菜單中選擇MySQL數據庫來連接到它。

131.給出一個如何在Django中編寫VIEW的例子。

沒有Django視圖,Django MVT結構是不完整的。根據Django手冊,視圖函數是一個Python函數,用於接收Web請求並傳遞Web響應。這個響應可能是網頁的HTML內容、重定向、404錯誤、XML文檔、圖像或任何瀏覽器可以顯示的內容。

當你使用Django視圖(用戶界麵的一部分)顯示網頁時,模板文件中的HTML/CSS/JavaScript會轉換成你在瀏覽器中看到的內容。(如果你使用了其他MVC (Model-View-Controller)框架,不要將Django視圖和MVC視圖結合在一起。)在Django中,視圖是類似的。

#從django導入Http響應http import HttpResponse # get datetime import datetime #創建一個函數def geeks_view(request): #獲取日期和時間now = datetime.datetime.now() #轉換為字符串html = "時間是{}".format(now) #返回響應返回HttpResponse(html)

132.解釋一下Django框架中會話的使用?

Django(以及大部分互聯網)使用會話來跟蹤特定站點和瀏覽器的“狀態”。會話允許您在每個瀏覽器上保存任意數量的數據,並在每次瀏覽器連接時使其在站點上可用。會話的數據元素隨後由一個“鍵”表示,該鍵可用於保存和恢複數據。

Django使用一個帶有單個字符ID的cookie來識別任何瀏覽器及其與該網站相關聯的網站。默認情況下,會話數據存儲在站點的數據庫中(這比存儲在cookie中更安全,後者更容易受到攻擊)。

Django允許你將會話數據存儲在不同的位置(緩存,文件,“安全”cookie),但是默認位置是一個可靠和安全的選擇。

啟用會話

當我們構建框架網站時,會話默認是啟用的。

配置是在INSTALLED_APPS和MIDDLEWARE部分的項目文件(locallibrary/locallibrary/settings.py)中設置的,如下所示:

Installed_apps =[…]“django.contrib。會話”,…中間件=[…]“django.contrib.sessions.middleware。SessionMiddleware’,……

使用會話

request參數允許您訪問視圖的會話屬性(作為視圖的第一個參數傳入的HttpRequest)。這個網站的瀏覽器cookie中的會話id標識到當前用戶的特定連接(或者更準確地說,到當前瀏覽器的連接)。

會話資產是一個類似字典的項目,您可以根據需要在視圖上頻繁地檢查和寫入它,並隨時更新它。您可以執行所有標準字典操作,例如清除所有數據、測試是否存在鍵、遍曆數據等等。但是,大多數情況下,您隻需要使用通常的“字典”API來獲取和設置值。

下麵的代碼段演示了如何使用鍵“my bike”(瀏覽器)獲取、更改和刪除與當前會話鏈接的數據。

注意:Django最好的一點是你不必擔心連接會話到當前請求的機製。如果我們在視圖中使用下麵的片段,我們就會知道my_bike的信息隻與發送當前請求的瀏覽器相關聯。

#通過鍵獲取會話值(例如' my_bike '),如果鍵不存在,則引發KeyError。session[' my_bike '] #獲取會話值,如果不存在則設置默認值(' mini ') my_bike= request.session。get(' my_bike ', ' mini ') #設置會話值請求。session[' my_bike '] = ' mini ' #刪除會話值del request.session[' my_bike ']

API中提供了各種不同的方法,其中大多數用於控製鏈接的會話cookie。例如,有幾種方法可以驗證客戶端瀏覽器是否支持cookie,設置和檢查cookie過期日期,以及從數據存儲中刪除過期會話。如何利用會話有關於整個API的進一步信息(Django文檔)。

133.列出Django中的繼承樣式。

抽象基類:當開發人員希望父類保存他們不想為每個子模型輸入的數據時,使用這種繼承模式。

從django.db導入models.pyclass ContactInfo(models.Model): name=models.CharField(max_length=20) email=models.EmailField(max_length=20) address=models.TextField(max_length=20) class Meta: abstract=True class Customer(ContactInfo): phone=models.IntegerField(max_length=15) class Staff(ContactInfo): position=models.CharField(max_length=10) admin.py admin.site.register(Customer) admin.site.register(Staff)

當我們傳遞這些修改時,數據庫中會形成兩個表。在Customer Table中有名稱、電子郵件、地址和電話字段。我們在員工表中有名稱、電子郵件、地址和職位字段。Table不是在此繼承中構建的基類。

多表繼承:當您希望繼承一個現有模型的子類,並且每個子類都有自己的數據庫表時,可以使用它。

在這裏創建你的模型。class Place(models.Model): name=models.CharField(max_length=20) address=models.TextField(max_length=20) def __str__(self):返回self.name class Restaurants(Place): serves_pizza=models.BooleanField(default=False) serves_pasta=models.BooleanField(default=False) def __str__(self):返回self.name。Serves_pasta admin.py from django。在這裏注冊你的模型。admin.site.register(地方)admin.site.register(餐廳)

代理模型:這種繼承方法允許用戶在不改變模型字段的情況下改變基本級別的行為。

如果你隻是想改變模型的Python級行為,而不是模型的字段,就使用這種技術。除了字段之外,您可以繼承基類,並且可以添加自己的屬性。

  • 抽象類不應該用作基類。
  • 多重繼承在代理模型中是不可能的。

這樣做的主要目的是取代以前模型的關鍵功能。它總是使用重寫的方法來查詢原始模型。

134.如何獲得任何URL或網頁的穀歌緩存年齡?

使用URL

https://webcache.googleusercontent.com/search?q=cache:<你的url沒有“http://”>

例子:

它包含一個這樣的頭文件:

這是穀歌的https://stackoverflow.com/緩存。這是2012年8月21日格林尼治標準時間11:33:38的頁麵截圖。同時,當前頁麵可能已經更改。

提示:使用查找欄並按Ctrl+F或⌘+F (Mac)在本頁上快速找到您的搜索詞。

你必須抓取生成的頁麵,但是最新的緩存頁麵可以在這個URL中找到:

http://webcache.googleusercontent.com/search?q=cache:www.something.com/path

body標簽中的第一個div包含穀歌信息。

你可以使用CachedPages網站

擁有複雜web服務器的大型企業通常會保存緩存頁麵。因為這樣的服務器通常非常快,緩存頁麵通常可以比實時網站更快地檢索:

  • 頁麵的當前副本通常由穀歌保存(1到15天前)。
  • Coral還保留了一個當前的副本,盡管它不像穀歌的那樣最新。
  • 您可以通過Archive.org訪問一個網頁的多個版本。

所以,下次你不能訪問一個網站,但仍然想看它,穀歌的緩存版本可能是一個很好的選擇。首先,確定年齡是否重要。

135.簡單解釋一下Python名稱空間?

python中的命名空間談論的是分配給python中每個對象的名稱。命名空間在python中就像字典一樣,字典的鍵是命名空間,值是該對象的地址。

不同類型如下:

  • built-in -namespace——python中包含所有內置對象的命名空間。
  • 全局命名空間——由調用主程序時創建的所有對象組成的命名空間。
  • 封閉名稱空間——更高層次上的名稱空間。
  • 本地命名空間——本地函數中的命名空間。

136.簡單解釋一下Python中的Break, Pass和Continue語句?

Break:當我們在python代碼/程序中使用Break語句時,它會立即中斷/終止循環,並且在循環體之後將控製流返回給語句。

Continue:當我們在python代碼/程序中使用Continue語句時,它會立即中斷/終止該語句的當前迭代,並跳過當前迭代中的程序其餘部分,並控製流向循環的下一個迭代。

Pass:當我們在python代碼/程序中使用Pass語句時,它會填充程序中的空白位置。

例子:

GL = [10,30,20,100,212,33,13,50,60,70] for g in GL: pass if(g ==0): current = g break elif(g%2==0): continue print(g) # output => 13 13 1 print(current)

137.給我一個關於如何將列表轉換為字符串的例子?

下麵給出的例子將展示如何將列表轉換為字符串。當我們將列表轉換為字符串時,我們可以使用"。函數來做同樣的事情。

fruits =['蘋果','橙子','芒果','木瓜','番石榴']listAsString = ' ' .join(水果)print(listAsString)

蘋果,橘子,芒果,木瓜,番石榴

138.給我一個例子,你可以把一個列表轉換為元組?

下麵給出的示例將展示如何將列表轉換為元組。當我們將列表轉換為元組時,我們可以使用函數,但請記住,由於元組是不可變的,我們不能將它轉換回列表。

水果=['蘋果','橙子','芒果','木瓜','番石榴']listAsTuple = tuple(水果)print(listAsTuple)

(“蘋果”、“橘子”、“芒果”、“木瓜”、“番石榴”)

139.如何計算列表中特定元素的出現次數?

在python的列表數據結構中,我們使用count()函數計算元素出現的次數。

水果=['蘋果','橙子','芒果','木瓜','番石榴']print(Fruits .count('蘋果'))

輸出:1

140.如何調試python程序?

有幾種調試Python程序的方法:

  • 使用打印語句將變量和中間結果打印到控製台
  • 使用如下調試器pdbipdb
  • 添加斷言語句添加到代碼中以檢查某些條件

141.Python中的列表和元組有什麼區別?

列表是一種可變數據類型,這意味著它可以在創建後被修改。元組是不可變的,這意味著它在創建後不能被修改。這使得元組比列表更快、更安全,因為它們不能被代碼的其他部分意外修改。

142.在Python中如何處理異常?

Python中的異常可以使用試一試- - - - - -除了塊。例如:

複製代碼try: #可能引發異常的代碼,除非SomeExceptionType: # code處理異常

143.如何在Python中反轉字符串?

在Python中有幾種反轉字符串的方法:

  • 使用步長為-1的切片:
複製代碼String = "abcdefg" reversed_string = String [::-1]
  • 使用逆轉功能:
複製代碼String = "abcdefg" reversed_string = "".join(reversed(String))
  • 使用for循環:
複製代碼String = "abcdefg" reversed_string = "" String中的char: reversed_string = char + reversed_string

144.如何在Python中對列表進行排序?

在Python中有幾種方法對列表進行排序:

  • 使用排序方法:
複製代碼My_list = [3,4,1,2] My_list .sort()
  • 使用排序功能:
複製代碼My_list = [3,4,1,2] sorted_list = sorted(My_list)
  • 使用排序函數從操作符模塊:
複製代碼my_list = [{"a": 3}, {"a": 1}, {"a": 2}] sorted_list = sorted(my_list, key=itemgetter("a"))

145.如何在Python中創建字典?

在Python中有幾種創建字典的方法:

  • 使用大括號和冒號分隔鍵和值:
複製代碼My_dict = {"key1": "value1", "key2": "value2"}
  • 使用dict功能:
複製代碼My_dict = dict(key1="value1", key2="value2")
  • 使用dict構造函數:
複製代碼my_dict = dict({“key1”:“value1”、“key2”:“value2”})

問題1。如何在Python編程麵試中脫穎而出?

現在你已經為Python麵試的技術技能做好了準備,你一定想知道如何從人群中脫穎而出,從而成為被選中的候選人。您必須能夠證明您能夠編寫幹淨的生產代碼,並且具有所需庫和工具的知識。如果你之前參與過任何項目,那麼在麵試中展示這些項目也會讓你從人群中脫穎而出。

還讀:最常見的麵試問題

問題2。如何準備Python麵試?

要準備Python麵試,你必須了解語法、關鍵字、函數和類、數據類型、基本編碼和異常處理。對所有使用的庫和ide有基本的了解,並閱讀與Python教程相關的博客將對你有所幫助。展示你的示例項目,溫習算法的基本技能,也許還可以參加一門免費的課程Python數據結構教程.這將幫助你做好準備。

問題3。Python編程麵試很難嗎?

Python麵試的難度會根據你申請的職位、公司、他們的要求以及你的技能和知識/工作經驗而有所不同。如果你是這個領域的初學者,對自己的編碼能力還不自信,你可能會覺得麵試很難。做好準備,了解哪些類型的python麵試問題會幫助你做好準備,並在麵試中取得好成績。

問題4。如何通過Python編程麵試?

對ORM庫、Django或Flask、單元測試和調試技能、可擴展應用程序背後的基本設計原則、NumPy、Scikit learn等Python包有足夠的了解對你通過編碼麵試是極其重要的。你可以通過項目展示你以前的工作經驗或編碼能力,這是一個額外的優勢。

還讀:如何構建Python開發人員簡曆

問題5。如何調試python程序?

通過使用這個命令,我們可以在python終端中調試程序。

$ python -m PDB python-script.py

問題6。哪些課程或證書可以幫助提高Python知識?

到此為止,我們已經完成了關於Python麵試問題的博客。如果你想提高技能,參加一個證書課程將幫助你獲得所需的知識。你可以選一個Python程序設計課程開始你的Python職業生涯。

《阿凡達》的照片
beplay2018官网優秀的學習團隊
beplay2018官网Great Learning的博客涵蓋了最新的技術發展和創新,可以用來建立有價值的職業生涯。你會找到職業指南、技術教程和行業新聞,讓自己跟上快速變化的技術和商業世界。

關於“2023年Python麵試前145個問題和答案”的4個想法

  1. 烏瑪·喬杜裏

    這是我在互聯網上看到的最好的博客,所有的帖子都很好,有助於提供知識,教你新的技能,繼續這樣發布

留下評論

你的電郵地址將不會公布。必填字段已標記

與夢想的工作免費的印度最值得信賴的教育平台上的證書課程

滾動到頂部
Baidu
map