多段实例代码详解7大类Python运算符,建议收藏!
導(dǎo)讀:本文主要介紹Python運(yùn)算符。舉個(gè)簡(jiǎn)單的例子:4+5=9,其中,4和5被稱為操作數(shù),+稱為運(yùn)算符。Python語(yǔ)言支持以下類型的運(yùn)算符:算術(shù)運(yùn)算符、比較(關(guān)系)運(yùn)算符、賦值運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符、成員運(yùn)算符、身份運(yùn)算符、運(yùn)算符優(yōu)先級(jí)。下面分別介紹這些運(yùn)算符的相關(guān)內(nèi)容。
作者:劉鵬 高中強(qiáng) 王一凡?等
來(lái)源:大數(shù)據(jù)DT(ID:hzdashuju)
01 算術(shù)運(yùn)算符
假設(shè)變量a=10,b=20,Python中算術(shù)運(yùn)算符及其實(shí)例如下所示。
+
加:兩個(gè)對(duì)象相加
a+b:30
-
減:得到負(fù)數(shù)或是一個(gè)數(shù)減去另一個(gè)數(shù)
a–b:-10
*
乘:兩個(gè)數(shù)相乘或是返回一個(gè)被重復(fù)若干次的字符串
a*b:200
/
除:x除以y
b/a:2
%
取模:返回除法的余數(shù)
b%a:0
**
冪:返回x的y次冪
a**b:100000000000000000000
//
取整除:返回商的整數(shù)部分(向下取整)
9//2:4
-9//2:-5
以下實(shí)例演示了Python所有算術(shù)運(yùn)算符的操作:
a?=?21 b?=?10? c?=?0? c?=?a?+?b? print?("1 - c 的值為:",?c) c?=?a?-?b? print?("2 - c 的值為:",?c) c?=?a?*?b? print?("3 - c 的值為:",?c)? c?=?a?/?b? print?("4 - c 的值為:",?c)? c?=?a?%?b? print?("5 - c 的值為:",?c)? #?修改變量?a?、b?、c a?=?2? b?=?3? c?=?a**b? print?("6 - c 的值為:",?c)? a?=?10? b?=?5? c?=?a//b? print?("7 - c 的值為:",?c)輸出結(jié)果為:
1?- c 的值為:31 2?- c 的值為:11 3?- c 的值為:210 4?- c 的值為:2.1 5?- c 的值為:1 6?- c 的值為:8 7?- c 的值為:2有一點(diǎn)要注意,在Python 2.x中,整數(shù)除整數(shù),只能得出整數(shù)。如果要得到小數(shù)部分,則需要其中一個(gè)數(shù)改成浮點(diǎn)數(shù)。例如:
1/2? 01.0/2 0.51/float(2) 0.502 比較運(yùn)算符
假設(shè)變量a=10,b=20,Python中比較運(yùn)算符及其實(shí)例如表下所示。
==
等于:比較對(duì)象是否相等
(a==b):返回false
!=
不等于:比較兩個(gè)對(duì)象是否不相等
(a != b):返回true
< >
不等于:比較兩個(gè)對(duì)象是否不相等(Python 3已廢棄)
(a <> b):返回true
這個(gè)運(yùn)算符與!=類似
>
大于:返回x是否大于y
(a>b):返回false
<
小于:返回x是否小于y。所有比較運(yùn)算符返回1表示真,返回0表示假。這分別與特殊變量true和false等價(jià)
(a<b):返回true
>=
大于等于:返回x是否大于等于y
(a>=b):返回false
<=
小于等于:返回x是否小于等于y
(a<=b):返回true
以下實(shí)例演示了Python所有比較運(yùn)算符的操作:
a?=?21 b?=?10 c?=?0 if?a?==?b?:print?("1?-?a?等于?b") else:print?("1?-?a?不等于?b") if?a?!=?b?:print?("2?-?a?不等于?b") else:print?("2?-?a?等于?b") if?a?<?b?:print?("3?-?a?小于?b") else:print?("3?-?a?大于等于?b") if?a?>?b?:print?("4?-?a?大于?b") else:print?("4?-?a?小于等于?b") #?修改變量?a?和?b?的值 a?=?5 b?=?20 if?a?<=?b?:print?("5?-?a?小于等于?b") else:print?("5?-?a?大于?b") if?b?>=?a?:print?("6?-?b?大于等于?a") else:print?("6?-?b?小于?a")輸出結(jié)果為:
1?-?a?不等于?b 2?-?a?不等于?b 3?-?a?大于等于?b 4?-?a?大于?b 5?-?a?小于等于?b 6?-?b?大于等于?a03 賦值運(yùn)算符
假設(shè)變量a=10,b=20,Python中賦值運(yùn)算符及其實(shí)例如下所示。
=
簡(jiǎn)單的賦值運(yùn)算符
c=a+b:將a+b的運(yùn)算結(jié)果賦值為c
+=
加法賦值運(yùn)算符
c+=a:等效于c=c+a
-=
減法賦值運(yùn)算符
c-=a:等效于c=c-a
*=
乘法賦值運(yùn)算符
c*=a:等效于c=c*a
/=
除法賦值運(yùn)算符
c/=a:等效于c=c/a
%=
取模賦值運(yùn)算符
c%=a:等效于c=c%a
**=
冪賦值運(yùn)算符
c**=a:等效于c=c**a
//=
取整除賦值運(yùn)算符
c//=a:等效于c=c//a
以下實(shí)例演示了Python所有賦值運(yùn)算符的操作:
a?=?21? b?=?10? c?=?0? c?=?a?+?b? print?("1 - c 的值為:",?c?) c?+=?a? print?("2 - c 的值為:",?c)? c?*=?a? print?("3 - c 的值為:",?c)? c?/=?a? print?("4 - c 的值為:",?c) c?=?2? c?%=?a? print?("5 - c 的值為:",?c) c?**=?a? print?("6 - c 的值為:",?c)? c?//=?a? print?("7 - c 的值為:",?c)輸出結(jié)果為:
1?- c 的值為:31 2?- c 的值為:52 3?- c 的值為:1092 4?- c 的值為:52 5?- c 的值為:2 6?- c 的值為:2097152 7?- c 的值為:9986404 按位運(yùn)算符
按位運(yùn)算符是把數(shù)字看作二進(jìn)制來(lái)進(jìn)行計(jì)算。假設(shè)變量a=60,b=13,Python中按位運(yùn)算符及其實(shí)例如下所示。
&
按位與運(yùn)算符:參與運(yùn)算的兩個(gè)值,如果兩個(gè)對(duì)應(yīng)位都為1,則該位的結(jié)果為1,否則為0
(a&b)輸出結(jié)果:12
二進(jìn)制解釋:0000 1100
|
按位或運(yùn)算符:只要對(duì)應(yīng)的兩個(gè)二進(jìn)位有一個(gè)為1時(shí),結(jié)果位就為1
(a|b)輸出結(jié)果:61
二進(jìn)制解釋:0011 1101
^
按位異或運(yùn)算符:當(dāng)兩個(gè)對(duì)應(yīng)的二進(jìn)位相異時(shí),結(jié)果為1
(a^b)輸出結(jié)果:49
二進(jìn)制解釋:0011 0001
~
按位取反運(yùn)算符:對(duì)數(shù)據(jù)的每個(gè)二進(jìn)制位取反,即把1變?yōu)?,把0變?yōu)?。~x類似于-x-1
(~a)輸出結(jié)果:-61
二進(jìn)制解釋:1100 0011
在一個(gè)有符號(hào)二進(jìn)制數(shù)的補(bǔ)碼形式
<<
左移動(dòng)運(yùn)算符:運(yùn)算數(shù)的各二進(jìn)位全部左移若干位,由<<右邊的數(shù)字指定移動(dòng)的位數(shù),高位丟棄,低位補(bǔ)0
a<<2輸出結(jié)果:240
二進(jìn)制解釋:1111 0000
>>
右移動(dòng)運(yùn)算符:把>>左邊的運(yùn)算數(shù)的各二進(jìn)位全部右移若干位,由>>右邊的數(shù)字指定移動(dòng)的位數(shù)
a>>2輸出結(jié)果:15
二進(jìn)制解釋:0000 1111
以下實(shí)例演示了Python所有位運(yùn)算符的操作:
a?=?60#?60?=?0011?1100? b?=?13#?13?=?0000?1101? c?=?0? c?=?a?&?b;#?12?=?0000?1100? print?("1 - c 的值為:",?c) c?=?a?|?b;#?61?=?0011?1101? print?("2 - c 的值為:",?c)? c?=?a?^?b;#?49?=?0011?0001? print?("3 - c 的值為:",?c)? c?=?~a;#?-61?=?1100?0011? print?("4 - c 的值為:",?c)? c?=?a?<<?2;#?240?=?1111?0000? print?("5 - c 的值為:",?c)? c?=?a?>>?2;#?15?=?0000?1111? print?("6 - c 的值為:",?c)輸出結(jié)果為:
1?- c 的值為:12 2?- c 的值為:61 3?- c 的值為:49 4?- c 的值為:-61 5?- c 的值為:240 6?- c 的值為:1505 邏輯運(yùn)算符
假設(shè)變量a=10,b=20,Python中邏輯運(yùn)算符及其實(shí)例如下所示。
and
x and y
布爾與:如果x為false,x and y返回false,否則它返回y的計(jì)算值
(a and b)返回20
or
x or y
布爾或:如果x是非0,返回x的計(jì)算值,否則返回y的計(jì)算值
(a or b)返回10
not
not x
布爾非:如果x為true,返回false。如果x為false,返回true
not(a and b)返回False
以下實(shí)例演示了Python所有邏輯運(yùn)算符的操作:
a?=?10? b?=?20? if?a?and?b?:?print?("1?-?變量?a?和?b?都為?true")? else:?print?("1?-?變量?a?和?b?有一個(gè)不為?true")? if?a?or?b?:?print?("2?-?變量?a?和?b?都為?true,或其中一個(gè)變量為?true")? else:?print?("2?-?變量?a?和?b?都不為?true")?#?修改變量?a?的值? a?=?0? if?a?and?b?:?print?("3?-?變量?a?和?b?都為?true")? else:?print?("3?-?變量?a?和?b?有一個(gè)不為?true")? if?a?or?b?:?print?("4?-?變量?a?和?b?都為?true,或其中一個(gè)變量為?true")? else:?print?("4?-?變量?a?和?b?都不為?true")? if?not(?a?and?b?):?print?("5?-?變量?a?和?b?都為?false,或其中一個(gè)變量為?false")? else:?print?("5?-?變量?a?和?b?都為?true")輸出結(jié)果為:
1?-?變量?a?和?b?都為?true 2?-?變量?a?和?b?都為?true,或其中一個(gè)變量為?true 3?-?變量?a?和?b?有一個(gè)不為?true 4?-?變量?a?和?b?都為?true,或其中一個(gè)變量為?true 5?-?變量?a?和?b?都為?false,或其中一個(gè)變量為?false06 成員運(yùn)算符
除了以上運(yùn)算符外,Python還支持成員運(yùn)算符。以下測(cè)試實(shí)例中包含一系列成員,例如字符串、列表或元組,如下所示。
in
如果在指定的序列中找到值,返回true,否則返回false
x在y序列中:如果x在y序列中,則返回True
not in
如果在指定的序列中沒(méi)有找到值,返回true,否則返回false
x不在y序列中:如果x不在y序列中,則返回True
以下實(shí)例演示了Python所有成員運(yùn)算符的操作:
a?=?10? b?=?20? list?=?[1,?2,?3,?4,?5?];? if?(?a?in?list):?print?("1?-?變量?a?在給定的列表list中")? else:?print?("1?-?變量?a?不在給定的列表list中") if?(?b?not?in?list?):?print?("2?-?變量?b?不在給定的列表list中") else:?print?("2?-?變量?b?在給定的列表list中") #?修改變量?a?的值? a?=?2? if?(?a?in?list?):?print?("3?-?變量?a?在給定的列表list中") else:?print?("3?-?變量?a?不在給定的列表list?中")輸出結(jié)果為:
1?-?變量?a?不在給定的列表list?中 2?-?變量?b?不在給定的列表list?中 3?-?變量?a?在給定的列表list?中07 身份運(yùn)算符
身份運(yùn)算符用于比較兩個(gè)對(duì)象的存儲(chǔ)單元,如下所示。
is
is用于判斷兩個(gè)標(biāo)識(shí)符是否引自一個(gè)對(duì)象
X is y,類似id(x)==id(y),如果引用的是同一個(gè)對(duì)象,則返回true,否則返回false
is not
is not用于判斷兩個(gè)標(biāo)識(shí)符是否引自不同對(duì)象
x is not y,類似id(a)!=id(b)。如果引用的不是同一個(gè)對(duì)象,則返回結(jié)果true,否則返回false
以下實(shí)例演示了Python所有身份運(yùn)算符的操作:
a?=?20? b?=?20? if?(?a?is?b?):?print?("1?-?a?和?b?有相同的標(biāo)識(shí)")? else:?print?("1?-?a?和?b?沒(méi)有相同的標(biāo)識(shí)")? if?(?a?is?not?b?):?print?("2?-?a?和?b?沒(méi)有相同的標(biāo)識(shí)")? else:?print?("2?-?a?和?b?有相同的標(biāo)識(shí)")?#?修改變量?b?的值? b?=?30? if?(?a?is?b?):?print?("3?-?a?和?b?有相同的標(biāo)識(shí)")? else:?print?("3?-?a?和?b?沒(méi)有相同的標(biāo)識(shí)")? if?(?a?is?not?b?):?print?("4?-?a?和?b?沒(méi)有相同的標(biāo)識(shí)")? else:?print?("4?-?a?和?b?有相同的標(biāo)識(shí)")輸出結(jié)果為:
1?-?a?和?b?有相同的標(biāo)識(shí) 2?-?a?和?b?有相同的標(biāo)識(shí) 3?-?a?和?b?沒(méi)有相同的標(biāo)識(shí) 4?-?a?和?b?沒(méi)有相同的標(biāo)識(shí)is與==的區(qū)別在于:is用于判斷兩個(gè)變量引用的對(duì)象是否為同一個(gè)(同一塊內(nèi)存空間),==用于判斷引用變量的值是否相等。例如:
a?=?[1,?2,?3] b?=?ab?is?a Trueb?==?a Trueb?=?a[?:?] b?is?a Falseb?==?a True08 運(yùn)算符優(yōu)先級(jí)
按優(yōu)先級(jí)從高到低的順序?qū)λ羞\(yùn)算符排序,結(jié)果如表下所示。
**
指數(shù)(最高優(yōu)先級(jí))
~ + -
按位翻轉(zhuǎn),一元加號(hào)和減號(hào)(最后兩個(gè)的方法名為+@和-@)
* / % //
乘、除、取模和取整除
+ -
加法減法
>> <<
右移、左移運(yùn)算符
&
位AND
^ |
位運(yùn)算符
<=?< >?>=
比較運(yùn)算符
<>?==?!=
等于運(yùn)算符
= %= /= //= -= += *= **=
賦值運(yùn)算符
is is not
身份運(yùn)算符
in not in
成員運(yùn)算符
not and or
邏輯運(yùn)算符
以下實(shí)例演示了Python中不同運(yùn)算符按照不同優(yōu)先級(jí)的操作:
a?=?20? b?=?10? c?=?15? d?=?5? e?=?0? e?=?(a?+?b)?*?c?/?d#?(?30?*?15?)?/?5? print?("(a + b)?* c / d 運(yùn)算結(jié)果為:",?e?) e?=?((a?+?b)?*?c)?/?d#?(30?*?15?)?/?5? print?("((a + b)?* c)?/ d 運(yùn)算結(jié)果為:",?e)? e?=?(a?+?b)?*?(c?/?d);#?(30)?*?(15/5)? print?("(a + b)?*?(c / d)?運(yùn)算結(jié)果為:",?e)? e?=?a?+?(b?*?c)?/?d;#?20?+?(150/5)? print?("a +?(b * c)?/ d 運(yùn)算結(jié)果為:",?e)輸出結(jié)果為:
(a + b)?* c / d 運(yùn)算結(jié)果為:90 ((a + b)?* c)?/ d 運(yùn)算結(jié)果為:90 (a + b)?*?(c / d)?運(yùn)算結(jié)果為:90 a +?(b * c)?/ d 運(yùn)算結(jié)果為:50關(guān)于作者:劉鵬,教授,清華大學(xué)博士,云計(jì)算、大數(shù)據(jù)和人工智能領(lǐng)域的知名專家,南京云創(chuàng)大數(shù)據(jù)科技股份有限公司總裁、中國(guó)大數(shù)據(jù)應(yīng)用聯(lián)盟人工智能專家委員會(huì)主任。中國(guó)電子學(xué)會(huì)云計(jì)算專家委員會(huì)云存儲(chǔ)組組長(zhǎng)、工業(yè)和信息化部云計(jì)算研究中心專家。
高中強(qiáng),人工智能與大數(shù)據(jù)領(lǐng)域技術(shù)專家,有非常深厚的積累,擅長(zhǎng)機(jī)器學(xué)習(xí)和自然語(yǔ)言處理,尤其是深度學(xué)習(xí),熟悉Tensorflow、PyTorch等深度學(xué)習(xí)開發(fā)框架。曾獲“2019年全國(guó)大學(xué)生數(shù)學(xué)建模優(yōu)秀命題人獎(jiǎng)”。參與鐘南山院士指導(dǎo)新型冠狀病毒人工智能預(yù)測(cè)系統(tǒng)研發(fā)項(xiàng)目,與鐘南山院士團(tuán)隊(duì)共同發(fā)表學(xué)術(shù)論文。
本文摘編自《Python金融數(shù)據(jù)挖掘與分析實(shí)戰(zhàn)》,經(jīng)出版方授權(quán)發(fā)布。(ISBN:9787111696506)
《Python金融數(shù)據(jù)挖掘與分析實(shí)戰(zhàn)》
點(diǎn)擊上圖了解及購(gòu)買
轉(zhuǎn)載請(qǐng)聯(lián)系微信:DoctorData
推薦語(yǔ):云創(chuàng)大數(shù)據(jù)(上市公司)總裁撰寫,零基礎(chǔ)學(xué)會(huì)金融數(shù)據(jù)挖掘,配有案例、視頻、代碼、數(shù)據(jù)、習(xí)題及答案。
劃重點(diǎn)👇
干貨直達(dá)👇
4918字,詳解商品系統(tǒng)的存儲(chǔ)架構(gòu)設(shè)計(jì)
人工智能、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)的關(guān)系,終于有人講明白了
首次公開,用了三年的 pandas 速查表!
盤點(diǎn)數(shù)據(jù)治理的6個(gè)價(jià)值
更多精彩👇
在公眾號(hào)對(duì)話框輸入以下關(guān)鍵詞
查看更多優(yōu)質(zhì)內(nèi)容!
讀書?|?書單?|?干貨?|?講明白?|?神操作?|?手把手
大數(shù)據(jù)?|?云計(jì)算?|?數(shù)據(jù)庫(kù)?|?Python?|?爬蟲?|?可視化
AI?|?人工智能?|?機(jī)器學(xué)習(xí)?|?深度學(xué)習(xí)?|?NLP
5G?|?中臺(tái)?|?用戶畫像?|?數(shù)學(xué)?|?算法?|?數(shù)字孿生
據(jù)統(tǒng)計(jì),99%的大咖都關(guān)注了這個(gè)公眾號(hào)
👇
總結(jié)
以上是生活随笔為你收集整理的多段实例代码详解7大类Python运算符,建议收藏!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: DSP精华资料
- 下一篇: ASP.NET Form Authent