日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 对象的异或运算符_python的运算符

發(fā)布時間:2023/12/15 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 对象的异或运算符_python的运算符 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

算數(shù)運算符

算數(shù)運算符主要用作于計算機的算數(shù)運算

種類符號作用+加法、字符串的拼接

-減法

*乘法、字符串的重復(fù)

/除法

//地板除(除法)

%取余(除法)

**冪運算

+#?數(shù)字類型的加法運算

print(1?+?1)????????????????#?2

print(False?+?1)????????????#?1

print(0j?+?1)???????????????#?(1+0j)

#?字符串的拼接

var1?=?'hello'

var2?=?'motherland'

print(var1?+?'?'?+?var2)????#?hello?motherland

*#?數(shù)字類型的乘法運算

print(1?*?1)????????????????#?1

print(False?*?1)????????????#?0

print(0j?*?1)???????????????#?0j

#?字符串的重復(fù)

var1?=?'hello'

print(var1)?????????????????#?hello

print(var1?*?2)?????????????#?hellohello

print(var1?*?3)?????????????#?hellohellohello

/#?數(shù)字類型的除法運算,結(jié)果總是小數(shù),至少返回一位小數(shù)

print(1?/?1)????????????????#?1.0

print(False?/?1)????????????#?0.0

#?print(False?/?False)????????#?除數(shù)不能為0

print(10?/?5)???????????????#?2.0

print(10?/?3)???????????????#?3.3333333333333335

print(10?/?2.25)????????????#?4.444444444444445

//#?數(shù)字類型的除法運算

#?//?的運算結(jié)果只有在除數(shù)或者是被除數(shù)為小數(shù)的時候才是小數(shù),并且永遠是一位小數(shù),小數(shù)位為0

print(1?//?1)????????????????#?1

print(100?//?5)??????????????#?20

print(10.9?//?1)?????????????#?10.0

print(10?//?1.5)?????????????#?6.0

print(10.5?//?1.1)???????????#?9.0

print(10.0?//?3)?????????????#?3.0

%#?不會將數(shù)除盡,求出除法中的余數(shù)

print(10?%?3)???????#?1

#?如果被除數(shù)和除數(shù)都是負數(shù),余數(shù)是正常余數(shù)取反

#?如果除數(shù)是負數(shù),余數(shù)是正常余數(shù)+除數(shù)

#?如果被除數(shù)是負數(shù),余數(shù)就是第二種情況的取反

print(10?%?3)???????#?1

print(-10?%?-3)???????#?-1

print(10?%?-3)???????#?-2

print(-10?%?3)???????#?2

print(11?%?4)???????#?3

print(-11?%?-4)?????#?-3

print(11?%?-4)??????#?-1

print(-11?%?4)??????#?1

print(15?%?6)???????#?3

print(-15?%?-6)?????#?-3

print(15?%?-6)??????#?-3

print(-15?%?6)??????#?3

**#?求一個數(shù)的冪次方

print(2?**?1)???????#?2

print(2?**?2)???????#?4

print(2?**?3)???????#?8

print(2?**?4)???????#?16

-#?數(shù)字類型的減法運算

print(1?-?1)????????????????#?0

print(False?-?1)????????????#?-1

print(0j?-?1)???????????????#?(-1+0j)

比較運算符

概念比較兩個值是否相同,結(jié)果只會是布爾值,條件成立返回True,反之False;

可以比較任何類型的數(shù)據(jù);

python沒有向其它語言中一樣區(qū)分等于和絕對等于的概念,等于就是絕對等于,是區(qū)分數(shù)據(jù)類型的;

種類符號作用>大于

>=大于等于

<=小于等于

==等于

!=不等于print(1234?==?'1234')???????#?False

print(1234?==?1234)?????????#?True

賦值運算符

概念給某個數(shù)據(jù)賦予新的值

除了=之外的其它賦值運算符,都是在算數(shù)運算符的基礎(chǔ)上添加了=,使用的方法則和原有的意義基本相同,是將算數(shù)出來的結(jié)果替換原有的數(shù)據(jù)

比較兩個值是否相同,結(jié)果只會是布爾值,條件成立返回True,反之False;

python沒有其它語言的自增和自減概念;

種類符號作用=賦值

+=運算替換

-=運算替換

*=運算替換

/=運算替換

//=運算替換

%=運算替換

**=運算替換#?直接賦值

var?=?'msr'

print(var)??????#?msr

var?=?'hello'

print(var)??????#?hello

#?通過算數(shù)運算得出結(jié)果,然后替代原有的數(shù)據(jù)

var?*=?3

print(var)??????#?hellohellohello

成員運算符

作用

用于針對容器型數(shù)據(jù),查詢某個數(shù)據(jù)是否是容器當中的元素;返回布爾值,條件成立返回True,反之False;

種類符號作用in查詢的元素是否在容器當中

not in查詢的元素是否不在在容器當中

字符串#?只可以連續(xù)的元素,就是說不支持模糊查詢

var?=?'你是Java的大神,他是PHP的開發(fā)者,我是Python的小白。'

print('Java的大神'?in?var)?????????#?True

print('Python的小白'?not?in?var)???#?False

字典#?在字典當中只會判斷鍵,不會判斷值

var?=?{'及時雨':?'宋江',?'玉麒麟':?'盧俊義'}

print('及時雨'?in?var)??#?True

print('宋江'?in?var)??#?False

身份運算符

作用

檢測兩個數(shù)據(jù)在內(nèi)存當中是否是同一個值,返回布爾值

種類符號作用is是同一地址

is not不是同一地址

Python的內(nèi)存優(yōu)化整型:-5 ~~ 正無窮的范圍內(nèi)的數(shù)內(nèi)存地址相同

浮點型:非負數(shù)的內(nèi)存的地址相同

布爾型:同值內(nèi)存地址相同

復(fù)數(shù):實數(shù)+虛數(shù)的的格式永不相同

容器類型:只有字符串和空元組的情況相同intvar?=?100

strvar?=?'hello'

#?利用id()函數(shù)檢查是否是同一地址

res?=?id(intvar)?==?id(strvar)

print(res)??????#?False

#?使用身份運算符

res?=?intvar?is?strvar

print(res)??????#?fasle

邏輯運算符

作用

判斷運算符兩邊的布爾值,返回布爾值

種類符號作用特點and邏輯與:兩遍的數(shù)據(jù)都為真,返回True全真為真,一假則假

or邏輯或:兩遍的數(shù)據(jù)有一個為真,返回True全假為假,全假為假

not邏輯非:將后面的數(shù)據(jù)的邏輯值反轉(zhuǎn)真為假,假為真

and——邏輯與運算符兩遍的值都為真,返回真,其余情況返回假#?為真的概率低

res?=?True?and?True#?True

res?=?True?and?False#?False

res?=?False?and?True#?False

res?=?False?and?False#?False

or——邏輯與運算符兩遍的值都為假,返回假,其余情況返回真#?為假得概率低

res?=?True?or?True#?True

res?=?True?or?False#?True

res?=?False?or?True#?True

res?=?False?or?False#?False

not——邏輯非將左側(cè)的進行反轉(zhuǎn),真的轉(zhuǎn)為假,假的轉(zhuǎn)為真res?=?not?True#?False

res?=?not?False#?True

布爾值為假的十種情況還記得嗎???0 ? ? 0.0 ? ? ?0j ? ? ?False ? ? "" ? ? ?[] ? ? ?() ? ? ? set() ? ? {} ? ? ?None

邏輯短路True or 表達式

False and 表達式

在邏輯表達式中,or的特點是一真則真,所以True or首先是發(fā)現(xiàn)前面已經(jīng)有了真,所以or就無需再檢查后面的數(shù)據(jù)是真是假,直接返回前面的真,導(dǎo)致不在執(zhí)行后面的代碼,造成邏輯短路。

False and同理,and一假則假,所以當and前面出現(xiàn)假的時候,就不在需要知道后面的數(shù)據(jù)是真是假,直接返回假,造成邏輯短路。#?邏輯短路,不會執(zhí)行后面的print函數(shù)

True??or??print('hello?world')

False?and?print('hello?world')

#?沒有短路

False??or??print('hello?world')

True???and?print('hello?world')

邏輯運算符的優(yōu)先級() ? > ? not ? ?> ? ?and ? ? > ? ? or

和數(shù)學(xué)的運算一樣,要先運算括號內(nèi)的數(shù)據(jù)。

在多邏輯運算符的算數(shù)中,按照優(yōu)先級計算。0?or?6?and?not?9?and?(1?or?3)

#?按照優(yōu)先級依次運算,得出結(jié)果為False

位運算符

作用

位運算符用二進制數(shù)補碼進行運算

種類符號作用&按位與

|按位或

~按位非

^按位異或

<

>>右移位

&(按位與)

將數(shù)字的補碼中,同位數(shù)都為真的保留下來,組合成新數(shù)字19的補碼: ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0000 ... 10011

15的補碼: ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0000 ... 01111

同位數(shù)都為真的保留下來: ?0000 ... 00011 ?=> ?3print(15?&?19)

|(按位或)

將數(shù)字的補碼中,同位數(shù)只要有一個為真就保留下來,組合成新數(shù)字19的補碼: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0000 ... 10011

15的補碼: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0000 ... 01111

同位數(shù)一個為真的保留下來: ?0000 ... 11111 ?=> ?31print(15?|?19)

^(按位異或)

將數(shù)字的補碼中,同位數(shù)相同返回假,不同返回真,組合成新數(shù)字19的補碼: ? ? ? ? ? ? ? ? ? ? 0000 ... 10011

15的補碼: ? ? ? ? ? ? ? ? ? ? 0000 ... 01111

同位數(shù)不同的返回真: ?0000 ... 11100 ?=> ?28print(15?^?19)

<

整個數(shù)字向左移位,原位補0,組合成新數(shù)字

左移位相當于做乘法,左移n位,就相當于乘 2 的n次冪19的補碼:0001 ?0011

左移1位: ?0010 ?0110 ?=> ?38print(19?<

>>(右移位)

整個數(shù)字向右移位,原位補0,溢出消失,組合成新數(shù)字

右移位相當于做除法,左移n位,就相當于除以 2 的n次冪19的補碼:0001 0011

右移1位: ?0000 1001 ? => ?9print(19?>>?1)

~ 按位非

按位取反,包括符號位。

公式:-(n + 1)十進制數(shù):19

原碼: ? ?0001 0011

反碼: ? ?0001 0011

補碼: ? ?0001 0011(先得到一個數(shù)的補碼)

按位非:1110 1100(按位非,包括符號位在內(nèi)的全部取反)

補碼: ? ?1110 1100(結(jié)果還是補碼)

取反: ? ?1001 0011

原碼: ? ?1001 0100 (根據(jù)這個補碼還原的原碼)

十進制數(shù):-20-(19 + 1) = -20print(~19)

運算符總結(jié):

運算符種類算術(shù)運算符: ? ? ?+ ? ? ?- ? ? ?* ? ? ?/ ? ? ?// ? ? ?% ? ? ?**

比較運算符: ? ? ?> ? ? ?< ? ? ?>= ? ? ?<= ? ? ?== ? ? ?!=

賦值運算符: ? ? ?= ? ? ?+= ? ? ?-= ? ? ?*= ? ? ?/= ? ? ?//= ? ? ?%= ? ? ?**=

成員運算符: ? ? ?in ? ? 、 ?not in

身份運算符: ? ? ?is ? ? 、 ?is not

邏輯運算符: ? ? ?and ? 、 ? or ?、 ? ?not

位運算符: ? ? ? ? ?& ? ? ?| ? ? ?^ ? ? ?~ ? ? ?<< ? ? ?>>

運算符優(yōu)先級

權(quán)重從小之下當多種運算符混合使用:

算數(shù) ? ? ?> ? ? ?位 ? ? ?> ? ? ?比較 ? ? ?> ? ? ?身份 ? ? ?> ? ? ?成員 ? ? ?> ? ? ?邏輯 ? ? ?> ? ? ?賦值

一元運算符 ? ? ?> ? ? ?二元運算符

一元運算符:同一時間只操作一個值,比如按位非(~19)、邏輯非(not True)

二元運算符:同一時間操作兩個值,多數(shù)是這樣的,比如冪運算(2 ** 3)、邏輯與(True and False)

算數(shù)運算符:

冪運算 ? ? ?> ? ? ?乘除 ? ? ?> ? ? ?加減

位運算符:

按位非 ? ? ?> ? ? ?左右移 ? ? ?> ? ? ?按位與 ? ? ?> ? ? ?按位異或 ? ? ?> ? ? ?按位或

邏輯運算符:

() ? ? ?> ? ? ?not ? ? ?> ? ? ?and ? ? ?> ? ? ?or

賦值運算符:

= 最小

小經(jīng)驗

這是我的一點心得:

寫出機器看得懂的代碼是行業(yè)門欖,質(zhì)量高的代碼是行業(yè)的水準,讓人看得懂的代碼是行業(yè)的標桿。一個優(yōu)秀的編程工作者寫的代碼會看起來更加的直觀。

在編寫復(fù)雜的運算式的時候要注意盡量的讓代碼直觀,比如可以使用括號。下面的兩行運算式的結(jié)果一樣,但是給人的截然不同。#?你也可以試著根據(jù)運算符優(yōu)先級?推算一下結(jié)果

res?=?5?+?5?<

print(res)

res?=?(5+5)?<

print(res)

總結(jié)

以上是生活随笔為你收集整理的python 对象的异或运算符_python的运算符的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。