Python是一門通用型的程式語言,逐漸受到越來越多人的追捧。一言以蔽之,Python是一種解釋性、物件導向的語言;具體點說,Python是一門融合了程序導向、函數式和麪向物件程式設計範式的多目標語言。
可讀性強;簡潔簡潔;物件導向;免費和開源;可移植性和跨平臺;豐富的庫;可拓展性。
1.科學計算2.人工智慧3.WEB伺服器端和大型網站後端4.GUI開發(使用者圖形介面開發)5.遊戲開發6.移動裝置7.嵌入式裝置8.系統運維9.大數據10.雲端計算
Python是解釋執行,效能較低,因此,影響效能的功能可以使用C/C++/JAVA/GO等語言去開發。
Python 2:2000年10月發佈,最新版本是2.7,已停止更新
Python 3:2008年發佈,對比Python 2有較大提升,不相容Python2
相容性問題的解決:Python 3 的許多新特性也被移植到了Python2.7作爲過渡,如果程式可以在2.7版本上執行,可以通過2to3(Python自帶的指令碼)的轉換工具無縫遷移到Python3
直譯器是一種能讓其他程式執行起來的程式。當你編寫一段Python程式,Python直譯器將讀取程式,並按照其中的命令執行,得出結果。實際上,直譯器就是程式碼與機器的計算機硬體之間的軟體邏輯層。
Python程式的執行依賴於Python直譯器,常見的Python直譯器有: PyPy,CPython,Jython,IronPython,Stackless等;
每個以拓展名.py結尾的Python原始檔都是一個模組,其他檔案可以通過匯入一個模組讀取這個模組定義的內容——匯入操作從本質上來說就是載入另一個檔案,並給予讀取這個檔案內容的許可權。
預設情況下,在互動對話中,每個模組的的匯入只會執行一次。要想在同一次對話中再次執行這個檔案,而不停止和重新啓動對話,需要呼叫imp 標準庫模組中可用的reload函數。(此函數在Python2中內建,在Python3中不內建)
可以通過兩種不同的方式來從其他元件中獲取模組的屬性
這種方法也可以實現執行模組檔案中儲存的程式碼
1.邏輯行首的空白(空格和製表符)用來決定邏輯行的縮排層次,從而用來決定語句的分組。
2.語句從新行的第一列開始。
3.縮排風格統一:
① 每個縮排層次使用單個製表符或者四個空格(IDE)會自動將製表符設定成4個空格)
② Python用縮排而不是{}表示程式塊
[縮排的報錯提醒: IndentationError: unexpected indent ]
1.行註釋
每行註釋前加#號。當直譯器看到#,則忽略這一行#後面的內容。註釋可以用ctrl+/快捷鍵。
2.段註釋
使用三個連續單引號(’’’),當直譯器看到’’’,則會掃描下一個’’’,然後忽略他們之間的內容。
變數是一段有名字的連續儲存的空間,我們可以通過定義變數來申請並命名這樣的儲存空間,並通過變數的名稱來使用這段儲存空間。
一個變數(即變數名),當程式碼第一次給它賦值時就建立了它。之後的賦值將改變這個變數名的值。可以理解爲最初的賦值操作在建立變數。
變數永遠不會擁有和它關聯的型別資訊或約束。型別的概念存在於物件而不是變數名中。變數原本是相通的,只是在特定的一個時間點,簡單地參照了一個特定的物件而已。
當變數出現在表達式中時,它會馬上被當前參照的物件所替代,無論這個物件是什麼型別。此外,所有的變數必須在使用前被明確地賦值,使用未賦值的變數會產生錯誤。
使用type函數,type(變數);
如:
a=10
print(type(a))
這裏以a=10,b=20爲例。
運算子 | 描述 |
---|---|
+ | 加:兩個物件相加 |
- | 減:得到負數或是一個數減去另一個數 |
* | 乘:兩個數相乘或是返回一個被重複若幹次的字串 |
/ | 除:x除以y |
% | 取模:返回除法的餘數 |
** | 冪:返回x的y次冪 |
// | 取整除:返回商的整數部分(向下取整) |
程式碼範例如下:
a=10
b=20
print('a+b=',a+b)
print('a-b=',a-b)
print('a*b=',a*b)
print('a/b=',a/b)
print('a%b=',a%b)
print('a**b=',a**b)
print('a//b=',a//b)
執行結果如下:
a+b= 30
a-b= -10
a*b= 200
a/b= 0.5
a%b= 10
a**b= 100000000000000000000
a//b= 0
所有比較運算子返回1表示真,返回0表示假。這分別與特殊的變數True和False等價。
運算子 | 描述 |
---|---|
== | 等於:比較物件是否相等 |
!= | 不等於:比較兩個物件是否不相等 |
<> | 不等於:比較兩個物件是否不相等。 |
> | 大於:返回x是否大於y |
< | 小於:返回x是否小於y |
>= | 大於等於:返回x是否大於等於y |
<= | 小於等於:返回x是否小於等於y |
程式碼範例如下:
a=10
b=20
print('a==b的值',a==b)
print('a!=b的值',a!=b)
# python3 已廢棄<>運算子
# print('a<>b的值',a<>b)
print('a>b的值',a>b)
print('a<b的值',a<b)
print('a>=b的值',a>=b)
print('a<=b的值',a<=b)
執行結果如下:
a==b的值 False
a!=b的值 True
a>b的值 False
a<b的值 True
a>=b的值 False
a<=b的值 True
賦值運算子和C語言中相同,s[str]=x等價於s=s[str]x。這裏的str代表+、-、*、/、%、**、//等符號。其中,允許x,y=10,20這種賦值方式。
運算子 | 描述 |
---|---|
= | 簡單的賦值運算子 |
+= | 加法賦值運算子 |
-= | 減法賦值運算子 |
*= | 乘法賦值運算子 |
/= | 除法賦值運算子 |
%= | 取模賦值運算子 |
**= | 冪賦值運算子 |
//= | 取整除賦值運算子 |
位運算子首先將變數轉換爲2進位制,然後進行相關位元運算,返回結果是已經轉換爲10進位制的數值。
運算子 | 描述 |
---|---|
& | 按位元與運算子:參與運算的兩個值,如果兩個相應位都爲1,則該位的結果爲1,否則爲0 |
| | 按位元或運算子:只要對應的二個二進位有一個爲1時,結果位就爲1 |
^ | 按位元互斥或運算子:當兩對應的二進位相異時,結果爲1 |
~ | 按位元取反運算子:對數據的每個二進制位取反,即把1變爲0,把0變爲1 。~x 類似於 -x-1 |
<< | 左移動運算子:運算數的各二進位全部左移若幹位,由 << 右邊的數位指定了移動的位數,高位丟棄,低位補0 |
>> | 右移動運算子:把">>"左邊的運算數的各二進位全部右移若幹位,>> 右邊的數位指定了移動的位數 |
程式碼範例如下:
a=10
b=20
print('a&b=',a&b)
print('a|b=',a|b)
print('a^b=',a^b)
print('~a=',~a)
print('a<<2=',a<<2)
print('a>>2=',a>>2)
執行結果如下:
a&b= 0
a|b= 30
a^b= 30
~a= -11
a<<2= 40
a>>2= 2
[補充]:由於負數在計算機中是以二補數的形式存在的,所以負數進行位運算時,需要先將其轉換爲二補數形式,然後再進行位運算子,最後輸出10進位制結果。
運算子 | 邏輯表達式 | 描述 |
---|---|---|
and | x and y | 布爾"與" :如果 x 爲 False,x and y 返回 False,否則它返回 y 的計算值。(除非x爲0,返回0[false],否則返回y的值) |
or | x or y | 布爾"或" :如果 x 是非 0,它返回 x 的值,否則它返回 y 的計算值。(除非x爲0,返回y的值,否則返回x的值) |
not | x not y | 布爾"非" :如果 x 爲 True,返回 False 。如果 x 爲 False,它返回 True |
Python還支援成員運算子,測試範例中包含了一系列的成員,包括字串,列表或元組。
運算子 | 描述 |
---|---|
in | 如果在指定的序列中找到值返回 True,否則返回 False |
not in | 如果在指定的序列中沒有找到值返回 True,否則返回 False |
身份運算子用於比較兩個物件的儲存單元是否參照同一個物件
運算子 | 描述 |
---|---|
is | is 是判斷兩個識別符號是不是參照自一個物件,如果參照的是同一個物件則返回 True,否則返回 False。類似於id(x) == id(y) |
is not | is not 是判斷兩個識別符號是不是參照自不同對象,如果參照的是不同對象則返回 True,否則返回 False。類似於id(x) != id(y) |
運算子 | 描述 |
---|---|
** | 指數 (最高優先順序) |
~ + - | 按位元翻轉, 一元加號和減號 (最後兩個的方法名爲 +@ 和 -@) |
* / % // | 乘,除,取模和取整除 |
+ - | 加法、減法 |
>> << | 右移,左移運算子 |
& | 位 ‘AND’ |
^ / | |
<= < > >= | 比較運算子 |
<> == != | 等於運算子 |
= %= /= //= -= += *= **= | 賦值運算子 |
is is not | 身份運算子 |
in not in | 成員運算子 |
not and or | 邏輯運算子 |
a=10
c='niro'
print('我今年%d歲了,我的名字是%s!'%(a,c))
執行結果如下:
我今年10歲了,我的名字是niro!
a=10
c='niro'
print('我今年{1}歲了,我的名字是{0}!'.format(c,a))
執行結果如下:
我今年10歲了,我的名字是niro!
Python提供了input的方式進行獲取鍵盤輸入(input獲取的輸入都是str型別的,如果需要輸入數位型,需要進行型別轉換)
程式碼範例如下:
# 通過input函數進行輸入,字串參數爲輸入提示
a=input('請輸入a:')
# 使用input輸入的內容都是字串型別
print(a,type(a))
# 強制型別轉換爲int型,數位10代表10進位制
b=int(a,10)
print(b,type(b))
執行結果如下:
請輸入a:10
10 <class ‘str’>
10 <class ‘int’>