第4課 運(yùn)算符和input()函數(shù)(20191120)

一、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ù)獲取用戶的輸入。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容