国产网曝门99视频在线看_免费看片a级毛片免费看_4hu四虎永久在线观看_高清无套内精线观看456_国产欧美亚洲日韩久久福利_av在线无码观看另类重口_欧美精品一二三区较多收藏_欧美老熟妇伦视频_婷婷六月综合激情_最新国产成人野战在线观看


零基礎(chǔ)Python完全自學(xué)教程8:Python中常用的運(yùn)算符

歡迎你來(lái)到站長(zhǎng)學(xué)堂,學(xué)習(xí)站長(zhǎng)在線出品的在線課程《零基礎(chǔ)Python完全自學(xué)教程》今日分享的是第8課《Python中常用的運(yùn)算符》。本節(jié)課主要內(nèi)容有:算術(shù)運(yùn)算符、賦值運(yùn)算符、比較(關(guān)系)運(yùn)算符、邏輯運(yùn)算符和位運(yùn)算符。

歡迎你來(lái)到站長(zhǎng)學(xué)堂,學(xué)習(xí)站長(zhǎng)在線出品的在線課程《零基礎(chǔ)python完全自學(xué)教程》今日分享的是第8課《Python中常用的運(yùn)算符》。本節(jié)課主要內(nèi)容有:算術(shù)運(yùn)算符、賦值運(yùn)算符、比較(關(guān)系)運(yùn)算符、邏輯運(yùn)算符位運(yùn)算符


運(yùn)算符就是一些特殊的符號(hào),用于數(shù)學(xué)計(jì)算、比較大小,判斷邏輯等。Python的運(yùn)費(fèi)符主要包括算術(shù)運(yùn)算符、賦值運(yùn)算符、比較(關(guān)系)運(yùn)算符、邏輯運(yùn)算符和位運(yùn)算符。使用運(yùn)算符將不同類型的數(shù)據(jù)按照一定的規(guī)則鏈接起來(lái)的式子,稱為表達(dá)式。

使用算術(shù)運(yùn)算符連接起來(lái)的式子,稱為算術(shù)表達(dá)式;使用邏輯運(yùn)算符連接起來(lái)的式子,稱為邏輯表達(dá)式。下面開(kāi)始對(duì)Python中常用的的運(yùn)算符進(jìn)行詳細(xì)介紹。

8.1、Python中的算術(shù)運(yùn)算符

算術(shù)運(yùn)算符也即數(shù)學(xué)運(yùn)算符,用來(lái)對(duì)數(shù)字進(jìn)行數(shù)學(xué)運(yùn)算,比如加減乘除。下表列出了 Python 支持所有基本算術(shù)運(yùn)算符。


在python算術(shù)運(yùn)算中,和數(shù)學(xué)計(jì)算一樣:

1、0是不能作為除數(shù)的。否則就會(huì)出錯(cuò)。

2、加法運(yùn)算符很簡(jiǎn)單,和數(shù)學(xué)中的規(guī)則一樣。當(dāng)+用于字符串時(shí),它還有拼接字符串(將兩個(gè)字符串連接為一個(gè))的作用。


8.2、Python中的賦值運(yùn)算符

賦值運(yùn)算符主要用來(lái)變量等賦值。賦值運(yùn)算符用來(lái)把右側(cè)的值傳遞給左側(cè)的變量(或者常量);可以直接將右側(cè)的值交給左側(cè)的變量,也可以進(jìn)行某些運(yùn)算后再交給左側(cè)的變量,比如加減乘除、函數(shù)調(diào)用、邏輯運(yùn)算等。


圖8.2為常用的賦值運(yùn)算符

站長(zhǎng)在線提醒大家,很多程序員常常把“=”和“==”搞混淆了。很多編程語(yǔ)言常常用錯(cuò)的兩個(gè)符號(hào)。

8.3、Python中的比較運(yùn)算符(關(guān)系運(yùn)算符

比較運(yùn)算符,也稱關(guān)系運(yùn)算符,用于對(duì)常量、變量或表達(dá)式的結(jié)果進(jìn)行大小比較。如果這種比較是成立的,則返回 True(真),反之則返回 False(假)。

Python 比較運(yùn)算符匯總


圖8.3Python 比較運(yùn)算符匯總

Python 比較運(yùn)算符的使用舉例:

print("89是否大于100:", 89 > 100)
print("24*5是否大于等于76:", 24*5 >= 76)
print("86.5是否等于86.5:", 86.5 == 86.5)
print("34是否等于34.0:", 34 == 34.0)
print("False是否小于True:", False < True)
print("True是否等于True:", True < True)

運(yùn)行結(jié)果:

89是否大于100: False
24*5是否大于等于76: True
86.5是否等于86.5: True
34是否等于34.0: True
False是否小于True: True
True是否等于True: False
>>> 

8.4、Python中的邏輯運(yùn)算符

高中數(shù)學(xué)中我們就學(xué)過(guò)邏輯運(yùn)算,例如 p 為真命題,q 為假命題,那么“p且q”為假,“p或q”為真,“非q”為真。Python 的邏輯運(yùn)算,主要包括and(邏輯與)、or(邏輯或)、not(邏輯非)。


本教程參考很多的書(shū)籍、在線課程,最終采用C語(yǔ)言中文網(wǎng)的說(shuō)法:

Python 邏輯運(yùn)算符用于操作 bool 類型的表達(dá)式,執(zhí)行結(jié)果也是 bool 類型,這兩點(diǎn)其實(shí)都是錯(cuò)誤的!

Python 邏輯運(yùn)算符可以用來(lái)操作任何類型的表達(dá)式,不管表達(dá)式是不是 bool 類型;同時(shí),邏輯運(yùn)算的結(jié)果也不一定是 bool 類型,它也可以是任意類型。請(qǐng)看下面的例子:

print(100 and 200)
print(45 and 0)
print("" or "https://www.olzz.com/xuetang/python/")
print(18.5 or "http://003188.cn/xuetang/python/")

運(yùn)行結(jié)果:

200
0
http://003188.cn/xuetang/python/
18.5
>>> 

你看,本例中 and 和 or 運(yùn)算符操作的都不是 bool 類型表達(dá)式,操作的結(jié)果也不是 bool 值。

邏輯運(yùn)算符的本質(zhì)

在 Python 中,and 和 or 不一定會(huì)計(jì)算右邊表達(dá)式的值,有時(shí)候只計(jì)算左邊表達(dá)式的值就能得到最終結(jié)果。

另外,and 和 or 運(yùn)算符會(huì)將其中一個(gè)表達(dá)式的值作為最終結(jié)果,而不是將 True 或者 False 作為最終結(jié)果。

以上兩點(diǎn)極其重要,了解這兩點(diǎn)不會(huì)讓你在使用邏輯運(yùn)算的過(guò)程中產(chǎn)生疑惑。

對(duì)于 and 運(yùn)算符,兩邊的值都為真時(shí)最終結(jié)果才為真,但是只要其中有一個(gè)值為假,那么最終結(jié)果就是假,所以 Python 按照下面的規(guī)則執(zhí)行 and 運(yùn)算:

如果左邊表達(dá)式的值為假,那么就不用計(jì)算右邊表達(dá)式的值了,因?yàn)椴还苡疫叡磉_(dá)式的值是什么,都不會(huì)影響最終結(jié)果,最終結(jié)果都是假,此時(shí) and 會(huì)把左邊表達(dá)式的值作為最終結(jié)果。

如果左邊表達(dá)式的值為真,那么最終值是不能確定的,and 會(huì)繼續(xù)計(jì)算右邊表達(dá)式的值,并將右邊表達(dá)式的值作為最終結(jié)果。

對(duì)于 or 運(yùn)算符,情況是類似的,兩邊的值都為假時(shí)最終結(jié)果才為假,只要其中有一個(gè)值為真,那么最終結(jié)果就是真,所以 Python 按照下面的規(guī)則執(zhí)行 or 運(yùn)算:

如果左邊表達(dá)式的值為真,那么就不用計(jì)算右邊表達(dá)式的值了,因?yàn)椴还苡疫叡磉_(dá)式的值是什么,都不會(huì)影響最終結(jié)果,最終結(jié)果都是真,此時(shí) or 會(huì)把左邊表達(dá)式的值作為最終結(jié)果。

如果左邊表達(dá)式的值為假,那么最終值是不能確定的,or 會(huì)繼續(xù)計(jì)算右邊表達(dá)式的值,并將右邊表達(dá)式的值作為最終結(jié)果。

8.5、Python中的位運(yùn)算符

為運(yùn)算符是把數(shù)字看作二進(jìn)制數(shù)來(lái)進(jìn)行計(jì)算的,因此需要將要執(zhí)行運(yùn)算的數(shù)據(jù)轉(zhuǎn)換為二進(jìn)制,然后才能運(yùn)算。Python中的位運(yùn)算符有按位與(&)、按位或(|)、按位異或(^)、按位取反(~)、左位移(<<)和右移位(>>)運(yùn)算符。

8.5.1、“按位與運(yùn)算(&)

按位與運(yùn)算的運(yùn)算符為“&”,它的運(yùn)算法則是,兩個(gè)操作數(shù)的二進(jìn)制表示,只有對(duì)應(yīng)位都為1,結(jié)果才為1,否則為0。如果兩個(gè)操作數(shù)的精度不同,則結(jié)果的精度與精度高的操作數(shù)相同??聪路?span >12&8的運(yùn)算過(guò)程。

  #12&8的運(yùn)算過(guò)程
  0000 0000 0000 1100
& 0000 0000 0000 1000

0000 0000 0000 1000

8.5.2、“按位或”運(yùn)算(|)

“按位或”運(yùn)算的運(yùn)算符為(|),它的運(yùn)算法則是,兩個(gè)操作數(shù)的二進(jìn)制表示,只有對(duì)應(yīng)位都為0,結(jié)果才為0,否則為1。如果兩個(gè)操作數(shù)的精度不同,則結(jié)果的精度與精度高的操作數(shù)相同。看下方4|8的運(yùn)算過(guò)程。

   #4|8的運(yùn)算過(guò)程
   0000 0000 0000 0100
|  0000 0000 0000 1000 
0000 0000 0000 1100

8.5.3、“按位異或”運(yùn)算(^)

“按位異或”運(yùn)算的運(yùn)算符為(^),它的運(yùn)算法則是,兩個(gè)操作數(shù)的二進(jìn)制表示相同(同時(shí)為0或同時(shí)為1),結(jié)果才為0,否則為1。如果兩個(gè)操作數(shù)的精度不同,則結(jié)果的精度與精度高的操作數(shù)相同??聪路?|8的運(yùn)算過(guò)程??聪路?1^22的運(yùn)算過(guò)程。

     #31^22的運(yùn)算過(guò)程
     0000 0000 0001 1111
^    0000 0000 0001 0110

0000 0000 0000 1001

8.5.4、“按位取反”運(yùn)算(~)

“按位取反”運(yùn)算也稱“按位非”運(yùn)算,運(yùn)算符為“~”。“按位取反”運(yùn)算就是將操作位數(shù)對(duì)應(yīng)二進(jìn)制中的1改為0,0改為1,如下所示:

     #~123的運(yùn)算過(guò)程
~    0000 0000 0111 1011

1111 1111 1000 0100

在Python中,使用函數(shù)print()函數(shù)輸出8.5.1~8.5.4的運(yùn)算結(jié)果,代碼如下:

print("12&8 = "+str(12&8))     #按位與計(jì)算整數(shù)的結(jié)果
print("4|8 = "+str(4|8))       #按位或計(jì)算整數(shù)的結(jié)果
print("31^22 = "+str(31^22))   #按位異或計(jì)算整數(shù)的結(jié)果
print("~123 = "+str(~123))     #按位取反計(jì)算整數(shù)的結(jié)果

運(yùn)算結(jié)果如下:

12&8 = 8
4|8 = 12
31^22 = 9
~123 = -124
>>> 

8.5.5、“左移位”運(yùn)算(<<)

“左移位”運(yùn)算的運(yùn)算符為“<<”,它的運(yùn)算法則是將第一個(gè)二進(jìn)制操作數(shù)向左移動(dòng)指定的位數(shù),左邊(高位端)溢出的被丟棄,右邊(低位端)的空位用0補(bǔ)充。左移位運(yùn)算相對(duì)于乘以2的N次方。

列:int類型的數(shù)據(jù)48對(duì)應(yīng)的二進(jìn)制數(shù)位00110000,將左移一位,根據(jù)左移位運(yùn)算符的運(yùn)算規(guī)則得出(00110000<<1)=01100000,所以轉(zhuǎn)換為十進(jìn)制數(shù)就是96(48*2);將其左移2位,根據(jù)左移位運(yùn)算符的運(yùn)算規(guī)則可以得出(00110000<<2)=11000000,所以轉(zhuǎn)換為十進(jìn)制數(shù)就是192,(48*2的2次方),執(zhí)行過(guò)程如下:

#左移位運(yùn)算過(guò)程
十進(jìn)制:48                 00110000(左移1位)
十進(jìn)制:96      (0被丟棄)01100000(左移后補(bǔ)0)(左移2位)
十進(jìn)制:192     (0被丟棄)11000000(左移后補(bǔ)0)      

8.5.6、“右移位”運(yùn)算(>>)

“右移位”運(yùn)算的運(yùn)算符為“>>”,它的運(yùn)算法則是將第一個(gè)二進(jìn)制操作數(shù)向右移動(dòng)指定的位數(shù),右邊(低位端)溢出的位被丟棄,而當(dāng)填充左邊(高位端)的空位是,如果高位端是0(正數(shù)),則左側(cè)空位填入0;如果最高位是1(負(fù)數(shù)),則左側(cè)空位填入1。右移位運(yùn)算相對(duì)于除以2的N次方。

正數(shù)的右移運(yùn)算過(guò)程:

#正數(shù)48右移1位的運(yùn)算過(guò)程
十進(jìn)制:48        00110000
        右移1位             
十進(jìn)制:24        00011000
   左側(cè)右移后補(bǔ)0    右側(cè)0被舍棄 

負(fù)數(shù)的右移位的運(yùn)算過(guò)程:

#負(fù)數(shù)-80的右移2位的運(yùn)算過(guò)程:
十進(jìn)制:-80     10110000
        右移2位
十進(jìn)制:-20     11101100
   左側(cè)右移后補(bǔ)1   右側(cè)0倍舍棄  

站長(zhǎng)在線微信提示:由于位移運(yùn)算的速度很快,因此當(dāng)程序中遇到表達(dá)式乘以或者除以2的N次方的情況下,一般采用位移運(yùn)算來(lái)代替。

例如:使用位移運(yùn)算符對(duì)密碼進(jìn)行加密解密。

idle中創(chuàng)建一個(gè)名為jiamijiemi.py的文件,然后再該文件中定義兩個(gè)變量:一個(gè)用于保存密碼,另一個(gè)用于保存加密參數(shù)。然后應(yīng)用左移位運(yùn)算符實(shí)現(xiàn)加密,并輸出結(jié)果,最后應(yīng)用右移位運(yùn)算符實(shí)現(xiàn)解密,輸出結(jié)果代碼如下:

password = 87654321           # 密碼
key = 7                       # 加密參數(shù)
print("\n原密碼:",password)  # 輸出原密碼
password = password << key    # 將原密碼左移,生成新的數(shù)字
print("\n加密后:",password)  # 輸出加密后的密碼
password = password >> key    # 將新密碼右移,還原密碼
print("\n解密后:",password)  # 輸出解密后的密碼

運(yùn)行結(jié)果:

原密碼: 87654321

加密后: 11219753088

解密后: 87654321
>>> 

以上就是對(duì)密碼進(jìn)行加密和解密的結(jié)果。

下節(jié)預(yù)告:零基礎(chǔ)Python完全自學(xué)教程9:Python中運(yùn)算符的優(yōu)先級(jí)和條件表達(dá)式

本課內(nèi)容比較多,且無(wú)課后習(xí)題。

上期答案:7.1、ABCD   7.2、BCD


文末福利:

1、關(guān)注站長(zhǎng)在線官方公眾號(hào)站長(zhǎng)在線微信號(hào):olzzcom ,文末也有公眾號(hào)二維碼,關(guān)注公眾號(hào)以后回復(fù)python,本站精心整理的Python書(shū)籍、軟件、工具都實(shí)時(shí)更新哦!本站所安裝的python3.10、IDLE中文版 、PyCharmVisual Studio Code、Sublime Text4等都在里面哦!

2、站長(zhǎng)在線官方微信交流群已經(jīng)開(kāi)通了,微信掃碼進(jìn)入,一起交流,一起進(jìn)步!



本文地址:http://003188.cn/pythonyunsuanfu.html
碼字不易,打個(gè)賞唄
楊澤業(yè)感謝你的支持!

猜你喜歡

域名pythonw.cn出售

域名pythonw.cn的詳細(xì)信息:Python網(wǎng)

2022-08-06  分類:域名出售  瀏覽:1375次


站長(zhǎng)在線Python教程:Python中類定義詳解

導(dǎo)讀:歡迎你來(lái)到站長(zhǎng)在線的站長(zhǎng)學(xué)堂學(xué)習(xí)Python知識(shí),本文學(xué)習(xí)的是《Python中類定義詳解》。

2022-02-23  分類:Python學(xué)堂  瀏覽:1899次


站長(zhǎng)在線Python教程:python中面向?qū)ο笙嚓P(guān)概述詳解

導(dǎo)讀:歡迎你來(lái)到站長(zhǎng)在線的站長(zhǎng)學(xué)堂學(xué)習(xí)Python知識(shí),本文學(xué)習(xí)的是《python中面向?qū)ο笙嚓P(guān)概述詳解》。本文的主要內(nèi)容有:面向?qū)ο笫鞘裁?、面向?qū)ο笾械膶?duì)象是什么、Python中的類是什么、面向?qū)ο缶幊痰奶攸c(diǎn)有哪些?

2022-02-14  分類:Python學(xué)堂  瀏覽:1617次


站長(zhǎng)在線零基礎(chǔ)Python完全自學(xué)教程23:函數(shù)的返回值、作用域和匿名函數(shù)

導(dǎo)讀:歡迎你來(lái)到站長(zhǎng)學(xué)堂,學(xué)習(xí)站長(zhǎng)在線出品的在線課程《零基礎(chǔ) Python完全自學(xué)教程》今天給大家分享的是第23課《函數(shù)的返回值、作用域和匿名函數(shù)》。本文是一個(gè)大課程分成了下面4節(jié)小課程:Python中函數(shù)的返回值、Python函數(shù)中的局部變量、Python函數(shù)中的全局變量、Python函數(shù)中的匿名函數(shù)等內(nèi)容。

2022-02-09  分類:Python學(xué)堂  瀏覽:1487次


站長(zhǎng)在線Python教程:Python函數(shù)中的匿名函數(shù)詳解

歡迎你來(lái)到站長(zhǎng)在線的站長(zhǎng)學(xué)堂學(xué)習(xí)Python知識(shí),本文學(xué)習(xí)的是《Python函數(shù)中的匿名函數(shù)詳解》。本文的主要內(nèi)容有:匿名函數(shù)的定義、匿名函數(shù)的表達(dá)式、匿名函數(shù)的注意點(diǎn)、匿名函數(shù)的優(yōu)點(diǎn)、匿名函數(shù)的應(yīng)用舉例。

2022-02-01  分類:Python學(xué)堂  瀏覽:1603次


站長(zhǎng)在線Python教程精講:在Python函數(shù)中的全局變量詳解

歡迎你來(lái)到站長(zhǎng)在線的站長(zhǎng)學(xué)堂學(xué)習(xí)Python知識(shí),本文學(xué)習(xí)的是《Python中的全局變量詳解》。本文的主要內(nèi)容有:什么是全局變量、在函數(shù)外部定義的變量是全局變量、在函數(shù)內(nèi)部定義中添加global關(guān)鍵詞后變成全局變量。

2022-01-10  分類:Python學(xué)堂  瀏覽:1719次


站長(zhǎng)在線Python教程精講:在Python函數(shù)中的局部變量詳解

導(dǎo)讀:歡迎你來(lái)到站長(zhǎng)在線的站長(zhǎng)學(xué)堂學(xué)習(xí)Python知識(shí),本文學(xué)習(xí)的是《在Python函數(shù)中的局部變量詳解》。本文的主要內(nèi)容有:變量的作用域的概念、局部變量的概念、局部變量的舉例。

2022-01-06  分類:Python學(xué)堂  瀏覽:1620次


Python常用英語(yǔ)及用法

站長(zhǎng)在線站長(zhǎng),準(zhǔn)備系統(tǒng)的學(xué)習(xí)Python知識(shí),但是對(duì)我來(lái)說(shuō),英語(yǔ)實(shí)在是太差了,當(dāng)然我知道的是,不僅僅我,很多人在學(xué)習(xí)Python的時(shí)候,也是不知道這些英語(yǔ)單詞的意思與用法的,在這里站長(zhǎng)在線站長(zhǎng)就把這些英語(yǔ)整理出來(lái),把英語(yǔ)以及中文意思、用法一起貼出來(lái),讓大家一起來(lái)學(xué)習(xí)。

2022-01-02  分類:Python學(xué)堂  瀏覽:1834次


站長(zhǎng)在線Python精講:Python中函數(shù)的返回值

導(dǎo)讀:歡迎你來(lái)到站長(zhǎng)在線的站長(zhǎng)學(xué)堂學(xué)習(xí)Python知識(shí),本文學(xué)習(xí)的是《Python中函數(shù)的返回值》。本文的主要內(nèi)容有:函數(shù)的返回值的含義、函數(shù)設(shè)置返回值的作用、return語(yǔ)句位置與多條 return語(yǔ)句的總結(jié)。

2021-12-29  分類:Python學(xué)堂  瀏覽:1793次


站長(zhǎng)在線零基礎(chǔ)Python完全自學(xué)教程22:在Python中函數(shù)的參數(shù)傳遞

歡迎你來(lái)到站長(zhǎng)學(xué)堂,學(xué)習(xí)站長(zhǎng)在線出品的在線課程《零基礎(chǔ) Python完全自學(xué)教程》今天給大家分享的是第22課《在Python中函數(shù)的參數(shù)傳遞》。本文是一個(gè)大課程分成了下面5節(jié)小課程:在Python函數(shù)中理解形式參數(shù)和實(shí)際參數(shù)、在Python函數(shù)中參數(shù)傳遞的位置參數(shù)詳解、在Python函數(shù)中的關(guān)鍵字參數(shù)詳解、在Python函數(shù)中的默認(rèn)參數(shù)詳解、在Python函數(shù)中的可變參數(shù)詳解。

2021-12-26  分類:Python學(xué)堂  瀏覽:1583次