python基礎之python介紹

2022-09-01 11:42:12 字數 2120 閱讀 2021

一、python介紹

python的主要應用領域:

哪些公司正在應用

cia: 美國中情局**就是用python開發的

nasa: 美國航天局(nasa)大量使用python進行資料分析和運算

facebook:大量的基礎庫均通過python實現的

redhat: 世界上最流行的linux發行版本中的yum包管理工具就是用python開發的

豆瓣: 公司幾乎所有的業務均是通過python開發的

知乎: 國內最大的問答社群,通過python開發(國外quora)

python是一門解釋型語言

編譯和解釋的區別?

編譯器是把源程式的每一條語句都編譯成機器語言,並儲存成二進位制檔案,這樣執行時計算機可以直接以機器語言來執行此程式,速度很快; 

直譯器則是只在執行程式時,才一條一條的解釋成機器語言給計算機來執行,所以執行速度是不如編譯後的程式執行的快的. 

這是因為計算機不能直接認識並執行我們寫的語句,它只能認識機器語言(是二進位制的形式)

編譯型vs解釋型

編譯型

優點:編譯器一般會有預編譯的過程對**進行優化。因為編譯只做一次,執行時不需要編譯,所以編譯型語言的程式執行效率高。可以脫離語言環境獨立執行。

缺點:編譯之後如果需要修改就需要整個模組重新編譯。編譯的時候根據對應的執行環境生成機器碼,不同的作業系統之間移植就會有問題,需要根據執行的作業系統環境編譯不同的可執行檔案。

解釋型

優點:有良好的平台相容性,在任何環境中都可以執行,前提是安裝了直譯器(虛擬機器)。靈活,修改**的時候直接修改就可以,可以快速部署,不用停機維護。

缺點:每次執行的時候都要解釋一遍,效能上不如編譯型語言。

二、pythond的優缺點

優點:

python的定位是「優雅」、「明確」、「簡單」,所以python程式看上去總是簡單易懂,初學者學python,不但入門容易,而且將來深入下去,可以編寫那些非常非常複雜的程式。

高階語言————當你用python語言編寫程式的時候,你無需考慮諸如如何管理你的程式使用的記憶體一類的底層細節

可移植性————由於它的開源本質,python已經被移植在許多平台上(經過改動使它能夠工 作在不同平台上)。如果你小心地避免使用依賴於系統的特性,那麼你的所有python程式無需修改就幾乎可以在市場上所有的系統平台上執行

可擴充套件性————如果你需要你的一段關鍵**執行得更快或者希望某些演算法不公開,你可以把你的部分程式用c或c++編寫,然後在你的python程式中使用它們。

可嵌入性————你可以把python嵌入你的c/c++程式,從而向你的程式使用者提供指令碼功能。

缺點:

也是很多所謂的大牛不屑於使用python的主要原因,但其實這裡所指的執行速度慢在大多數情況下使用者是無法直接感知到的,必須借助測試工具才能體現出來,比如你用c運乙個程式花了0.01s,用python是0.1s,這樣c語言直接比python快了10倍,算是非常誇張了,但是你是無法直接通過肉眼感知的,因為乙個正常人所能感知的時間最小單位是0.15-0.4s左右,哈哈。其實在大多數情況下python已經完全可以滿足你對程式速度的要求,除非你要寫對速度要求極高的搜尋引擎等,這種情況下,當然還是建議你用c去實現的。

**不能加密,因為python是解釋性語言,它的原始碼都是以名文形式存放的,不過我不認為這算是乙個缺點,如果你的專案要求源**必須是加密的,那你一開始就不應該用python來去實現。

執行緒不能利用多cpu問題,這是python被人詬病最多的乙個缺點,gil即全域性直譯器鎖(global interpreter lock),是計算機程式語言

直譯器用於同步

執行緒的工具,使得任何時刻僅有乙個執行緒在執行,python的執行緒是作業系統的原生執行緒。在linux上為pthread,在windows上為win thread,完全由作業系統排程執行緒的執行。乙個python直譯器程序內有一條主線程,以及多條使用者程式的執行執行緒。即使在多核cpu平台上,由於gil的存在,所以禁止多執行緒的並行執行。關於這個問題的折衷解決方法,我們在以後執行緒和程序章節裡再進行詳細**。

參考文章:

python基礎之語句 Python基礎之條件語句

我們在程式設計中經常需要通過檢查某個條件,從而決定去做什麼。條件語句就是針對這一情景應用的。本篇主要介紹 if 和 while。一 if語句 先來個總覽 if 條件一 條件一對應的 塊 elif 條件二 條件一對應的 塊 else 不滿足條件一和條件二對應的 塊 if 語句的核心就是值為true 或...

Python程式設計基礎之Python基礎

1.只能是乙個詞 2.包含字母,數字和下劃線 3.不能以數字開頭 this program syas hello and asks for your name print hello world1 print what is your name?ask for their name myname i...

Python基礎學習之python教程

萬丈高樓平地起,要學好爬蟲還得熟練掌握python,下面列出了我曾經看過的一些教程及 吧,供小夥伴們參考,順便也記錄一下。學習 w3cschool python教程 廖老師的python教程,通俗易懂,基本看完了這個就可以開始上手寫python了。學習 廖雪峰python教程 另外,w3cschoo...