Python簡介
Python語言介紹
python的創始人:Guido Van Rossum
Python是一門什麼樣的語言
程式語言主要從以下幾個角度進行分類:編譯型,靜態型,動態性,強型別定義語言和弱型別定義語言
(1)編譯型:有一個負責翻譯的程式來對我們的原始碼進行轉換,生成對應的可執行程式碼,這個過程就是編譯(Compile),而負責編譯的程式就被稱為編譯器(Compiler)
(2)通常我們所說的動態語言,靜態語言是指動態型別語言和靜態型別語言
(3)動態型別語言:是指在執行期間採取做資料型別檢查的語言。即在用動態型別的語言程式設計時,永遠也不用給任何變數指定資料型別,該語言會在你第一次賦值給變數時,在內部將資料型別記錄下來。典型的是python和Ruby
(4)靜態型別語言:資料型別是在編譯期間檢查的,也就是說在寫程式的時候要宣告所有變數的資料型別。C/C++是靜態型別語言的典型代表,其他的靜態型別語言還有C#,JAVA
Python能做什麼
Web應用開發 Python經常被用於Web開發。比如,透過mod_wsgi模組,Apache可以執行用Python編寫的Web程式。Python定義了WSGI標準應用介面來協調Http伺服器與基於Python的Web程式之間的通訊。一些Web框架,如Django,TurboGears,web2py,Zope等,可以讓程式員輕鬆地開發和管理複雜的Web程式。 作業系統管理、伺服器運維的自動化指令碼 在很多作業系統裡,Python是標準的系統元件。 大多數Linux發行版以及NetBSD、OpenBSD和Mac OS X都集成了Python,可以在終端下直接執行Python。有一些Linux發行版的安裝器使用Python語言編寫,比如Ubuntu的Ubiquity安裝器,Red Hat Linux和Fedora的Anaconda安裝器。Gentoo Linux使用Python來編寫它的Portage包管理系統。Python標準庫包含了多個呼叫作業系統功能的庫。透過pywin32這個第三方軟體 包,Python能夠訪問Windows的COM服務及其它Windows API。使用IronPython,Python程式能夠直接呼叫.Net Framework。一般說來,Python編寫的系統管理指令碼在可讀性、效能、程式碼重用度、擴充套件性幾方面都優於普通的shell指令碼。 科學計算 NumPy,SciPy,Matplotlib可以讓Python程式員編寫科學計算程式。 桌面軟體 PyQt、PySide、wxPython、PyGTK是Python快速開發桌面應用程式的利器。 伺服器軟體(網路軟體) Python對於各種網路協議的支援很完善,因此經常被用於編寫伺服器軟體、網路爬蟲。第三方庫Twisted支援非同步網路程式設計和多數標準的網路協議(包含客戶端和伺服器),並且提供了多種工具,被廣泛用於編寫高效能的伺服器軟體。 遊戲 很多遊戲使用C++編寫圖形顯示等高效能模組,而使用Python或者Lua編寫遊戲的邏輯、伺服器。相較於Python,Lua的功能更簡單、體積更小;而Python則支援更多的特性和資料型別。 構思實現,產品早期原型和迭代 YouTube、Google、Yahoo!、NASA都在內部大量地使用Python。
Python的優缺點
優點:簡單、開發效率高、高階語言、可移植性、可擴充套件性、可嵌入性
缺點:速度慢,但是相對的、程式碼不能加密、執行緒不能利用多CPU問題
Python直譯器
Cpython、IPython、PyPy、Jython、IronPython
Python的安裝
Linux下的安裝
#安裝sqlite-devel
yum -y install sqlite-devel
#安裝依賴
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
#下載安裝
wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz
mkdir -p /usr/local/python3
tar -zxvf Python-3.6.1.tgz
cd Python-3.6.1
./configure –prefix=/usr/local/python3
make
make install
#軟連線
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
#環境
vim ~/.bash_profile
PATH=$PATH:$HOME/bin:/usr/local/python3/bin
export PATH
source ~/.bash_profile
Windows下的安裝
1、下載安裝包
https://www.python.org/downloads/
2、安裝
預設安裝路徑:C:\python35
3、配置環境變數
【右鍵計算機】–》【屬性】–》【高階系統設定】–》【高階】–》【環境變數】–》【在第二個內容框中找到 變數名為Path 的一行,雙擊】 –> 【Python安裝目錄追加到變值值中,用 ; 分割】
如:原來的值;C:\python35,切記前面有分號
Python入門
字元編碼
python直譯器在載入 .py 檔案中的程式碼時,會對內容進行編碼(預設ascill)
ASCII(American Standard Code for Information Interchange,美國標準資訊交換程式碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言,其最多隻能用 8 位來表示(一個位元組),即:2**8 = 256,所以,ASCII碼最多隻能表示 256 個符號。
顯然ASCII碼無法將世界上的各種文字和符號全部表示,所以,就需要新出一種可以代表所有字元和符號的編碼,即:Unicode
Unicode(統一碼、萬國碼、單一碼)是一種在計算機上使用的字元編碼。Unicode 是為瞭解決傳統的字元編碼方案的侷限而產生的,它為每種語言中的每個字元設定了統一併且唯一的二進位制編碼,規定雖有的字元和符號最少由 16 位來表示(2個位元組),即:2 **16 = 65536,
註:此處說的的是最少2個位元組,可能更多
UTF-8,是對Unicode編碼的壓縮和最佳化,他不再使用最少使用2個位元組,而是將所有的字元和符號進行分類:ascii碼中的內容用1個位元組儲存、歐洲的字元用2個位元組儲存,東亞的字元用3個位元組儲存…
python2.x版本,預設支援的字元編碼為ASCll python3.x版本,預設支援的是Unicode,不用宣告字元編碼可以直接顯示中文
註釋
單行註視:# 被註釋內容
多行註釋:””” 被註釋內容 “””
註釋快捷鍵:選中被註釋的內容,ctrl+?註釋選中的內容,再次ctrl+?取消註釋
關鍵字
python一些具有特殊功能的標示符,這就是所謂的關鍵字
關鍵字,是python已經使用的了,所以不允許開發者自己定義和關鍵字相同的名字的標示符
and as assert break class continue def del
elif else except exec finally for from global
if in import is lambda not or pass
print raise return try while with yield
可以透過下麵的方式檢視關鍵字
import keyword
print(keyword.kwlist)
格式化輸出
變數
變數定義的規則:
變數名只能是 字母、數字或下劃線的任意組合
變數名的第一個字元不能是數字
關鍵字不能宣告為變數名
運運算元
常用資料型別轉換
判斷陳述句
if-else
if 條件:
滿足條件時要做的事情1
滿足條件時要做的事情2
滿足條件時要做的事情3
...(省略)... else:
不滿足條件時要做的事情1
不滿足條件時要做的事情2
不滿足條件時要做的事情3
...(省略)...
實體:
name = input(‘請輸入使用者名稱字:’)
password = input(‘請輸入密碼:’)
if name == ‘root’ and password == ‘123’:
print(‘root login success’)
else:
print(‘使用者名稱或密碼錯誤’)
elif
if xxx1:
事情1elif xxx2:
事情2elif xxx3:
事情3
-
當xxx1滿足時,執行事情1,然後整個if結束
-
當xxx1不滿足時,那麼判斷xxx2,如果xxx2滿足,則執行事情2,然後整個if結束
-
當xxx1不滿足時,xxx2也不滿足,如果xxx3滿足,則執行事情3,然後整個if結束
實體:
if巢狀
if 條件1:
滿足條件1 做的事情1
滿足條件1 做的事情2
...(省略)... if 條件2:
滿足條件2 做的事情1
滿足條件2 做的事情2
...(省略)...
迴圈陳述句
while迴圈
while 條件:
條件滿足時,做的事情1
條件滿足時,做的事情2
條件滿足時,做的事情3
...(省略)...
實體:求1到100的總和
while迴圈巢狀
while 條件1:
條件1滿足時,做的事情1
條件1滿足時,做的事情2
條件1滿足時,做的事情3
...(省略)... while 條件2:
條件2滿足時,做的事情1
條件2滿足時,做的事情2
條件2滿足時,做的事情3
...(省略)...
實體: 九九乘法表
結果:
for迴圈
在Python中 for迴圈可以遍歷任何序列的專案,如一個串列或者一個字串等。
for 臨時變數 in 串列或者字串等:
迴圈滿足條件時執行的程式碼else:
迴圈不滿足條件時執行的程式碼
實體:
name = 'derek'
for i in name:
print(i)
break和continue
break的作用:用來結束整個迴圈
continue的作用:用來結束本次迴圈,緊接著執行下一次的迴圈
深淺複製
要理解深淺複製,需先弄懂下麵的概念
變數-取用-物件(可變物件,不可變物件)-切片-複製(淺複製,深複製)
變數是一個系統表的元素,擁有指向物件的連線的空間
物件是被分配的一塊記憶體,儲存其所代表的值
取用是自動形成的從變數到物件的指標
在Python中不可變物件指:一旦建立就不可修改的物件,包括字串,元祖,數字
在Python中可變物件是指:可以修改的物件,包括:串列、字典
不可變物件賦值
a的值發生改變,b不會跟著改變
可變物件賦值
a的值發生改變,b也跟著改變
要想b的值不會改變,就要用到copy模組了
深淺複製
淺複製:只複製頂級的物件,或者說:父級物件
深複製:複製所有物件,頂級物件及其巢狀物件。或者說:父級物件及其子物件
結論
-
深淺複製都是對源物件的複製,佔用不同的記憶體空間
-
如果源物件只有一級目錄的話,源做任何改動,不影響深淺複製物件
-
如果源物件不止一級目錄的話,源做任何改動,都要影響淺複製,但不影響深複製
-
序列物件的切片其實是淺複製,即只複製頂級的物件
作者:zhang_derek
源自:http://www.cnblogs.com/derek1184405959/p/8041517.html
宣告:文章著作權歸作者所有,如有侵權,請聯絡小編刪除