【Python基礎篇】你了解python中運算符嗎

文章目錄

  • 1. 算數運算符
    • 1.1 //整除
    • 1.2 %取模
    • 1.3 **冪
  • 2. 賦值運算符
  • 3. 位運算符
    • 3.1 &(按位與)
    • 3.2 |(按位或)
    • 3.3 ^(按位異或)
    • 3.4 ~(按位取反)
    • 3.5 <<(左移)
    • 3.6 >>(右移)
  • 4. 比較運算符
  • 5. 邏輯運算符
    • 5.1 and
    • 5.2 or
    • 5.3 not
  • 6. 成員運算符
    • 6.1 in
    • 6.2 not in
  • 7. 身份運算符

1. 算數運算符

算術運算符有:+、-、*、/、//、%、**,依次對應加、減
乘、除、整除、模、冪。
其中前四個就和數學中一樣,我們來說一下后面三個。

1.1 //整除

//就和它的名一樣,整除,就是運算后只會取整數部分。例如10除3它的結果就會等于3,舍去的余數部分。
代碼:

a = 10
b = 3
print(a // b)

運行結果:
在這里插入圖片描述

1.2 %取模

%就是取模,就是取余的意思,和//對立,//只要整數部分,那%就是只要余數部分。例如:10%3結果就是1。

a = 10
b = 3
print(a % b)

在這里插入圖片描述

1.3 **冪

** 就是冪的意思。例如:2 ** 3就相當于2的3次方,結果為8,2 ** 4就相當于2的4次方,結果為16。

a = 2
b = 4
print(a ** b)

在這里插入圖片描述

2. 賦值運算符

賦值運算符有:=、+=、-=、*=、/=、//=、%=,首先等=就是等號的意思,而后面的加等,減等……用起來其實都是一樣的,這里演示一個大家應該就懂了。
代碼演示:

a = 1
print(a)
a += 2  # 相當于a = a + 2,原本的a等于1,現在加上2,那么就等于3了
print(a)  # 打印結果為3

在這里插入圖片描述

后面的-=、*=、/=、//=、%=的應用和+=規則相同。

3. 位運算符

位運算符有:&、|、^、~、<<、>>, 依次是按位與、按位或、按位異或、按位取反、左移、右移。
位運算符用于對整數的二進制表示進行直接操作,就是運算時不是直接對變量進行運算,而是先轉換為二進制,對二進制整數操作。

3.1 &(按位與)

對每一位執行邏輯與操作。如果兩個相應的二進制位都為1,則該位的結果為1;否則為0。

a = 60  # 0011 1100  
b = 13  # 0000 1101  
c = a & b  # 0000 1100  
print(c)  # 輸出: 12

3.2 |(按位或)

對每一位執行邏輯或操作。如果兩個相應的二進制位中至少有一個為1,則該位的結果為1;否則為0。

a = 60  # 0011 1100  
b = 13  # 0000 1101  
c = a | b  # 0011 1101  
print(c)  # 輸出: 61

3.3 ^(按位異或)

對每一位執行邏輯異或操作。如果兩個相應的二進制位不相同,則該位的結果為1;如果相同,則為0。

a = 60  # 0011 1100  
b = 13  # 0000 1101  
c = a ^ b  # 0011 0001  
print(c)  # 輸出: 49

3.4 ~(按位取反)

對數的二進制表示進行取反操作。即將0變為1,將1變為0。需要注意的是,取反后的結果通常是補碼形式表示的負數(對于有符號整數而言),這取決于具體的位數和系統架構。

a = 60  # 0011 1100  
b = ~a  # 1100 0011...(取決于整數類型,這里假設是32位)  
# 注意:直接打印b會得到一個負數,因為Python使用補碼表示負數  
print(b)  # 輸出: -61(假設是32位系統)

3.5 <<(左移)

數的各二進制位全部左移若干位,由右側的數指定移動的位數,高位丟棄,低位補0。

a = 60  # 0011 1100  
b = a << 2  # 0011 1100 -> 1111 0000  
print(b)  # 輸出: 240

3.6 >>(右移)

數的各二進制位全部右移若干位,由右側的數指定移動的位數。對于無符號數,高位補0;對于有符號數,則取決于具體的系統,可能是補0或補1(即算術右移)。Python中的整數是有符號的,但右移操作在Python 3.x中總是用0來填充高位。

a = 60  # 0011 1100  
b = a >> 2  # 0011 1100 -> 0000 1111  
print(b)  # 輸出: 15

4. 比較運算符

比較運算符有:==、!=、<、>、<=、>=, ==就是數學中=的意思,但是并不能直接寫=,前面我們也知道了=是賦值的意思,!=就是不等于的意思,后面相信就不用介紹了。

print(1 == 1)  # 正確的,結果true
print(1 != 1)  # 錯誤的,結果false

在這里插入圖片描述

5. 邏輯運算符

邏輯運算符有:and、or、not三種,依次是邏輯與運算符、邏輯或運算符、邏輯非運算符,使用起來就和數學中的與或非一樣。

5.1 and

邏輯與運算符。如果它的兩個操作數都是真(True),則整個表達式的結果為真(True)。如果任一操作數為假(False),則結果為假(False)。

print(True and True)  # 輸出: True  
print(True and False) # 輸出: False  
print(False and True) # 輸出: False  
print(False and False) # 輸出: False

5.2 or

邏輯或運算符。如果它的兩個操作數中至少有一個為真(True),則整個表達式的結果為真(True)。如果兩個操作數都是假的(False),則結果為假(False)。

print(True or True)  # 輸出: True  
print(True or False) # 輸出: True  
print(False or True) # 輸出: True  
print(False or False) # 輸出: False

5.3 not

邏輯非運算符。用于反轉其操作數的布爾值。如果操作數是真(True),則結果為假(False)。如果操作數是假(False),則結果為真(True)。

print(not True)  # 輸出: False  
print(not False) # 輸出: True

6. 成員運算符

成員運算符有:in、not in兩種。用于檢查某個值是否存在于某個集合中(比如列表、元組、字符串、集合或字典的鍵中)。
集合后面會講,這里就簡單使用一樣,懂in和not in什么意思就可以。

6.1 in

如果指定的值在指定的序列中(或作為字典的鍵),則返回True;否則返回False。

# 列表  
my_list = [1, 2, 3, 4, 5]  
print(3 in my_list)  # 輸出: True  
print(6 in my_list)  # 輸出: False  # 字符串  
my_str = "hello"  
print('e' in my_str)  # 輸出: True  
print('z' in my_str)  # 輸出: False  # 字典(檢查鍵)  
my_dict = {'a': 1, 'b': 2, 'c': 3}  
print('a' in my_dict)  # 輸出: True  
print('d' in my_dict)  # 輸出: False

6.2 not in

這個運算符是in的否定形式。如果指定的值不在指定的序列中(或不是字典的鍵),則返回True;否則返回False。

# 列表  
my_list = [1, 2, 3, 4, 5]  
print(6 not in my_list)  # 輸出: True  
print(3 not in my_list)  # 輸出: False  # 字符串  
my_str = "hello"  
print('e' not in my_str)  # 輸出: False  
print('z' not in my_str)  # 輸出: True  # 字典(檢查鍵)  
my_dict = {'a': 1, 'b': 2, 'c': 3}  
print('a' not in my_dict)  # 輸出: False  
print('d' not in my_dict)  # 輸出: True

7. 身份運算符

身份運算符 :is、is not 用于測試兩個對象是否相同(即,它們是否指向同一個對象或內存地址)。對象內存地址這個概念后面講,大家是不是覺得好多后面講,這也是沒辦法的嘛,先簡單后難,這些難點的后面會詳解的,大家不用擔心,不會影響前面的學習的。

a = [1, 2, 3]  
b = a  
c = [1, 2, 3]  print(a is b)  # 輸出: True,因為 a 和 b 指向同一個列表對象  
print(a is c)  # 輸出: False,因為雖然 a 和 c 的內容相同,但它們是不同的對象  
print(a == c)  # 輸出: True,因為 a 和 c 的內容相同  x = 256  
y = 256  
z = id(x)  
w = id(y)  print(x is y)  # 輸出可能取決于Python實現和對象類型,但對于小整數(如-5到256之間的整數),Python通常會緩存這些值,因此這里很可能輸出 True  
print(z == w)  # 輸出: True,因為id()函數返回對象的唯一標識符(內存地址),這里x和y指向同一個對象  # 示例使用 is not  
print(a is not b)  # 輸出: False,因為a和b是同一個對象  
print(a is not c)  # 輸出: True,因為a和c不是同一個對象

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/42277.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/42277.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/42277.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

HTML 【實用教程】(2024最新版)

核心思想 —— 語義化 【面試題】如何理解 HTML 語義化 ?僅通過標簽便能判斷內容的類型&#xff0c;特別是區分標題、段落、圖片和表格 增加代碼可讀性&#xff0c;讓人更容易讀懂對SEO更加友好&#xff0c;讓搜索引擎更容易讀懂 html 文件的基本結構 html 文件的文件后綴為 …

【高錄用、快檢索、過往5屆均已檢索、SPIE 出版】第六屆無線通信與智能電網國際會議(ICWCSG 2024)

隨著科技的飛速發展和能源需求的日益增長&#xff0c;智能電網技術逐漸成為電力行業的重要發展方向。與此同時&#xff0c;無線通信技術在近年來也取得了顯著的進步&#xff0c;為智能電網的發展提供了強有力的支持。為了進一步推動無線通信與智能電網的結合與發展&#xff0c;…

Vue3 對于內嵌Iframe組件進行緩存

1&#xff1a;應用場景 對于系統內所有內嵌iframe 的頁面均通過同一個路由/iframe, 在router.query內傳入不同src 參數&#xff0c;在同一組件內顯示iframe 內嵌頁面&#xff0c;對這些頁面分別進行緩存。主要是通過v-show 控制顯示隱藏從而達到iframe 緩存邏輯 2&#xff1a…

Github 2024-07-03 C開源項目日報 Top9

根據Github Trendings的統計,今日(2024-07-03統計)共有9個項目上榜。根據開發語言中項目的數量,匯總情況如下: 開發語言項目數量C項目9Java項目1Python項目1顯示和控制你的 Android 設備 創建周期:2416 天開發語言:C, Java協議類型:Apache License 2.0Star數量:105222 個…

學IT上培訓班真的有用嗎?

在學習IT技術的過程中&#xff0c;你是否也被安利過各種五花八門的技術培訓班&#xff1f;這些培訓班都是怎樣向你宣傳的&#xff0c;你又對此抱有著怎樣的態度呢&#xff1f;在培訓班里學技術&#xff0c;真的有用嗎&#xff1f; 一、引入話題 IT行業是一個快速發展和不斷變化…

C++初學者指南-4.診斷---未定義行為檢測器

C初學者指南-4.診斷—未定義行為檢測器 未定義行為檢測器(UBSAN) 適用編譯器&#xff1a;clang,g在運行時檢測許多類型的未定義行為 解引用空指針從未對齊的指針讀取整數溢出被0除 … 在代碼中加入額外的指令:在調試構建中增加運行時約25% 示例&#xff1a;有符號整形溢出 …

Git在多人開發中的常見用例

前言 作為從一個 svn 轉過來的 git 前端開發&#xff0c;在經歷過git的各種便捷好處后&#xff0c;想起當時懵懂使用git的膽顫心驚&#xff1a;總是害怕用錯指令&#xff0c;又或者遇到報錯就慌的場景&#xff0c;想起當時查資料一看git指令這么多&#xff0c;看的頭暈眼花&am…

深度學習原理與Pytorch實戰

深度學習原理與Pytorch實戰 第2版 強化學習人工智能神經網絡書籍 python動手學深度學習框架書 TransformerBERT圖神經網絡&#xff1a; 技術講解 編輯推薦 1.基于PyTorch新版本&#xff0c;涵蓋深度學習基礎知識和前沿技術&#xff0c;由淺入深&#xff0c;通俗易懂&#xf…

家里老人能操作的電視直播軟件,目前能用的免費看直播的電視軟件app,適合電視和手機使用!

2024年許多能看電視直播的軟件都不能用了&#xff0c;家里的老人也不會手機投屏&#xff0c;平時什么娛樂都沒有了&#xff0c;這真的太不方便了。 很多老人并不喜歡去買一個廣電的機頂盒&#xff0c;或者花錢拉有線電視。 現在的電視大多數都是智能電視&#xff0c;所以許多電…

Redis基本命令源碼解析-字符串命令

1. set 用于將kv設置到數據庫中 2. mset 批量設置kv mset (msetnx) key1 value1 key2 value2 ... mset:msetCommand msetnx:msetnxCommand msetCommand和msetnxCommand都調用msetGenericCommand 2.1 msetGenericCommand 如果參數個數為偶數,則響應參數錯誤并返回 如果…

【項目日記(一)】夢幻筆耕-數據層實現

?博主主頁: 33的博客? ??文章專欄分類:項目日記?? &#x1f69a;我的代碼倉庫: 33的代碼倉庫&#x1f69a; &#x1faf5;&#x1faf5;&#x1faf5;關注我帶你了解更多項目內容 目錄 1.前言2.后端模塊3數據庫設計4.mapper實現4.1UserInfoMapper4.2BlogMapper 5.總結 1.…

硬件開發筆記(二十四):貼片電容的類別、封裝介紹,AD21導入貼片電容、原理圖和封裝庫3D模型

若該文為原創文章&#xff0c;轉載請注明原文出處 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/140241817 長沙紅胖子Qt&#xff08;長沙創微智科&#xff09;博文大全&#xff1a;開發技術集合&#xff08;包含Qt實用技術、樹莓派、三維、OpenCV…

存儲結構與管理磁盤

前言&#xff1a;本博客僅作記錄學習使用&#xff0c;部分圖片出自網絡&#xff0c;如有侵犯您的權益&#xff0c;請聯系刪除 目錄 一、一切從“/”開始 二、物理設備的命名規則 三、文件系統與數據資料 四、掛載硬件設備 五、添加硬盤設備 六、添加交換分區 七、磁盤容…

如何在 PostgreSQL 中實現數據的增量備份和恢復?

文章目錄 一、增量備份的原理二、準備工作&#xff08;一&#xff09;環境配置&#xff08;二&#xff09;創建測試數據庫和表&#xff08;三&#xff09;插入初始數據 三、全量備份四、基于時間點的增量備份&#xff08;一&#xff09;開啟 WAL 歸檔&#xff08;二&#xff09…

政策公告與提醒

自 2024 年 4 月 3 日起,您將至少有 30 天的時間來更新應用,使其符合下方所述的政策變更。 我們將推出“兒童安全標準”政策,規定社交應用和約會交友應用必須遵循特定標準,并在 Play 管理中心內以自行認證的形式證明合規后才能發布。 為了提高健康相關應用在 Google Play…

docker 重要且常用命令大全

本文將總結一些常見的重要的docker命令&#xff0c;以作備忘。后續如果有新的比較常用重要的也會更新進來。歡迎補充。 docker服務管理 首先我們要解釋一下&#xff1a;systemctl和docker命令的不同 systemctl&#xff1a;是許多 Linux 發行版中默認的初始化系統和服務管理器。…

【ARMv8/v9 GIC 系列 5.4 -- 中斷分組與安全及優先級配置】

請閱讀【ARM GICv3/v4 實戰學習 】 文章目錄 Interrupt grouping and securityGICD_CTRL.DS 為0GICD_CTRL.DS 為 1中斷組優先級配置Common Binary Point Register中斷優先級與二進制點Common Binary Point RegisterInterrupt grouping and security ARM架構提供了兩種安全狀態…

11.常見的Bean后置處理器

CommonAnnotationBeanPostProcessor (Resource PostConstructor PreDestroy) AutowiredAnnotationBeanPostProcessor (Autowired Value) GenericApplicationContext是一個干凈的容器&#xff0c;它沒有添加任何的PostProcessor處理器。 調用GenericApplicationContext.refre…

賽元單片機開發工具SOC_Programming_Tool_Enhance_V1.50 分享

下載地址&#xff1a; SOC_Programming_Tool_Enhance_V1.50(LIB0D30).rar: https://545c.com/f/45573183-1320016694-557ebd?p7526 (訪問密碼: 7526)

docker中實現多機redis主從集群

redis主從集群是每個使用redis的小伙伴都必需知道的&#xff0c;那如何在docker中快速配置呢&#xff1f;這篇來教你快速上手&#xff0c;跟著復制完全就能用&#xff01;&#xff01; 1. 前置準備 1.1 docker安裝 以防有小伙伴沒預先安裝docker&#xff0c;這里提供安裝步驟…