運(yùn)算符用于執(zhí)行程序代碼運(yùn)算,根據(jù)操作數(shù)一般分為一元運(yùn)算符、二元運(yùn)算符。例如:2+3
,其操作數(shù)是2
和3
,而運(yùn)算符則是+
。在Python中運(yùn)算符可以分為以下幾種類型:算術(shù)運(yùn)算符、比較(關(guān)系)運(yùn)算符、賦值運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符、成員運(yùn)算符、身份運(yùn)算符。
創(chuàng)新互聯(lián)自2013年創(chuàng)立以來,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元營山做網(wǎng)站,已為上家服務(wù),為營山各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792
+
、-
、*
:分別對應(yīng)數(shù)學(xué)中的加減乘,在此不做過多的贅述。
/
:除法,注意結(jié)果返回的是浮點(diǎn)數(shù)。4 / 2 → 2.0
%
:取模,返回除法的余數(shù)。7 % 3 → 1
**
:冪運(yùn)算。4 ** 2 → 16
//
:取整除,也叫地板除,返回商的整數(shù)部分(向下取整)。15 // 6 → 2
1、算術(shù)運(yùn)算符全是對數(shù)值類型數(shù)據(jù)進(jìn)行操作的運(yùn)算符
2、算術(shù)運(yùn)算符全是二元運(yùn)算符
3、返回的類型為數(shù)值類型
算術(shù)轉(zhuǎn)換規(guī)則
1、如果任一操作數(shù)為復(fù)數(shù),另一操作數(shù)會被轉(zhuǎn)換為復(fù)數(shù);
2、否則,如果任一操作數(shù)為浮點(diǎn)數(shù),另一操作數(shù)會被轉(zhuǎn)換為浮點(diǎn)數(shù);
3、否則,兩者應(yīng)該都為整數(shù),不需要進(jìn)行轉(zhuǎn)換。
==
、!=
、>
、<
、>=
、<=
:分別對應(yīng)等于、不等于、大于、小于、大于或等于、小于或等于。
1、比較(關(guān)系)運(yùn)算符可以操作數(shù)值類型,也可以操作對象。
2、比較(關(guān)系)運(yùn)算符全是二元運(yùn)算符。
3、返回的結(jié)果為布爾類型
(非真即假)
=
:最常用的賦值運(yùn)算符。a = 5 → 將5賦值給a。
算術(shù)運(yùn)算符
+ =
:先進(jìn)行算術(shù)運(yùn)算之后再進(jìn)行賦值。例如:a += 3
等價(jià)于:a = a + 3。其它的類似。
=:
:海象運(yùn)算符。Python3.8之后新增的一種賦值運(yùn)算符,可以直接進(jìn)行賦值后再形成表達(dá)式,從而節(jié)省代碼的編寫量。
↓未使用海象運(yùn)算符
age = 20
if age > 18:
print("已經(jīng)成年了")
↓使用海象運(yùn)算符
if(age:= 20) > 18:
print("已經(jīng)成年了")
↓未使用海象運(yùn)算符
file = open("demo.txt", "r")
while True:
line = file.readline()
if not line:
break
print(line.strip())
↓使用海象運(yùn)算符
file = open("demo.txt", "r")
while (line := file.readline()):
print(line.strip())
↓未使用海象運(yùn)算符
while True:
p = input("Enter the password: ")
if p == "youpassword":
break
↓使用海象運(yùn)算符
while(p := input("Enter the password: ")) != "youpassword":
continue
1、賦值運(yùn)算符可以操作數(shù)值類型,也可以操作對象。
2、賦值運(yùn)算符全是二元運(yùn)算符。
and
:邏輯與,若2個(gè)操作數(shù)都為真則結(jié)果為True
,否則為False
。
or
:邏輯或,若2個(gè)操作數(shù)都為假則結(jié)果為False
,否則為True
。
not
:邏輯非,取反。若操作數(shù)為True
,則結(jié)果為False
。反之亦然。
1、操作數(shù)必須為布爾類型
或能隱式轉(zhuǎn)換成布爾類型
。
2、and
、or
是兩元運(yùn)算符,而not
是一元運(yùn)算符。
3、and
其實(shí)短路邏輯
,就是先判斷第1個(gè)參數(shù)的布爾類型,如果是False
,那么整個(gè)表達(dá)式就是False
,而不必去判斷第2個(gè)參數(shù)的布爾類型。如果為True
,那么整個(gè)表達(dá)式的最后結(jié)果就是第2個(gè)參數(shù)的布爾類型。這個(gè)稱之為短路邏輯。or
也同理。
4、優(yōu)先級:not
> and
> or
5、返回的類型為布爾類型
位運(yùn)算符會將數(shù)字轉(zhuǎn)換成二進(jìn)制并進(jìn)行運(yùn)算。位運(yùn)算符將兩個(gè)二進(jìn)制數(shù)位從高到低依次進(jìn)行運(yùn)算。為了方便講解,下面的變量a 為 60,b 為 13,a和b的二進(jìn)制格式為:
a = 0011 1100
b = 0000 1101
&
:按位與,如果參與運(yùn)算的兩個(gè)2進(jìn)制位都為1,則結(jié)果為1,否則為0。
a & b → 0000 1100
|
:按位或,如果參與運(yùn)算的兩個(gè)2進(jìn)制位有一個(gè)為1,則結(jié)果為1。否則為0。
a & b → 0011 1101
^
:按位異,如果參與運(yùn)算的兩個(gè)2進(jìn)制位相異時(shí),結(jié)果為1。否則為0。
a ^ b → 0011 0001
~
:按位取反,對數(shù)據(jù)的每個(gè)二進(jìn)制位取反,即把1變?yōu)?,把0變?yōu)?。
~a = 1100 0011
<<
:左移動(dòng),運(yùn)算數(shù)的各二進(jìn)位全部左移若干位,由 <<
右邊的數(shù)字指定了移動(dòng)的位數(shù),高位丟棄,低位補(bǔ)0。
a << 2 → 1111 0000
>>
:右移動(dòng),運(yùn)算數(shù)的各二進(jìn)位全部右移若干位,由 >>
右邊的數(shù)字指定了移動(dòng)的位數(shù),低位丟棄,高位補(bǔ)0。
a >> 2 → 0000 1111
1、操作數(shù)必須為整數(shù)類型
2、&
、|
、^
是兩元運(yùn)算符,而~
、<<
、>>
是一元運(yùn)算符
成員運(yùn)算符用來判斷某個(gè)對象是不是某個(gè)序列中的成員。
in
:對象在序列中則返回True
,否則返回Flase
。
not in
:對象不在序列中則返回True
,否則返回False
。
1、in
和not in
都是二元運(yùn)算符。
2、返回值為布爾類型。
身份運(yùn)算符用于對對象執(zhí)行比較操作,即這些運(yùn)算符檢查兩個(gè)操作數(shù)是否引用相同的對象(具有相同的存儲位置)。
is
:判斷兩個(gè)標(biāo)識符是不是引用自同一個(gè)對象。x is y:類似id(x) == id(y),如果引用的是同一個(gè)對象則返回True
,否則返回False
。
is not
:判斷兩個(gè)標(biāo)識符是不是引用自不同對象。x is not y:類似id(a) != id(b)。如果引用的不是同一個(gè)對象則返回結(jié)果True
,否則返回False
。
1、is
和 is not
都是二元運(yùn)算符
2、返回的結(jié)果為布爾類型。
以下列出了從最高到最低優(yōu)先級的所有運(yùn)算符:
運(yùn)算符 | 描述 |
---|---|
** | 指數(shù)(最高優(yōu)先級) |
~、+、- | 按位翻轉(zhuǎn)、正號、負(fù)號 |
*、/、%、// | 乘、除、取模、取整除 |
+、- | 加、減 |
>>、<< | 按位右移、按位左移 |
& | 按位與 |
|、^ | 按位或、按位異或 |
<=、<、>、>= | 比較運(yùn)算符 |
<>、==、!= | 等于運(yùn)算符 |
=、%=、/=、//=、-=、+=、*=、**= | 賦值運(yùn)算符 |
is、is not | 身份運(yùn)算符 |
in、not in | 成員運(yùn)算符 |
not、and、or | 邏輯運(yùn)算符 |
對于某些不清楚優(yōu)先級的運(yùn)算符,可以通過括號來改變執(zhí)行運(yùn)算順序。
練習(xí)
1、了解Python運(yùn)算符
2、將教程中所有的運(yùn)算符示例手敲一遍并熟悉