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即可領取。