python 3.7極速入門教程8語言比較與面試考試試題

語言比較與面試考試試題

python和其他語言比較

  • Java

通常Python運行速度比Java程序慢點,但開發時間短很多。Python高級數據類型及其動態類型是比Java程序慢的主要原因,但是python很多庫比如numpy之類的是c或c++實現,實際執行效率有時比java還快。但是Java在android應用廣泛,python則沒有。現在第一語言的排名主要是Python和java的鬥爭。憑藉易學和豐富的庫,非IT專業業人士大量基於python學習人工智能和其他的數據分析等,Python有逐漸拉開與java距離的趨勢。

82 年 18 月 71號考試075分 去掉文字加我的裙

圖片.png

  • Perl

雖然這兩種語言在很多方面都被認爲是相似的,但Perl支持常見的面向應用程序的任務,如報告生成,文件掃描等。而Python支持常見的編程方法,如數據結構設計和OOP編程,代碼可讀性更好,第三方庫更豐富,與其他語言交互更方便,Perl是直接被Python超越並逐漸沒落的。

  • TCL

Tcl數據結構很弱,執行代碼的速度更慢,主要在一些通信儀表中使用,是一個極其次要的語言。

  • PHP

Python可讀性更好。

在Python中,類在標準庫中廣泛使用,而PHP具有完全基於類的SPL。

Python支持結構化異常處理,而大多數PHP函數不使用異常來報告錯誤

Python中的開發功能由庫提供,而在PHP中則是內置的

Python支持主要的GUI框架

PHP曾經是web後臺開發的霸主語言,在其他地方基本上無用武之地,近年來PHP在web後臺開發方面不敵Python,Java等語言,日漸衰落。

  • Ruby

與Ruby相比,Python具有豐富的數據結構,內部函數,更好的命名空間處理以及模塊和迭代器的使用

Python支持多重繼承,而Ruby則不支持。Python更簡潔。

RUBY在Web開發和函數式編程有一定市場,但是因爲Python過於龐大的庫,可讀性等,後臺主流腳本語言沒有不因爲Python擴張而衰落的。

  • C ++

Python代碼比大多數其他編程語言(如C或C ++)短得多。

Python是一種動態類型語言,而C ++是一種靜態類型語言。

Python的效率遠不敵C或C ++,Python和C或C ++是黃金組合。

  • JavaScript

Python主要在服務器端。 JavaScript主要在客戶端。JavaScript在後臺也有應用,但是市場地位遠不及python。

Python使用縮進和空格。 JavaScript使用大括號來指定代碼塊。

JavaScript是主流語言中唯一不受Python打壓的主流腳本語言。

參常見面試問題與解答

  • 什麼是Python?使用Python有什麼好處?

Python是一種編程語言,包含對象,模塊,線程,進程,異常和自動內存管理等。Python的好處在於它簡單易用,可移植,可擴展,內置數據結構,並且開源。

  • 什麼是PEP 8?

PEP 8是一個編碼約定,一組推薦,關於如何編寫Python代碼更具可讀性,俗稱編程風格指南。

  • 什麼是pickling和unpickling?

Pickle模塊接受任何Python對象並將其轉換爲字符串表示形式,並使用dump函數將其轉儲到文件中,此過程稱爲pickling。從存儲的字符串表示中還原原始Python對象的過程稱爲unpickling。

  • Python如何解釋?

Python語言是一種解釋語言。 Python程序直接從源代碼運行。它將程序員編寫的源代碼轉換爲中間語言,再轉換爲機器語言。

  • 如何在Python中管理內存?

Python內存由Python私有堆空間管理。所有Python對象和數據結構都位於私有堆中。程序員無權訪問此私有堆,解釋器負責處理此私有堆。

Python對象的Python堆空間分配由Python內存管理器完成。核心API提供了一些程序員編寫代碼的工具。

Python還有一個內置的垃圾收集器,它可以回收所有未使用的內存並釋放內存並使其可用於堆空間。

  • 有哪些工具可以幫助查找錯誤或執行靜態分析?
  • 什麼是Python裝飾器?

Python裝飾器是我們在Python語法中進行的一項特定更改,可以輕鬆地更改函數。

  • list和tuple有什麼區別?

列表和元組之間的區別在於列表是可變的而元組不是。元組可以被散列,例如作爲詞典的關鍵。

  • 參數如何通過值或引用傳遞?

Python中的所有內容都是一個對象,所有變量都包含對象的引用。參考值根據功能;因此,您無法更改引用的值。但是,如果對象是可變的,則可以更改它們。

  • Dict和List是什麼?

它們是語法結構,可以根據現有的iterable輕鬆創建Dictionary或List。

  • python提供的內置類型是什麼?

有可變和不可變類型。

可變的有列表、集合、字典。
不可變的:字符串、元組、數值

  • Python中的命名空間是什麼?

在Python中,引入的每個名稱都有個地方,並且可以hook。這稱爲命名空間。它就像一個框,其中變量名稱映射到對象。每當搜索到變量時,將搜索此框以獲取相應的對象。

  • Python中的lambda是什麼?

單獨表達式匿名函數,通常用作內聯函數。

  • 爲什麼python中的lambda沒有語句?

python中的lambda表單沒有語句,因爲它用於創建新的函數對象,然後在運行時返回它們。

  • 什麼是Python pass?

意味着,無操作的Python語句,或者換句話說,它是複合語句中的佔位符,其中應該留有空白,不必在那裏寫入任何內容。

  • 什麼是迭代器?

在Python中,迭代器用於迭代一組元素,如列表之類的容器。

  • 什麼是Python中的單元測試?

Python中的單元測試框架稱爲unittest。它支持初始化,自動化測試,測試清理代碼,測試用例組織等。pytest是python最出色的單元測試框架。nose是另外一個比較流行的單元測試框架。

從序列類型(如列表,元組,字符串等)中選擇一系列元素的機制稱爲切片。

  • Python中的生成器是什麼?

實現迭代器的方法稱爲生成器。這是在函數中產生表達式的函數。

  • Python中的docstring是什麼?

Python文檔字符串稱爲docstring,它是一種文檔化Python函數,模塊和類的方法,同時還可以用於測試。

  • 如何在Python中複製對象?

要在Python中複製對象,可以嘗試copy.copy () 或copy.deepcopy () 。複雜的對象無法複製所有對象。

  • Python中的負索引是什麼?

Python序列可以是正數和負數的索引。對於正索引,0是第一個索引,1是第二個索引,依此類推。對於負索引,( - 1)是最後一個索引,( - 2)是倒數第二個索引,依此類推。

  • 如何將數字轉換爲字符串?

要將數字轉換爲字符串,請使用內置函數str()。如果需要八進制或十六進制表示,請使用內置函數oct()或hex()。

  • Python中的模塊和包是什麼?

在Python中,模塊是構造程序的方式。每個Python程序文件都是一個模塊,它導入其他模塊,如對象和屬性。

Python程序的文件夾是模塊包。包可以包含模塊或子文件夾。

  • Python中局部變量和全局變量的規則是什麼?

局部變量:如果在函數體內的任何位置爲變量分配了一個新值,則假定它是本地的。

全局變量:僅在函數內引用的變量是隱式全局變量。

  • 如何跨模塊共享全局變量?

要在單個程序中跨模塊共享全局變量,請創建一個特殊模塊。在應用程序的所有模塊中導入配置模塊。該模塊將作爲跨模塊的全局變量提供。

  • 解釋如何在Linux上創建Python腳本?

要在Unix上使Python腳本可執行,您需要做兩件事,

文件可執行的

第一行指明用python調用,比如#!/usr/local/bin/python

  • 如何在Python中刪除文件?

使用命令shutil.rmtree,os.remove、os.unlink等。

  • 如何在Python中生成隨機數?

 

  • 如何從C訪問用Python編寫的模塊?
Module = =PyImport_ImportModule("<modulename>"); 
  • //運算符?

它是地板除,用於分割兩個操作數,結果爲商,只顯示小數點前的數字。例如,10 // 5 = 2和10.0 // 5.0 = 2.0。

  • 使用Python的好處?

Python包含巨大的標準庫,適用於大多數Internet平臺,如電子郵件,HTML等。強悍的外部庫勝過其他任何語言。

Python不需要顯式內存管理,因爲解釋器本身會將內存分配給新變量並自動釋放它們

可讀性好,容易維護

易學

內置強大的數據類型可以節省編程時間和工作量

膠水語言,與其他語言交互方便。

解釋語言,沒有繁瑣的編譯

跨平臺等等

  • split函數的作用?

在Python中使用split函數是使用定義的分隔符將字符串分解爲更短的字符串。它給出了字符串中存在的所有單詞的列表。

  • Flask及其好處?

Flask是基於“Werkzeug,Jinja 2和良好意圖”BSD許可的Python的Web微框架。 Werkzeug和jingja是它的兩個依賴。

Flask是微框架的一部分。它對外部庫幾乎沒有依賴性。框架輕盈,同時幾乎沒有更新的依賴性和更少的安全性錯誤。

  • Django,Pyramid和Flask之間有什麼區別?

Flask是“微框架”,主要用於具有更簡單要求的小型應用程序。

Pyramid是爲更大的應用程序構建的。它提供了靈活性,並允許開發人員爲他們的項目使用正確的工具。開發人員可以選擇數據庫,URL結構,模板樣式等。

像Pyramid一樣,Django也可以用於更大的應用程序。它包括一個ORM。

  • Flask-WTF以及它們的特點是什麼?

Flask-WTF提供與WTForms的簡單集成。功能包括與wtforms集成;使用csrf令牌保護表單;全球csrf保護;國際化整合;Recaptcha支持;文件

  • Flask scriptk腳本工作的常用方法是什麼?

應用程序的導入路徑或Python文件的路徑

  • 如何在Flask中訪問會話?

會話允許您記住從一個請求到另一個請求的信息。flask使用簽名cookie,以便用戶可以查看會話內容並進行修改。用戶有密鑰Flask.secret_key纔可以修改會話。

  • Flask是MVC模型麼,舉例看看?

Flask是一個簡約框架,其行爲與MVC框架相同。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
# 討論釘釘免費羣21745728 qq羣144081101 567351477
# CreateDate: 2018-11-03
"""
# 配置
from flask import Flask

app = Flask(__name__)

#視圖
@app.route("/")
def index():
    return "Hello, World!"

# 模型
if __name__ == '__main__':
    app.run(port=5000, debug=True)

 

  • Flask中的數據庫連接?

Flask支持數據庫驅動的應用程序(RDBS)。這樣的系統需要創建模式,這需要將shema.sql文件傳遞給sqlite3命令。因此,您需要安裝sqlite3命令才能在Flask中創建或啓動數據庫。

Flask允許以三種方式請求數據庫

before_request():在請求之前調用它們並且不傳遞任何參數
after_request():在請求後調用它們並傳遞將發送到客戶端的響應
teardown_request():在引發異常時調用它們,並且不保證響應。在構建響應之後調用它們。不允許它們修改請求,並忽略它們的值。

  • 你有多個運行Python的Memcache服務器,其中一個memcacher服務器出現故障,它有你的數據,是否會嘗試從那個故障服務器獲取關鍵數據?

故障服務器中的數據不會被刪除,但有一個自動故障的規定,您可以爲多個節點配置。可以在任何類型的套接字或Memcached服務器級別錯誤期間觸發故障轉移,而不是在正常的客戶端錯誤(如添加現有密鑰等)期間觸發。

  • 如何最小化Python開發中的Memcached服務器中斷?

當一個實例發生故障時,其中一些實例出現故障,當客戶端發出請求時重新加載丟失的數據時,這會給數據庫服務器帶來更大的負載。爲避免這種情況,如果您的代碼已編寫爲最小化緩存標記,那麼它將產生最小的影響

另一種方法是使用丟失的機器IP地址在新機器上調出Memcached實例
代碼是最小化服務器中斷的另一個選項,因爲它使您可以自由地以最少的工作更改Memcached服務器列表

設置超時值是某些Memcached客戶端爲Memcached服務器中斷實現的另一個選項。當Memcached服務器出現故障時,客戶端將繼續嘗試發送請求,直到達到超時限制

  • 什麼是Dogpile效應?你怎麼能防止這種影響?

當緩存過期時,Dogpile效應被稱爲事件,並且網站被客戶端同時發出的多個請求所擊中。使用信號量鎖可以防止這種影響。在此係統中,當值到期時,第一個進程獲取鎖並開始生成新值。

  • 如何在Python項目中不使用Memcached?

Memcached常見的誤用是將其用作數據存儲,而不是緩存

切勿使用Memcached作爲運行應用程序所需信息的唯一來源。數據也應始終通過其他來源提供

Memcached只是一個鍵或值存儲,不能對數據執行查詢或迭代內容以提取信息

Memcached在加密或身份驗證方面不提供任何形式的安全性

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