1. 程式人生 > 實用技巧 >史上最全Python快速入門教程,滿滿都是乾貨

史上最全Python快速入門教程,滿滿都是乾貨

Python是面向物件,高階語言,解釋,動態和多用途程式語言。Python易於學習,而且功能強大,功能多樣的指令碼語言使其對應用程式開發具有吸引力。
Python的語法和動態型別具有其解釋性質,使其成為許多領域的指令碼編寫和快速應用程式開發的理想語言。

Python支援多種程式設計模式,包括面向物件程式設計,命令式和函數語言程式設計或程序式程式設計。

Python幾乎無所不能,一些常用的開發領域,如Web程式設計。這就是為什麼它被稱為多用途,因為它可以用於網路,企業,3D CAD等軟體和系統開發。

在Python中,不需要使用資料型別來宣告變數,因為它是動態型別的,所以可以寫一個如 a=10 來宣告一個變數a中的值是一個整數型別。

Python使開發和除錯快速,因為在python開發中沒有包含編譯步驟,並且編輯 <-> 測試 <-> 除錯迴圈使用程式碼開發效率非常高。

這裡多說一句,小編是一名python開發工程師,這裡有我自己整理了一套最新的python系統學習教程,包括從基礎的python指令碼到web開發、爬蟲、資料分析、資料視覺化、機器學習等。想要這些資料的可以進裙930900780即可領取。

Python是一種高階,解釋,互動和麵向物件的指令碼語言。 Python被設計為高度可讀性。 它使用英語關鍵字,而其他語言使用標點符號。它的語法結構比其他語言少。

  • Python是解釋型語言- Python程式碼在直譯器中執行時處理,執行前不需要編譯程式。 這與PERL和PHP類似。
  • Python是交動的- 在Python提示符下面直接和直譯器進行互動來編寫程式。
  • Python是面向物件的- Python支援面向物件的風格或程式設計技術,將程式碼封裝在物件內。
  • Python是一門初學者的語言- Python是初學者程式設計師的偉大語言,並支援從簡單的文字處理到WWW瀏覽器到遊戲的各種應用程式的開發。

第一節 Python 可以用來開發什麼?

Python作為一個整體可以用於任何軟體開發領域。下面來看看Python可以應用在哪些領域的開發。如下所列 -

1.基於控制檯的應用程式

Python可用於開發基於控制檯的應用程式。 例如:IPython。

2.基於音訊或視訊的應用程式

Python在多媒體部分開發,證明是非常方便的。 一些成功的應用是:TimPlayer,cplay等。

3.3D CAD應用程式

Fandango是一個真正使用Python編寫的應用程式,提供CAD的全部功能。

4.Web應用程式

Python也可以用於開發基於Web的應用程式。 一些重要的開發案例是:PythonWikiEngines,Pocoo,PythonBlogSoftware等,如國內的成功應用案例有:豆瓣,知乎等。

5.企業級應用

Python可用於建立可在企業或組織中使用的應用程式。一些實時應用程式是:OpenErp,Tryton,Picalo等。

6.影象應用

使用Python可以開發影象應用程式。 開發的應用有:VPython,Gogh,imgSeek等

第二節 Python安裝和環境配置

Python 3適用於Windows,Mac OS和大多數Linux作業系統。即使Python 2目前可用於許多其他作業系統,有部分系統Python 3還沒有提供支援或者支援了但被它們在系統上刪除了,只保留舊的Python 2版本。

可參考我上一篇文章。

第三節 Python命令列引數

Python提供了一個getopt模組,用於解析命令列選項和引數。

$ python test.py arg1 arg2 arg3
Shell

Python sys模組通過sys.argv提供對任何命令列引數的訪問。主要有兩個引數變數 -

  • sys.argv是命令列引數的列表。
  • len(sys.argv)是命令列引數的數量。

這裡sys.argv [0]是程式名稱,即指令碼的名稱。比如在上面示例程式碼中,sys.argv [0]的值就是 test.py。

示例

看看以下指令碼command_line_arguments.py的程式碼 -

#!/usr/bin/python3
import sysprint ('Number of arguments:', len(sys.argv), 'arguments.')
print ('Argument List:', str(sys.argv))
Python

現在執行上面的指令碼,這將產生以下結果 -

F:\>python F:\worksp\python\command_line_arguments.py
Number of arguments: 1 arguments.
Argument List: ['F:\\worksp\\python\\command_line_arguments.py']
F:\>python F:\worksp\python\command_line_arguments.py arg1 arg2 arg3 arg4
Number of arguments: 5 arguments.
Argument List: ['F:\\worksp\\python\\command_line_arguments.py', 'arg1', 'arg2', 'arg3', 'arg4']
F:\>
Python

注意 - 如上所述,第一個引數始終是指令碼名稱,它也被計入引數的數量。

解析命令列引數

Python提供了一個getopt模組,可用於解析命令列選項和引數。該模組提供了兩個功能和異常,以啟用命令列引數解析。

getopt.getopt方法

此方法解析命令列選項和引數列表。以下是此方法的簡單語法 -

getopt.getopt(args, options, [long_options])
Python

getopt.GetoptError異常

當在引數列表中有一個無法識別的選項,或者當需要一個引數的選項不為任何引數時,會引發這個異常。
異常的引數是一個字串,指示錯誤的原因。 屬性msg和opt給出錯誤訊息和相關選項。

示例

假設想通過命令列傳遞兩個檔名,也想給出一個選項用來顯示指令碼的用法。指令碼的用法如下 -

usage: file.py -i <inputfile> -o <outputfile>
Shell

以下是command_line_usage.py的以下指令碼 -

#!/usr/bin/python3
import sys, getoptdef main(argv): inputfile = ''
outputfile = ''
try: opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="])
except getopt.GetoptError: print ('GetoptError, usage: command_line_usage.py -i <inputfile> -o <outputfile>')
sys.exit(2)
for opt, arg in opts:
if opt == '-h':
print ('usage: command_line_usage.py -i <inputfile> -o <outputfile>')
sys.exit()
elif opt in ("-i", "--ifile"):
inputfile = arg
elif opt in ("-o", "--ofile"):
outputfile = arg
print ('Input file is "', inputfile)
print ('Output file is "', outputfile)
if __name__ == "__main__":
main(sys.argv[1:])
Python

現在,使用以下幾種方式執行來指令碼,輸出如下所示:

F:\worksp\python>python command_line_usage.py -h
usage: command_line_usage.py -i <inputfile> -o <outputfile>
F:\worksp\python>python command_line_usage.py -i inputfile.txt -o
GetoptError, usage: command_line_usage.py -i <inputfile> -o <outputfile>
F:\worksp\python>python command_line_usage.py -i inputfile.txt -o outputfile.txt
Input file is " inputfile.txt
Output file is " outputfile.txt
F:\worksp\python>
Shell

第四節 Python變數型別

變數是儲存儲存值的記憶體位置。也就是說,當建立一個變數時,可以在記憶體中保留一些空間。

基於變數的資料型別,直譯器分配記憶體並決定可以儲存在保留的儲存器中的內容。 因此,通過為變數分配不同的資料型別,可以在這些變數中儲存的資料型別為整數,小數或字元等等。

將值分配給變數

在Python中,變數不需要明確的宣告型別來保留記憶體空間。當向變數分配值時,Python會自動發出宣告。 等號(=)用於為變數賦值。

=運算子左側的運算元是變數的名稱,而=運算子右側的運算元是將在儲存在變數中的值。 例如 -

#!/usr/bin/python3
counter = 100 # 一個整型數
miles = 999.99 # 一個浮點數
name = "Maxsu" # 一個字串
site_url = "http://www.yiibai.com" # 一個字串
print (counter)
print (miles)
print (name)
print (site_url)
Python

這裡,100,999.99和“Maxsu”分別是分配給counter,miles和name變數的值。執行上面程式碼將產生以下結果 -

100
999.99
Maxsuhttp://www.yiibai.com
Shell

多重賦值

Python允許同時為多個變數分配單個值。

例如 -

a = b = c = 1
Python

這裡,建立一個整數物件,其值為1,並且所有三個變數都分配給相同的記憶體位置。還可以將多個物件分配給多個變數。 例如 -

a, b, c = 10, 20, "maxsu"
Python

這裡,將兩個值為10和20的整數物件分別分配給變數a和b,並將一個值為“maxsu”的字串物件分配給變數c。

標準資料型別

儲存在記憶體中的資料可以是多種型別。 例如,一個人的年齡可儲存為一個數字值,他的地址被儲存為字母數字字串。 Python具有各種標準資料型別,用於定義可能的操作以及每個標準資料型別的儲存方法。

Python有五種標準資料型別 -

  • 1.數字
  • 2.字串
  • 3.列表
  • 4.元組
  • 5.字典

1.Python數字

數字資料型別儲存數字值。當為其分配值時,將建立數字物件。 例如 -

var1 = 10
var2 = 20
Python

可以使用del語句刪除對數字物件的引用。 del語句的語法是 -

del var1[,var2[,var3[....,varN]]]]
Python

可以使用del語句刪除單個物件或多個物件。

例如 -

del var
del var_a, var_bPython

Python支援三種不同的數值型別 -

  • int(有符號整數)
  • float(浮點實值)
  • complex(複數)

Python3中的所有整數都表示為長整數。 因此,長整數沒有單獨的數字型別。

例子

以下是一些數字示例 -

int float complex 10 0.0 3.14j 100 15.20 45.j -786 -21.9 9.322e-36j 080 32.3+e18 .876j -0490 -90. -.6545+0J -0x260 -32.54e100 3e+26J 0x69 70.2-E12 4.53e-7j

複數是由x + yj表示的有序對的實數浮點陣列成,其中x和y是實數,j是虛數單位。

2.Python字串

Python中的字串被標識為在引號中表示的連續字符集。Python允許雙引號或雙引號。 可以使用片段運算子([]和[:])來獲取字串的子集(子字串),其索引從字串開始處的索引0開始,並且以-1表示字串中的最後一個字元。

加號(+)是字串連線運算子,星號(*)是重複運算子。例如 -

#!/usr/bin/python3
#coding=utf-8
# save file: variable_types_str1.pystr = 'yiibai.com'
print ('str = ', str) # Prints complete string
print ('str[0] = ',str[0]) # Prints first character of the string
print ('str[2:5] = ',str[2:5]) # Prints characters starting from 3rd to 5th
print ('str[2:] = ',str[2:]) # Prints string starting from 3rd character
print ('str[-1] = ',str[-1]) # 最後一個字元,結果為:'!'
print ('str * 2 = ',str * 2) # Prints string two times
print ('str + "TEST" = ',str + "TEST") # Prints concatenated string
Python

將上面程式碼儲存到 variable_types_str1.py 檔案中,執行將產生以下結果 -

F:\worksp\python>python variable_types_str1.py
str = yiibai.comstr[0] = ystr[2:5] = ibastr[2:] = ibai.comstr[-1] = mstr * 2 = yiibai.comyiibai.comstr + "TEST" = yiibai.comTEST
F:\worksp\python>Shell

2.Python列表

列表是Python複合資料型別中最多功能的。 一個列表包含用逗號分隔並括在方括號([])中的專案。在某種程度上,列表類似於C語言中的陣列。它們之間的區別之一是Python列表的所有項可以是不同的資料型別,而C語言中的陣列只能是同種型別。

儲存在列表中的值可以使用切片運算子([]和[])來訪問,索引從列表開頭的0開始,並且以-1表示列表中的最後一個專案。 加號(+)是列表連線運算子,星號(*)是重複運算子。例如 -

#!/usr/bin/python3
#coding=utf-8
# save file: variable_types_str1.pylist = [ 'yes', 'no', 786 , 2.23, 'minsu', 70.2 ]
tinylist = [100, 'maxsu']
print ('list = ', list) # Prints complete list
print ('list[0] = ',list[0]) # Prints first element of the list
print ('list[1:3] = ',list[1:3]) # Prints elements starting from 2nd till 3rd
print ('list[2:] = ',list[2:]) # Prints elements starting from 3rd element
print ('list[-3:-1] = ',list[-3:-1])
print ('tinylist * 2 = ',tinylist * 2) # Prints list two times
print ('list + tinylist = ', list + tinylist) # Prints concatenated lists
Python

將上面程式碼儲存到 variable_types_str1.py 檔案中,執行將產生以下結果 -

F:\worksp\python>python variable_types_list.py
list = ['yes', 'no', 786, 2.23, 'minsu', 70.2]
list[0] = yes
list[1:3] = ['no', 786]
list[2:] = [786, 2.23, 'minsu', 70.2]
list[-3:-1] = [2.23, 'minsu']
tinylist * 2 = [100, 'maxsu', 100, 'maxsu']
list + tinylist = ['yes', 'no', 786, 2.23, 'minsu', 70.2, 100, 'maxsu']
F:\worksp\python>Shell

3.Python元組

元組是與列表非常類似的另一個序列資料型別。元組是由多個值以逗號分隔。然而,與列表不同,元組被括在小括號內(())。

列表和元組之間的主要區別是 - 列表括在括號([])中,列表中的元素和大小可以更改,而元組括在括號(())中,無法更新。元組可以被認為是隻讀列表。 例如 -

#!/usr/bin/python3
#coding=utf-8
# save file : variable_types_tuple.pytuple = ( 'maxsu', 786 , 2.23, 'yiibai', 70.2 )
tinytuple = (999.0, 'maxsu')
# tuple[1] = 'new item value' 不能這樣賦值
print ('tuple = ', tuple) # Prints complete tuple
print ('tuple[0] = ', tuple[0]) # Prints first element of the tuple
print ('tuple[1:3] = ', tuple[1:3]) # Prints elements starting from 2nd till 3rd
print ('tuple[-3:-1] = ', tuple[-3:-1]) # 輸出結果是什麼?
print ('tuple[2:] = ', tuple[2:]) # Prints elements starting from 3rd element
print ('tinytuple * 2 = ',tinytuple * 2) # Prints tuple two times
print ('tuple + tinytuple = ', tuple + tinytuple) # Prints concatenated tuple
Python

將上面程式碼儲存到 variable_types_tuple.py 檔案中,執行將產生以下結果 -

F:\worksp\python>python variable_types_tuple.py
tuple = ('maxsu', 786, 2.23, 'yiibai', 70.2)
tuple[0] = maxsu
tuple[1:3] = (786, 2.23)
tuple[-3:-1] = (2.23, 'yiibai')
tuple[2:] = (2.23, 'yiibai', 70.2)
tinytuple * 2 = (999.0, 'maxsu', 999.0, 'maxsu')
tuple + tinytuple = ('maxsu', 786, 2.23, 'yiibai', 70.2, 999.0, 'maxsu')
F:\worksp\python>
Shell

以下程式碼對於元組無效,因為嘗試更新元組,但是元組是不允許更新的。類似的情況可能與列表 -

#!/usr/bin/python3
tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )
list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tuple[2] = 1000 # 無法更新值,程式出錯
list[2] = 1000 # 有效的更新,合法
Python

Python字典

Python的字典是一種雜湊表型別。它們像Perl中發現的關聯陣列或雜湊一樣工作,由鍵值對組成。字典鍵幾乎可以是任何Python資料型別,但通常為了方便使用數字或字串。另一方面,值可以是任意任意的Python物件。

字典由大括號({})括起來,可以使用方括號([])分配和訪問值。例如 -

#!/usr/bin/python3
#coding=utf-8
# save file : variable_types_dict.pydict = {}dict['one'] = "This is one"
dict[2] = "This is my"
tinydict = {'name': 'maxsu', 'code' : 1024, 'dept':'IT Dev'}
print ("dict['one'] = ", dict['one']) # Prints value for 'one' key
print ('dict[2] = ', dict[2]) # Prints value for 2 key
print ('tinydict = ', tinydict) # Prints complete dictionary
print ('tinydict.keys() = ', tinydict.keys()) # Prints all the keys
print ('tinydict.values() = ', tinydict.values()) # Prints all the values
Python

將上面程式碼儲存到 variable_types_dict.py 檔案中,執行將產生以下結果 -

F:\worksp\python>python variable_types_dict.py
dict['one'] = This is one
dict[2] = This is my
tinydict = {'name': 'maxsu', 'code': 1024, 'dept': 'IT Dev'}
tinydict.keys() = dict_keys(['name', 'code', 'dept'])
tinydict.values() = dict_values(['maxsu', 1024, 'IT Dev'])
Shell

字典中的元素沒有順序的概念。但是說這些元素是“亂序”是不正確的; 它們是無序的。

資料型別轉換

有時,可能需要在內建型別之間執行轉換。要在型別之間進行轉換,只需使用型別名稱作為函式即可。

有以下幾種內建函式用於執行從一種資料型別到另一種資料型別的轉換。這些函式返回一個表示轉換值的新物件。它們分別如下所示 -

編號 函式 描述 1 int(x [,base]) 將x轉換為整數。如果x是字串,則要base指定基數。 2 float(x) 將x轉換為浮點數。 3 complex(real [,imag]) 建立一個複數。 4 str(x) 將物件x轉換為字串表示形式。 5 repr(x) 將物件x轉換為表示式字串。 6 eval(str) 評估求值一個字串並返回一個物件。 7 tuple(s) 將s轉換為元組。 8 list(s) 將s轉換為列表。 9 set(s) 將s轉換為集合。 10 dict(d) 建立一個字典,d必須是(key,value)元組的序列 11 frozenset(s) 將s轉換為凍結集 12 chr(x) 將整數x轉換為字元 13 unichr(x) 將整數x轉換為Unicode字元。 14 ord(x) 將單個字元x轉換為其整數值。 15 hex(x) 將整數x轉換為十六進位制字串。 16 oct(x) 將整數x轉換為八進位制字串。

第五節 Python基本運算子

運算子是可以操縱運算元值的結構。如下一個表示式:10 + 20 = 30。這裡,10和20稱為運算元,+則被稱為運算子。

運算子型別

Python語言支援以下型別的運算子 -

  • 1.算術運算子
  • 2.比較(關係)運算子
  • 3.賦值運算子
  • 4.邏輯運算子
  • 5.按位運算子
  • 6.成員運算子
  • 7.身份運算子

下面讓我們依次來看看所有的運算子。

1.算術運算子

假設變數a的值是10,變數b的值是21,則 -

運算子 描述 示例 + 加法運算,將運算子兩邊的運算元增加。 a + b = 31 - 減法運算,將運算子左邊的運算元減去右邊的運算元。 a – b = -11 * 乘法運算,將運算子兩邊的運算元相乘 a * b = 210 / 除法運算,用右運算元除左運算元 b / a = 2.1 % 模運算,用右運算元除數左運算元並返回餘數 b % a = 1 ** 對運算子進行指數(冪)計算 a ** b,表示10的21次冪 // 地板除 - 運算元的除法,其結果是刪除小數點後的商數。 但如果其中一個運算元為負數,則結果將被保留,即從零(向負無窮大)捨去 9//2 = 4 , 9.0//2.0 = 4.0, -11//3 = -4, -11.0//3 = -4.0

2.比較(關係)運算子

比較(關係)運算子比較它們兩邊的值,並確定它們之間的關係。它們也稱為關係運算符。假設變數a的值10,變數b的值是20,則 -

運算子 描述 示例 == 如果兩個運算元的值相等,則條件為真。 (a == b)求值結果為 false != 如果兩個運算元的值不相等,則條件為真。 (a != b)求值結果為 true > 如果左運算元的值大於右運算元的值,則條件成為真。 (a > b)求值結果為 false < 如果左運算元的值小於右運算元的值,則條件成為真。 (a < b)求值結果為 true >= 如果左運算元的值大於或等於右運算元的值,則條件成為真。 (a >= b)求值結果為 false <= 如果左運算元的值小於或等於右運算元的值,則條件成為真。 (a <= b)求值結果為 true

3.賦值運算子

假設變數a的值10,變數b的值是20,則 -

運算子 描述 示例 = 將右側運算元的值分配給左側運算元 c = a + b表示將a + b的值分配給c += 將右運算元相加到左運算元,並將結果分配給左運算元 c + = a等價於c = c + a -= 從左運算元中減去右運算元,並將結果分配給左運算元 c -= a 等價於 c = c - a *= 將右運算元與左運算元相乘,並將結果分配給左運算元 c *= a 等價於 c = c * a /= 將左運算元除以右運算元,並將結果分配給左運算元 c /= a 等價於 c = c / a %= 將左運算元除以右運算元的模數,並將結果分配給左運算元 c %= a 等價於 c = c % a **= 執行指數(冪)計算,並將值分配給左運算元 c **= a 等價於 c = c ** a //= 運算子執行地板除運算,並將值分配給左運算元 c //= a 等價於 c = c // a

4.邏輯運算子

Python語言支援以下邏輯運算子。假設變數a的值為True,變數b的值為False,那麼 -

運算子 描述 示例 and 如果兩個運算元都為真,則條件成立。 (a and b)的結果為False or 如果兩個運算元中的任何一個非零,則條件成為真。 (a or b)的結果為True not 用於反轉運算元的邏輯狀態。 not(a and b) 的結果為True。

5.按位運算子

按位運算子執行逐位運算。 假設變數a = 60; 和變數b = 13; 現在以二進位制格式,它們將如下 -

a = 0011 1100
b = 0000 1101
-----------------
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a = 1100 0011
Shell

Python的內建函式bin()可用於獲取整數的二進位制表示形式。

以下是Python語言支援位運算操作符 -

運算子 描述 示例 & 如果它存在於兩個運算元中,則操作符複製位到結果中 (a & b) 結果表示為 0000 1100

如果它存在於任一運算元,則複製位。 (a

b) = 61 結果表示為 0011 1101 ^ 二進位制異或。如果它是一個運算元集合,但不是同時是兩個運算元則將複製位。 (a ^ b) = 49 (結果表示為 0011 0001) ~ 二進位制補碼,它是一元的,具有“翻轉”的效果。 (~a ) = -61有符號的二進位制數,表示為1100 0011的補碼形式。 << 二進位制左移,左運算元的值由右運算元指定的位數左移。 a << 2 = 240 (結果表示為 1111 0000) >> 二進位制右移,左運算元的值由右運算元指定的位數右移。 a >> 2 = 15(結果表示為0000 1111)

6.成員運算子

Python成員運算子測試給定值是否為序列中的成員,例如字串,列表或元組。 有兩個成員運算子,如下所述 -

運算子 描述 示例 in 如果在指定的序列中找到一個變數的值,則返回true,否則返回false。 - not in 如果在指定序列中找不到變數的值,則返回true,否則返回false。 -

7.身份運算子

身份運算子比較兩個物件的記憶體位置。常用的有兩個身份運算子,如下所述 -

運算子 描述 示例 is 如果運算子任一側的變數指向相同的物件,則返回True,否則返回False。 is not 如果運算子任一側的變數指向相同的物件,則返回True,否則返回False。 -

8. 運算子優先順序

下表列出了從最高優先順序到最低優先順序的所有運算子,如下所示 -

序號 運算子 描述 1 ** 指數(次冪)運算 2 ~ + - 補碼,一元加減(最後兩個的方法名稱是+@和-@) 3 * / % // 乘法,除法,模數和地板除 4 + - 5 >> << 向右和向左位移 6 & 按位與 7 ^

按位異或和常規的“OR” 8 <= < > >= 比較運算子 9 <> == != 等於運算子 10 = %= /= //= -= += *= **= 賦值運算子 11 is is not 身份運算子 12 in not in 成員運算子 13 not or and 邏輯運算子


最後多說一句,小編是一名python開發工程師,這裡有我自己整理了一套最新的python系統學習教程,包括從基礎的python指令碼到web開發、爬蟲、資料分析、資料視覺化、機器學習等。想要這些資料的可以進裙930900780即可領取。

本文章素材來源於網路,如有侵權請聯絡刪除。