python的基本運算子
什麼是運算子。類似於5+7=12、12-4=8、3*9=27、1/4=0.25。
python算術運算子:
| 運算子 |
描述 |
執行個體 |
| + |
加-兩個對象相加(數字、字串、列表、元組) |
3+2輸出 5 "a"+"b" 輸出 "ab" |
| - |
減-一個數減去另一個數或集合的差集 |
9-1輸出 8 {1,2,3}-{2}輸出{1,3} |
| * |
乘- 兩個數相乘或是返回一個被重複若干次的的對象(字串,列表,元組) |
4*5輸出20 [0,1]*2輸出[0,1,0,1] |
| / |
除-兩個數相除 |
5/2輸出2.5 |
| // |
整除-返回商的整數部分 |
5//2輸出2 |
| % |
模數-返回除法的餘數 |
5%2輸出1 |
| ** |
冪-返回x的y次冪 |
3**2輸出9 |
python比較子:
| 運算子 |
描述 |
執行個體 |
| == |
等於-比較對象是否相等 |
5==3返回False |
| 。= |
不等於-比較兩個對象是否不相等 |
'a'!='b' 返回True |
| > |
大於-返回x是否大於y |
8>5返回True |
| < |
小於-返回x是否小於y |
7<3 返回False |
| >= |
大於等於-返回x是否大於等於y |
3>=2 返回True |
| <= |
小於等於-返回x是否小於等於y |
5<=3返回False |
註:布爾值True和False等價於整數1和0。
python賦值運算子:
| 運算子 |
描述 |
執行個體 |
| = |
簡單的賦值運算子 |
c=a+b將a+b的運算結果賦值為c |
| += |
加法賦值運算子 |
b+=a等價於b=b+a |
| -= |
減法賦值運算子 |
b-=a等價於b=b-a |
| *= |
乘法賦值運算子 |
b*=a等價於b=b*a |
| /= |
除法賦值運算子 |
b/=a等價於b |
| %= |
模數賦值運算子 |
b%=a等價於b=b%a |
| **= |
冪賦值運算子 |
b**=等價於b=b**a |
| //= |
取整除運算子 |
b//=a等價於b=b//a |
python位元運算符:
| 運算子 |
描述 |
執行個體 |
| & |
按位與運算子:參與運算的兩個值,如果兩個相應位都為1,則該位的結果為1,否則為0 |
1&1為1 1&0為0 |
| | |
按位或運算子:只要對應的兩個二進位位有一個為1時,結果位就為1 |
1|0返回1 0|0返回0 |
| ^ |
按位異或運算子:當兩個對應的二進位位相異時,結果為1 |
1^0返回1 1^1返回0 |
| ~ |
按位取反運算子:對資料的每個二進位位取反,即把0變為1,1變為0 |
~1返回0 ~0返回1 |
| 〈〈 |
左移運算子:把"〈〈"左邊的運算數的各位元位全部左移若干位,"〈〈"右邊的數指定移動的位元,高位丟棄,低位補0 |
1〈〈1返回2 |
| 〉〉 |
右移運算子:把"〉〉"左邊的運算數的各位元位全部右移若干位,"〉〉"右邊的數指定移動的位元,低位丟棄,高位補符號位 |
8〉〉1返回4 |
python邏輯運算子:
| 運算子 |
邏輯運算式 |
描述 |
執行個體 |
| and |
x and y |
布爾"與"-如果x為0或False,x and y 返回x的值,否則返回y的值 |
(8 and 15)返回15 |
| or |
x or y |
布爾"或"-如果x為非0值或True,x or y返回x的值,否則返回y的值 |
(8 or 15)返回8 |
| not |
not x |
布爾"非"-如果x為非0值或True,返回False。如果x為0或False,返回True |
not(8 and 15)返回False |
python成員運算子:
| 運算子 |
描述 |
執行個體 |
| in |
如果在指定的序列中找到值返回True, 否則返回False |
"a"in"abc" 返回True |
| not in |
如果在指定的序列中沒有找到值,返回True,否則返回False |
1 not in [2,3]返回True |
python身份運算子:
| 運算子 |
描述 |
執行個體 |
| is |
判斷兩個標識符是不是引用同一個對象,如果引用的是同一個對象,則返回True,否則返回False |
'a' is 'a' 返回 True |
| is not |
判斷兩個標識符是不是引用自不同對象,如果引用的不是同一個對象,則返回True,否則返回False |
'a' is not 'b' 返回 False |
x is y,類似id(x)==id(y),x is not y 類似id(x)!=id(y) 註:id()函數用於擷取對象的記憶體位址
python運算子優先順序:
| 序號 |
運算子 |
描述 |
| 1 |
** |
指數(最高優先順序) |
| 2 |
~x |
按位翻轉 |
| 3 |
+x,-x |
加號或減號 |
| 4 |
*,/,//,% |
乘法,除法,整除,取餘 |
| 5 |
+,- |
加法與減法 |
| 6 |
〈〈,〉〉 |
移位元運算符 |
| 7 |
& |
按位與 |
| 8 |
^ |
按位異或 |
| 9 |
| |
按位或 |
| 10 |
<,<=,>,>=,!=,== |
比較子 |
| 11 |
=,%=,/=,//=,-=,+=,*=,**= |
賦值運算子 |
| 12 |
is,is not |
身份運算子 |
| 13 |
in,not in |
成員運算子 |
| 14 |
not x |
邏輯運算子“非” |
| 15 |
and |
邏輯運算子“與” |
| 16 |
or |
邏輯運算子“或” |
三種不同的數實值型別:
整型(int)-通常被稱為是整數或者整型,是正或負整數,不帶小數點。python3中整型是沒有大小限制的。
浮點型(float)-浮點型通常由整數部分與小數部分組成,浮點型也可用科學計數法表示(1.8e2=1.8x10^2=180.0)。
複數(complex)-複數由實數部分和虛數部分組成,可以用a+bj或者complex(a,b)表示,複數的實部和虛部都是浮點型。
python數字類型轉換:
有時候,我們需要對資料的類型進行轉換,只需要將資料類型作為函數名即可。
比如: int(x)將x轉換為一個整數 >>>int(2.7) 2
float(x) 將x轉換為一個浮點數 >>>float(9) 9.0
complex(x) 將x轉換為一個複數,實數部分為x,虛數部分為0
complex(x,y) 將x和y轉換為一個複數,實數部分為x,虛數部分為y >>>complex(3,5) 3+5j
數學函數(import math):
| 函數 |
傳回值(描述) |
| abs(x) |
返回數位絕對值,如abs(-5)返回5 |
| ceil(x) |
返回數位上入整數,如math.ceil(3.2) 返回4 |
| floor(x) |
返回數位下舍整數,如math.floor(5.6) 返回5 |
| log(x) |
對數,預設以自然數e為底,如math.log(math.e)返回1.0 math.log(100,10) 返回2 .0 |
| max(x1,x2,...) |
返回給定參數的最大值,參數可以為序列 |
| min(x1,x2,...) |
返回給定參數的最小值,參數可以為序列 |
| round(x,[,n]) |
返回浮點數x的四捨五入值,如給出n值,則代表舍入到小數點後的位元 |
| sqrt(x) |
返回數字x的平方根,x不能為負數 |
注;上面的序列可以是字串,列表,元組,集合。且序列裡的元素必須同類型。
例子:
>>>import math
>>>math.ceil(5.2) 6
>>>math.floor(9.8) 9
>>>math.log(16,2) 4.0
>>>max("happy") 'y'找出字串中ASCII碼值最大的字元
>>>min([5,9,3,7,6]) 3
>>>round(3.14159,2) 3.14 #保留兩位小數
>>>math.sqrt(81) 9.0
隨機數函數:( import random)
| 函數 |
傳回值(描述) |
| choice(seq) |
從序列的元素中隨機挑選一個元素,比如random.choice(range(10)),從0到9中隨機挑選一個整數。 |
| randrange([start],stop,[step]) |
從指定範圍內,按指定步長遞增的集合中擷取一個隨機數,start預設值為0,step預設值為1. |
| random() |
隨機產生下一個實數,它在[0,1)範圍內。 |
| seed([x]) |
改變隨機數產生器的種子seed,如果你每次調用seed()時都提供相同的種子值,那麼將得到相同的隨機數序列。 |
| shuffle(lst) |
將序列的所有元素隨機排序。 |
| uniform(x,y) |
隨機產生下一個實數,它在[x,y] 範圍內,服從平均分布。 |
這裡的序列只能是有序序列,如字串,列表,元組。
例子:
>>>import random
>>>random.choice(["apple","orange","banana"]) 'orange'
>>>random.choice("xxxxyyyyyyzzzzz") 'y'
>>>random.randrange(0,100,2) #隨機產生0~100之間的偶數 48
>>>random.random()*10 #產生0~10之間的隨機數 8.192738512619767
>>>list=[1,2,3,4,5]
>>>random.shuffle(list) #打亂列表list
>>>list [3,2,4,1,5]
>>>random.uniform(5,20) #產生5~20之間的隨機數 12.395766517579691
>>>random.seed(5)
>>>random.random() 0.6229016948897019
>>>random.random() 0.7417869892607294
>>>random.seed(5)
>>>random.random() 0.6229016948897019
>>>random.random() 0.7417869892607294
三角函數 : (import math)
| 函數 |
傳回值 (描述) |
| sin(x) |
返回x弧度的正弦值 |
| cos(x) |
返回x弧度的餘弦值 |
| tan(x) |
返回x弧度的正切值 |
| asin(x) |
返回x的反正弦弧度值 |
acos(x) |
返回x的反餘弦弧度值 |
| atan(x) |
返回x的反正切弧度值 |
hypot(x,y) |
返回歐幾裡德範數 sqrt(x*x+y*y) |
| degrees(x) |
將弧度轉換為角度 如math.degrees(math.pi) 返回180.0 |
| radians(x) |
將角度轉換為弧度 如math.radians(180) 返回3.1415926 |
python字串運算子:
a="Nice" b="Day"
| 操作符 |
描述 |
執行個體 |
| + |
字串串連 |
a+b輸出結果:NiceDay |
| * |
重複輸出字串 |
a*2輸出結果:NiceNice |
| [ ] |
通過索引擷取字串中字元 |
a[2]的輸出結果是c |
| [:] |
截取字串中的一部分 |
a[1:3]輸出ic |
| in |
成員運算子-如果字元中包含給定的字元返回True |
'c' in a 輸出結果1 |
| not in |
成員運算子-如果字元中不包含給定的字元返回True |
'j' not in a輸出結果1 |
| r/R |
原始字串-所有的字串都是直接按照字面的意思來使用,沒有轉義特殊或不能列印的字元 |
print(r'\n')原樣列印\n而不是輸出一個換行 |
python字串格式化:
python使用一個字串作為模板,模板中有格式符,這些格式符為真實值預留位置,並說明真實數值應該呈現的格式。python用一個tuple將多個值傳遞給模板,每個值對應一個格式符。
["I'm %s. I'm %d years old."]% ("Amy",20) [ ] 字串模板
模板格式符 傳遞值的元組
python 字串格式化符號:
| 符號 |
描述 |
執行個體 |
| %c |
格式化字元或者ASCII碼 |
"%c" %65 輸出結果A |
| %s |
格式化字串 |
"%s" %"hello" 輸出結果hello |
| %d |
格式化整數 |
"%d" %8.5 輸出結果8 |
| %o |
格式化無符號八位元 |
"%o"%16輸出結果20 |
%x %X |
格式化無符號十六進位數 |
"%x"%15輸出結果f "%X"%15輸出結果F |
| %f |
格式化浮點數字,可指定小數點後的精度 |
"%.2f"%3.1415輸出結果3.14 |
%e %E |
用科學計數法格式化浮點數 |
"%e"%150輸出結果1.500000e+02 "%E"%150輸出結果1.500000E+02 |
python字串函數-1:
| 函數 |
傳回值(描述) |
| isalnum( ) |
如果字串中至少有一個字元並且所有字元都是字母或數字則返回True,否則返回False |
| isalpha( ) |
如果字串中至少有一個字元並且所有字元都是字母則返回True,否則返回False |
| isdigit( ) |
如果字串中只包含數字則返回True,否則返回False |
| lower( ) |
轉換字串中所有大寫字元為小寫 |
| upper( ) |
轉換字串中所有小寫字元為大寫 |
| max(str) |
返回字串中str中最大的字母 |
| min(str) |
返回字串中str中最小的字母 |
python字串函數-2:
| 函數 |
傳回值(描述) |
| count(str,beg=0,end=len(string)) |
返回str在字串中出現的次數,如果beg或者end指定範圍則返回指定範圍內str出現的次數 |