標籤:python語言基礎
python基礎語言注釋
單行注釋:#多行注釋:‘‘‘ ‘‘‘ 或 """ """
數字
整型(Int)- 通常被稱為是整型或整數,是正或負整數,不帶小數點。長整型(long integers)- 無限大小的整數,整數最後是一個大寫或小寫L。bool(布爾型) true false浮點型(floating point real values)- 浮點型由整數部分與小數部分組成,浮點型也可以使用科學計數法表示(2.5e2 = 2.5 x 102 = 250)複數(complex numbers)- 複數由實數部分和虛數部分構成,可以用a + bj,或者complex(a,b)表示, 複數的實部a和虛部b都是浮點型
int |
long |
float |
complex |
10 |
51924361L |
0.0 |
3.14j |
100 |
-0x19323L |
15.20 |
45.j |
-786 |
0122L |
-21.9 |
9.322e-36j |
-0490 |
535633629843L |
-90 |
-6545+0J |
-0x260 |
-052318172735L |
-32.54e100 |
3e+26J |
0x69 |
-4721885298529L |
70.2-E12 |
4.53e-7j |
注意:
長整型也可以使用小寫"L",但是還是建議您使用大寫"L",避免與數字"1"混淆。Python使用"L"來顯示長整型Python還支援複數,複數由實數部分和虛數部分構成,可以用a + bj,或者complex(a,b)表示,複數的實部a和虛部b都是浮點型
字串:
使用‘ 或"引號引用的字元的序列使用‘‘‘ ‘‘‘ 或"""單雙引號,可以跨行,可以在其中自由的使用雙引號,多行注釋在字串前面加上r或者R首碼,表示該字元不能做特殊處理如:print ("ar/nbbb")ar/nbbb
基礎文法逸出序列:
逸出字元 |
描述 |
\ \ |
反斜線 |
\t |
橫向定位字元 |
\ |
續行符 |
\r |
斷行符號鍵 |
\n |
換行 |
\‘ |
單引號 |
\" |
雙引號 |
首碼r,把裡面所有的字元當一般字元對待
縮排
未使用C語言的花括弧,而是採用縮排的方式展示層級關係約定使用4個空格縮排
續行
在行尾使用/如果使用各種括弧,認為括弧內是一個整體,內部跨行不能用\
標識符:
1.一個名字,用來指代一個值2.只能字母、底線和數字3.只能以字母或底線開頭4.不能是Python的關鍵字,例如def、class就不能作為標識符5.Python是大小寫敏感的約定:不允許使用中文不允許使用歧義單詞,例如class_在Python中要隨便使用底線開頭的表示符
常量:
一旦賦值就不能改變值的標識符Python中無法定義常量
字面常量:
一個單獨的量,例如12、"abc"、‘2341356514.03e-9‘
變數:
賦值後,可以改變值的標識符
Python語言類型
Python是動態語言、強型別語言靜態編譯語言:實現聲明變數類型,類型不能再改變編譯時間檢測動態編譯語言:不用事先宣告類型,隨時可以賦值為其他類型編譯時間不知道是什麼類型,很難推斷強型別語言:不同類型之間操作,必須先強制類型轉換為同一類型,如 print (‘a‘+1)弱類型語言:不同類型間可以操作,自動隱式轉換,JavaScript中console.log(1+‘a‘)
運算子:Python算術運算
運算子 |
描述 |
執行個體 |
+ |
加 - |
a + b 輸出結果 30 |
- |
減 - |
a - b 輸出結果 -10 |
* |
乘 |
a * b 輸出結果 200 |
/ |
除 |
b / a 輸出結果 2 |
% |
模數 |
b % a 輸出結果 0 |
** |
冪 |
a**b輸出結果8 |
// |
取整除 |
9//2 輸出結果4 |
Python比較子:
== != > < >= <=返回一個bool值1 < ‘1‘ 1 == ‘1‘
運算子 |
描述 |
執行個體 |
== |
等於 - 比較對象是否相等 |
(a == b) 返回 False |
!= |
不等於 - 比較兩個對象是否不相等 |
(a != b) 返回 true |
<> |
不等於 - 比較兩個對象是否不相等 |
(a <> b) 返回 true |
> |
大於 - 返回x是否大於y |
(a > b) 返回 False |
< |
小於 - 返回x是否小於y |
(a < b) 返回 true |
>= |
大於等於 - 返回x是否大於等於y |
(a >= b) 返回 False |
<= |
小於等於 -返回x是否小於等於y |
(a <= b) 返回 true |
python賦值運算子:
運算子 |
描述 |
執行個體 |
= |
簡單的賦值運算子 |
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 |
Python位元運算符:
& | ~ ^ << >>常用方式:乘除2的倍數,32 // 4相當於32 >> 212,0xc,0o14,0b1100~12等於多少,為什麼
原碼、反碼、補碼
原碼:原碼就是符號位加上真值的絕對值,即用第一位表示符號,其餘位表示值,比如如果是8位二進位1 原碼: 0000 0001-1原碼:1000 0001第一位是符號位,因為第一位是符號位,所以8位位元的取值範圍就是:[1111 1111 , 0111 1111]即[-127 , 127]反碼:反碼的表示方法是:正數的反碼是其本身負數的反碼是在其原碼的基礎上,符號位不變,其餘個位取反即1 原碼:0000 0001 反碼:0000 0001-1 原碼:1000 0001 反碼:1111 1110可見如果一個反碼錶示的是負數,人腦無法直觀的看出來它的數值,通常要將其轉換成原碼再計算補碼:補碼的表示方式是:正數的補碼是其本身負數的補碼是在其自身的基礎上,符號位不變,其餘各位取反,最後加1[+1] = [00000001]原 = [00000001]反 = [00000001]補[-1] = [10000001]原 = [11111110]反 = [11111111]補
邏輯運算子
運算子 |
邏輯運算式 |
描述 |
執行個體 |
and |
x and y |
布爾"與" - 如果 x 為 False,x and y 返回 False,否則它返回 y 的計算值。 |
(a and b) 返回 20 |
or |
x or y |
布爾"或" - 如果 x 是非 0,它返回 x 的值,否則它返回 y 的計算值。 |
(a or b) 返回 10。 |
not |
not x |
布爾"非" - 如果 x 為 True,返回 False 。如果 x 為 False,它返回 True |
not(a and b) 返回 False |
與或非and or not短路運算子:and如果第一個運算式為false,後面就沒有必要計算了,這個邏輯運算式一定是falseor如果第一個運算式true,後面沒必要計算了,這個邏輯運算式一定是
python成員運算子
運算子 |
描述 |
執行個體 |
in |
如果在指定的序列中找到值返回 True,否則返回 False |
x 在 y 序列中 , 如果 x 在 y 序列中返回 True |
not in |
如果在指定的序列中沒有找到值返回 True,否則返回 False |
x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True |
python身份運算子
運算子 |
描述 |
執行個體 |
is |
is 是判斷兩個標識符是不是引用自一個對象 |
x is y, 類似 id(x) == id(y) , 如果引用的是同一個對象則返回 True,否則返回 False |
is not |
is not 是判斷兩個標識符是不是引用自不同對象 |
x is not y , 類似 id(a) != id(b)。如果引用的不是同一個對象則返回結果 True,否則返回 False |
is 與 == 區別:例子測試
In [1]: a = ‘h1‘In [2]: b = ‘h1‘In [3]: a is bOut[3]: TrueIn [4]: a == bOut[4]: Truea1 = ‘I am using long string for testing‘a2 = ‘I am using long string for testing‘a1 is a2 Falsea1 == a2TrueIn [9]: str1 = ‘string‘In [10]: str2 = "".join([‘s‘,‘t‘,‘r‘,‘i‘,‘n‘,‘g‘])In [12]: str1 is str2Out[12]: FalseIn [13]: str1 == str2Out[13]: True
總結
is表示是物件識別碼,而==表示是相等,顯然兩者不是一個東西。實際上,造成上面案例不一致的根本原因在於is的作用是用來檢查標識符是否一致,也就是比較兩個對象的記憶體是否擁有同一塊記憶體空間,它並不適合用來判斷兩個字串是否相等。x is y僅當x和y是同一個對象的時候返回True,x is b相當於id(x) == id(y),而==才是用來檢驗兩個對象的值是否相等的,它實際上調用的是內部__eq__()方法,因此a == b相當於a.__eq__(b),所以==操作符是可以被重載的,而is不能被重載。一般情況下,如果x is y為True的話x == y 的值也為True,反之亦然。對於長短字串id值不一樣,是有一個python中的string interning(字串駐留)機制決定的:對於較小的字串,為了提高系統效能會保留其值得一個副本,當建立新的字串的時候直接指向該副本即可。而長字串不會駐留,python記憶體中各自建立對象來表示a1,a2,這兩個對象擁有相同內容但物件識別碼卻不相同,所以==的值為True而is的值為False
運算子的優先順序(從高到低)
算數運算子 > 位元運算符 > 身份運算子 > 成員運算子 > 邏輯運算子長運算式,多用括弧,易懂,易讀
運算式:
由數字、符號、括弧、變數等組合算數運算式邏輯運算式賦值運算式Python中,賦值即定義,如果一個變數已經定義,賦值相當於重新定義
python語言基礎