04 運(yùn)算符
1. 運(yùn)算符
1.1 運(yùn)算符的概念
運(yùn)算符用于執(zhí)行程序代碼運(yùn)算,會(huì)針對(duì)一個(gè)以上操作數(shù)項(xiàng)目來進(jìn)行運(yùn)算。例如:2+3实牡,其操作數(shù)是2和3,而運(yùn)算符則是“+”轴合。
1.2 運(yùn)算符的分類
算術(shù)運(yùn)算符
賦值運(yùn)算符
比較運(yùn)算符(關(guān)系運(yùn)算符)
邏輯運(yùn)算符
條件運(yùn)算符(三元運(yùn)算符)
2. 算術(shù)運(yùn)算符的表現(xiàn)形式
(1)加法運(yùn)算符 表現(xiàn)形式 +
舉例1:
x =1 +2
print('x =',x)
x =3
舉例2:
x =1.0 +2
print('x =',x)
x =3.0? ? ----只要和浮點(diǎn)數(shù)做運(yùn)算创坞,最終結(jié)果就會(huì)返回浮點(diǎn)數(shù)
舉例3:
x ='python' +' java'? ? ? ----字符串做加法運(yùn)算,就是拼串
print('x =',x)
x = python java
(2)減法運(yùn)算符 表現(xiàn)形式 -
舉例1:
x =5 -2
print('x =',x)
x =3
舉例2:減法可以有負(fù)數(shù)
x =2 -5
print('x =',x)
x = -3
舉例3:錯(cuò)誤例子
x ='python' -' java'
print('x =',x)
字符串不能用減法受葛!用就會(huì)報(bào)錯(cuò)TypeError: unsupported operandtype(s)for -:'str' and 'str'
(3)乘法運(yùn)算符 表現(xiàn)形式 *
舉例1:
x =7 * 'a'
print('x =',x)
x = aaaaaaa? ? ? ? -----整數(shù)與字符串相乘题涨,就是復(fù)制字符串
舉例2:錯(cuò)誤例子
x ='a' *'b'
print('x =',x)
字符串間不可以做乘法運(yùn)算,否則會(huì)報(bào)錯(cuò)TypeError: can't multiply sequence by non-int of type 'str'
(4)除法運(yùn)算符 表現(xiàn)形式 /
舉例1:
x =6 /2? ?
print('x =',x)
x =3.0? ? ??----整數(shù)或者浮點(diǎn)數(shù)做除法運(yùn)算總會(huì)返回浮點(diǎn)類型
舉例2:錯(cuò)誤例子
x =6 /0
print('x =',x)
除數(shù)不能為0总滩,報(bào)錯(cuò)ZeroDivisionError: division by zero
舉例3:
x ='a' /'b'
print('x =',x)
字符串不能相除纲堵,報(bào)錯(cuò)TypeError: unsupported operandtype(s)for /:'str' and 'str'
(5)// 整除,只會(huì)保留計(jì)算后的整數(shù)位闰渔,總會(huì)返回一個(gè)整型
(6)% 取余/取模席函,求兩個(gè)數(shù)相除的余數(shù)
(7)** 冪運(yùn)算,求一個(gè)值的幾次冪 冈涧,比如:**2 就是某數(shù)的二次冪
3. 賦值運(yùn)算符
例如:a=10? ------- 等號(hào)可以講右邊的值賦值給左邊的變量
當(dāng)x=5
復(fù)制運(yùn)算符的特殊寫法? x = x + 3 其實(shí)是和 x += 3 是一樣的
+= ?(x+= 3 相當(dāng)于 x = x + 3 )
?-= (x -= 3 相當(dāng)于 x= x - 3 )?
*= ?(x *= 3 相當(dāng)于 x = x* 3 )
**= (x **= 3 相當(dāng)于 x = x ** 3 )=125
/=? (x /= 3 相當(dāng)于 x = x/ 3 )
//= (x //= 3 相當(dāng)于 x = x // 3 )=41
%=? (x %= 3 相當(dāng)于 x= x % 3 )=2
4. 比較運(yùn)算符
比較運(yùn)算符用來比較兩個(gè)值之間的關(guān)系茂附,總會(huì)返回一個(gè)布爾值.如果關(guān)系成立正蛙,返回True,否則返回False
(若比較字符串营曼,比較的是ASCII碼的值乒验,如果出現(xiàn)多個(gè)字符,則比較方式是對(duì)位比較蒂阱,若對(duì)位比較能出的結(jié)果就直接返回結(jié)果锻全,否則去下一位對(duì)位比較,知道比較出結(jié)果為止)
> 比較左側(cè)值是否大于右側(cè)值
>= 比較左側(cè)的值是否大于或等于右側(cè)的值
< 比較左側(cè)值是否小于右側(cè)值
<= 比較左側(cè)的值是否小于或等于右側(cè)的值
特殊的比較方式
== 比較兩個(gè)對(duì)象的值是否相等
!= 比較兩個(gè)對(duì)象的值是否不相等
is 比較兩個(gè)對(duì)象是否是同一個(gè)對(duì)象录煤,比較的是對(duì)象的id
is not 比較兩個(gè)對(duì)象是否不是同一個(gè)對(duì)象鳄厌,比較的是對(duì)象的id
5. 邏輯運(yùn)算符
主要用于對(duì)做邏輯判斷
##########? True相當(dāng)于1,F(xiàn)alse相當(dāng)于0
5.1 not 邏輯非
not可以對(duì)符號(hào)右側(cè)的值進(jìn)行非運(yùn)算辐赞,對(duì)于布爾值部翘,非運(yùn)算會(huì)先將其轉(zhuǎn)換為布爾值,然后再取反操作True變False响委,F(xiàn)alse變True
對(duì)于0新思、空串、none赘风。夹囚。。這些表示空性的值邀窃,都會(huì)轉(zhuǎn)換為False
5.2 and 邏輯與
and可以對(duì)符號(hào)兩側(cè)的值進(jìn)行與運(yùn)算荸哟。 只有在符號(hào)兩側(cè)的值都為True時(shí),才會(huì)返回True瞬捕,只要有一個(gè)False就返回False
與運(yùn)算是找False的鞍历,
如果第一個(gè)值為False,則不再看第二個(gè)值肪虎,返回沒東西劣砍;
如果第一個(gè)值是True,就直接返回第二個(gè)值扇救。
5.3 or 邏輯或
或運(yùn)算兩個(gè)值中只要有一個(gè)True刑枝,就會(huì)返回True
或運(yùn)算是找True的,如果第一個(gè)值是True迅腔,返回沒東西装畅。
5.4 非布爾值的與或運(yùn)算
當(dāng)我們對(duì)非布爾值進(jìn)行與/或運(yùn)算時(shí),Python會(huì)將其當(dāng)做布爾值運(yùn)算沧烈,最終會(huì)返回原值掠兄。
(1)非布爾值?與??運(yùn)算的規(guī)則
與運(yùn)算是找False的,
如果第一個(gè)值是False,則不看第二個(gè)值徽千,返回沒東西苫费,
如果第一個(gè)值是True汤锨,則直接返回第一個(gè)值双抽,否則返回第二個(gè)值。
(2)非布爾值?或??運(yùn)算的規(guī)則
或運(yùn)算是找True的闲礼,
如果第一個(gè)值是True牍汹,則不看第二個(gè)值,返回沒東西柬泽,
如果第一個(gè)值是False慎菲,則直接返回第一個(gè)值,否則返回第二個(gè)值锨并。
6. 條件運(yùn)算符(三元運(yùn)算符)
條件運(yùn)算符在執(zhí)行時(shí)露该,會(huì)先對(duì)條件表達(dá)式進(jìn)行求值判斷
如果判斷結(jié)果為True,則執(zhí)行語句1第煮,并返回執(zhí)行結(jié)果
如果判斷結(jié)果為False解幼,則執(zhí)行語句2,并返回執(zhí)行結(jié)果
語法: 語句1 if 條件表達(dá)式 else 語句2? ? ? ?### 不加冒號(hào)
7. 運(yùn)算符的優(yōu)先級(jí)
運(yùn)算符優(yōu)先級(jí)參照表:https://docs.python.org/3/reference/expressions.html#operator-precedence
越往下包警,優(yōu)先級(jí)越高撵摆,優(yōu)先級(jí)越高,計(jì)算最先
###今日作業(yè)
1. 現(xiàn)在有a b c三個(gè)變量害晦,三個(gè)變量中分別保存有三個(gè)數(shù)值特铝,請(qǐng)通過條件運(yùn)算符獲取三個(gè)值中的最大值
2. 以4種格式化字符串的方式來實(shí)現(xiàn) 521 xxx 嫁給我好嗎?(用拼串壹瘟、參數(shù)的傳遞鲫剿、占位符%s、f{’變量‘}或者str.format() )
3. 練習(xí)課堂中老師敲的代碼