1. 程式人生 > >python語言基礎

python語言基礎

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 >> 2
12,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,後面就沒有必要計算了,這個邏輯表達式一定是false
or如果第一個表達式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 b
Out[3]: True
In [4]: a == b
Out[4]: True

a1 = ‘I am using long string for testing‘
a2 = ‘I am using long string for testing‘
a1 is a2      
False
a1 == a2
True

In [9]: str1 = ‘string‘
In [10]: str2 = "".join([‘s‘,‘t‘,‘r‘,‘i‘,‘n‘,‘g‘])
In [12]: str1 is str2
Out[12]: False
In [13]: str1 == str2
Out[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語言基礎