一、Python中的運(yùn)算符
1.運(yùn)算符(也叫操作符):比如加號(+)和減號(-)這樣的數(shù)學(xué)符號叫作操作符(Operator),因?yàn)樗鼈儗Τ绦蛑械臄?shù)字執(zhí)行賦值、運(yùn)算和比較。
2.賦值運(yùn)算符:Python中用等號(‘=’)作為賦值運(yùn)算符,用來給常量和變量賦值。
1)將一個(gè)值賦值給變量,例如:
>>>S1 =’Python’
>>>a =3.1415926
>>>Isbird =True
2)將一個(gè)變量賦值給另一個(gè)變量,例如:
>>> S1=S2
>>>print(S2)
3)將一個(gè)表達(dá)式賦值給變量,例如:
>>>b =a +5
>>>print(b)
4)Python支持連續(xù)賦值,例如:
>>>a=b=c=100
3.算術(shù)運(yùn)算符:Python支持所有的基本算術(shù)運(yùn)算,如加、減、乘、除、求余等。
1)加(+):除了可以進(jìn)行加法運(yùn)算,還是字符串的連接運(yùn)算符。例如:
# 加法運(yùn)算
>>>a = 2
>>>b = 3
>>>the_sum = a +b
>>>Print(‘the_sum 的值為:”, the_sum)
#鏈接字符串
>>>s1=’ Hello’
>>>s2 = ‘Python’
>>>s3 = s1 +s2
>>>Print(s3)
2)減(-):除了可以進(jìn)行減法運(yùn)算,還可以作為求負(fù)的運(yùn)算符。例如:
# 減法運(yùn)算
>>>a = 5.2
>>>b = 3.1
>>>Sub = a -b
>>>Print(‘Sub 的值為:”, Sub)
# 求負(fù)運(yùn)算
>>> x = -0.5
>>>x = -x
>>>print( x)
3)乘(*):除了可以進(jìn)行乘法運(yùn)算,還可以作為字符串的連接運(yùn)算符,表示將N個(gè)字符串鏈接起來。
# 乘法運(yùn)算
>>>a = 3
>>>b = 2
>>>multiply = a*b
>>>Print(‘ mutiply 的值為:”, multiply)
# 將5個(gè)Hello鏈接起來
>>> s =’Hello ‘
>>>print( s*5) # 輸出:Hello Hello Hello Hello Hello
4)除(/ 或 //)://表示整除運(yùn)算符,/是非整除運(yùn)算符(和平常和除法運(yùn)算一樣,除不盡時(shí)會(huì)產(chǎn)生小數(shù)),Python2中只有/。例如:
# 除法運(yùn)算
>>> print(17/4) #結(jié)果是:4.25
>>> print(17//4)#結(jié)果是:4
>>>a=5.2
>>>b=3.1
>>>print(a/b)
>>>print(a//b)
除數(shù)不能為0,否則程序會(huì)報(bào)錯(cuò):ZeroDivisionError。例如:
# 0做除數(shù)
>>>x=3
>>>y=0
>>>print( x/y) #報(bào)錯(cuò)信息:ZeroDivisionError: division by zero
5)求余 (%):Python不要求求余的兩個(gè)操作數(shù)都是整數(shù),完全支持對浮點(diǎn)數(shù)求余。
# 求余數(shù)運(yùn)算
>>> print(5%3) #結(jié)果為:2
>>>print(5.2%3.1)#結(jié)果為:2.1
>>>print(-5.2%-3.1)#結(jié)果為:-2.1
>>>print(-5.2%3.1)#結(jié)果為:1.0
>>>print(5.2%-3.1)#結(jié)果為:-1.0
求余運(yùn)算中包含了除法運(yùn)算,所以第二個(gè)數(shù)不能為0,否則程序會(huì)報(bào)錯(cuò):ZeroDivisionError。
6)乘方 (**): 由于開方其實(shí)是乘方的逆運(yùn)算,所以**也可以進(jìn)行開方運(yùn)算。例如:
# 加法運(yùn)算
>>>a = 2
>>>b = 3
>>>the_sum = a +b
>>>Print(‘the_sum 的值為:”, the_sum)
#鏈接字符串
>>>print(‘5的2次方:‘,5**2)
>>> print(‘2的4次方:‘,2**4)
>>> print(‘4開平方:‘,4**0.5)
>>> print(‘27開3次方:‘,27**(1/3))
4.比較運(yùn)算符:
1)Python提供了布爾(bool)類型,來表示真(對)或假(錯(cuò))。它是關(guān)系運(yùn)算指令和邏輯運(yùn)算指令返回的結(jié)果值,或其它一些偵測指令返回的值,它的值為真(True)和假(False)。當(dāng)它參與算術(shù)運(yùn)算是值為1(True)和0(False)。
2)Python支持的比較運(yùn)算符:>大于、<小于、>=大于等于、<=小于等于、==等于(值相等)、!=(不等于,值不相等)、is(引用的對象相同)、is not(引用的對象不相同)。例如:
>>> print(5>4) # 輸出為:True
>>> print(3**4>90) #輸出為:False
>>> print(5==4)#輸出為:False3)
== 和is 的區(qū)別:==是指運(yùn)算符前后的值相等, is判斷前后兩個(gè)變量所引用的對象是否相同。例如:
>>>import time
>>> a=time.gmtime()
>>> b=time.gtime()
>>> print(a == b) #輸出為:True,因?yàn)閮蓚€(gè)都是系統(tǒng)時(shí)間,值一樣。
>>> print(a is b)#輸出為:False,因?yàn)槊看握{(diào)用函數(shù)返回不同的對象。
備注:計(jì)算機(jī)中同一塊內(nèi)存在任一時(shí)刻只能存放一個(gè)對象,如果兩個(gè)對象所以內(nèi)存地址相同則說明是同一對象。Python得供了一個(gè)id()函數(shù),我們可以使用它來判斷兩個(gè)變量是否返回了不同的地址。例如:
>>>print(id(a))
>>>print(id(b))
5.邏輯運(yùn)算符:用來操作布爾類型的變量、常量和表達(dá)式,邏輯運(yùn)算返回的值也是一個(gè)Bool值。邏輯運(yùn)算符有三個(gè)。
1)與(and):前后兩個(gè)操作數(shù)必須都是True,才能返回True,否則返回False。
2)或(or):只在前后兩個(gè)操作數(shù)中有一個(gè)是True,就會(huì)返回True,除非兩個(gè)都是False,才會(huì)返回False。
3)非(not):只需要一個(gè)操作數(shù),如果操作數(shù)為Ture,返回False;如果操作數(shù)會(huì)False,返回True。例如:
#如果蛋糕大于8寸或價(jià)格少于80就買
>>> cake_size =10
>>> cake_price=100
>>> cake_flavor='trawberry'
>>> if (cake_size>8 or cake_price<80) and cake_flavor==’strawberry’:
print("I will buy this cake.")
else:
print("I wont buy this cake.")
這里注意對于組合邏輯運(yùn)算,需要用圓括號保證運(yùn)算的順序。
4) 三目運(yùn)算(又稱條件運(yùn)算符、三元運(yùn)算符):因其有三個(gè)操作數(shù)而得名,Python可以通過if 語句來實(shí)現(xiàn)三目運(yùn)算的功能,三目運(yùn)算的規(guī)則是:先對邏輯表達(dá)式進(jìn)行計(jì)算,如果邏輯表達(dá)式返回True,則執(zhí)行True_Statement的值;否則執(zhí)行False_Statement的值。例如:
a?b:c (簡單理解為:if a return b else c)
>>>a=5
>>>b =3
>>>St =”a 大于b”if a>b else “a不大于b”>>>print(st) #輸出為: a 大于b
三目運(yùn)算符支持嵌套,通過執(zhí)行三目運(yùn)算符可以進(jìn)行更復(fù)雜的判斷。例如:
>>>a=5
>>>b =5
#輸出 a等于b
>>>print(“ a大于b”) if a>b else (print (“a小于b”) if a<b else print('a等于b'))
6. In 運(yùn)算符:用于判斷某個(gè)成員是否位于序列中,比如字符串Str是一個(gè)序列,因些可以用in來判斷字符串中是否包含子串。
Python還提供了 in的反義詞:not in。
>>>S =”Python”
>>>print(‘P’ in S) #輸出:True
>>>print(‘a(chǎn)bc’ in S) #輸出:False
>>>print(‘a(chǎn)bc’ not in S) #輸出:True
>>>print(‘thon’ not in S)#輸出:Flase
7. 索引運(yùn)算符:上一節(jié)講字符串時(shí),已經(jīng)講了索引運(yùn)算符,就是方括號[]。例如:
>>>s =’abcdefghijklmnopqrstuvwxyz’
#索引2到8的子串,步長為3
>>>print(s[2:8:3]) #輸出cf
8. 位運(yùn)算符:位運(yùn)算符通常在圖形、圖像處理和創(chuàng)建設(shè)務(wù)驅(qū)動(dòng)等層開發(fā)時(shí)使用。使用位運(yùn)算符可以直接操作原始Bit位,尤其在使用自定義的協(xié)議通信時(shí),使用位運(yùn)算符對原始數(shù)據(jù)進(jìn)行編碼和解碼。
簡單認(rèn)識幾個(gè)位運(yùn)算符:&:按位與、|:按位或、^:接位異或、~按位取反、<<左位移、>>右位移。
二、 運(yùn)算符的優(yōu)先級
1. 所有的算術(shù)運(yùn)算都是從左向右的,Python中大部分運(yùn)算符也是從左向右的順序。
2. 單目運(yùn)算(not)、賦值運(yùn)算(==)、三目運(yùn)算符(?:)例外,都是從右向左計(jì)算的。
3. 為了增加程序的可讀性,不要把一個(gè)表達(dá)式寫的過于復(fù)雜,可以把它分成幾步來完成。 4. Python中,算術(shù) >關(guān)系(比較)> 條件(非>與>或)> 賦值, 運(yùn)算符優(yōu)先級匯總表。如圖:

三、 Input()函數(shù)
input() 函數(shù):用于向用戶生成一條提示,然后獲取用戶輸入的內(nèi)容。
由于 input() 函數(shù)總會(huì)將用戶輸入的內(nèi)容放入字符串中,因此用戶可以輸入任何內(nèi)容,input() 函數(shù)總是返回一個(gè)字符串。例如:
msg = input("請輸入你的值:")
print (type(msg)) print(msg)
第一次運(yùn)行該程序,我們輸入一個(gè)整數(shù),
運(yùn)行過程如下: 請輸入你的值:2 < class 'str'> 2
第二次運(yùn)行該程序,我們輸入一個(gè)浮點(diǎn)數(shù),
運(yùn)行過程如下: 請輸入你的值: 1.2 < class 'str'> 1.2
第三次運(yùn)行該程序,我們輸入一個(gè)字符串,
運(yùn)行過程如下: 請輸入你的值:Hello < class 'str'> Hello
從上面的運(yùn)行過程可以看出,無論輸入哪種內(nèi)容,始終可以看到 input() 函數(shù)返回字符串,程序總會(huì)將用戶輸入的內(nèi)容轉(zhuǎn)換成字符串。
四、 本節(jié)回顧總結(jié)
1) Python中有哪些算術(shù)運(yùn)算符?
2) Python中有哪些關(guān)系運(yùn)算符?
3) Python中有哪些邏輯運(yùn)算符?
4) 索引運(yùn)算符和In運(yùn)算符的用法 ?
5) 各種常用運(yùn)算符的計(jì)算優(yōu)先級是?
6) 會(huì)使用input()函數(shù)獲取用戶的輸入。