python運算符

来源:http://www.cnblogs.com/roucheng/archive/2016/05/06/pythonyunsuan.html
-Advertisement-
Play Games

什麼是操作符? 簡單的回答可以使用表達式4 + 5等於9,在這裡4和5被稱為操作數,+被稱為操符。 Python語言支持操作者有以下幾種類型。 算術運算符 比較(即關係)運算符 賦值運算符 邏輯運算符 位運算符 會員操作符 標識操作符 算術運算符 比較(即關係)運算符 賦值運算符 邏輯運算符 位運算 ...


什麼是操作符?

簡單的回答可以使用表達式4 + 5等於9,在這裡4和5被稱為操作數,+被稱為操符。 Python語言支持操作者有以下幾種類型。

  • 算術運算符

  • 比較(即關係)運算符

  • 賦值運算符

  • 邏輯運算符

  • 位運算符

  • 會員操作符

  • 標識操作符

讓我們逐一看看所有的運算符。

Python算術運算符:

假設變數a持有10和變數b持有20,則:

 

操作符描述符例子
+ 加法 - 對操作符的兩側增加值 a + b = 30
- 減法 - 減去從左側操作數右側操作數 a - b = -10
* 乘法 - 相乘的運算符兩側的值 a * b = 200
/ 除 - 由右側操作數除以左側操作數 b / a = 2
% 模 - 由右側操作數和餘返回除以左側操作數 b % a = 0
** 指數- 執行對操作指數(冪)的計算 a**b = 10 的冪 20
// 地板除 - 操作數的除法,其中結果是將小數點後的位數被除去的商。 9//2 =  4 而 9.0//2.0 = 4.0

Python的比較操作符:

假設變數a持有10和變數b持有20,則:

 

運算符描述示例
== 檢查,兩個操作數的值是否相等,如果是則條件變為真。 (a == b) 不為 true.
!= 檢查兩個操作數的值是否相等,如果值不相等,則條件變為真。 (a != b) 為 true.
<> 檢查兩個操作數的值是否相等,如果值不相等,則條件變為真。 (a <> b) 為 true。這個類似於 != 運算符
> 檢查左操作數的值是否大於右操作數的值,如果是,則條件成立。 (a > b) 不為 true.
< 檢查左操作數的值是否小於右操作數的值,如果是,則條件成立。 (a < b) 為 true.
>= 檢查左操作數的值是否大於或等於右操作數的值,如果是,則條件成立。 (a >= b) 不為 true.
<= 檢查左操作數的值是否小於或等於右操作數的值,如果是,則條件成立。 (a <= b) 為 true.

Python賦值運算符:

假設變數持有10和變數b持有20,則:

運算符描述示例
= 簡單的賦值運算符,賦值從右側操作數左側操作數 c = a + b將指定的值 a + b 到  c
+= 加法AND賦值操作符,它增加了右操作數左操作數和結果賦給左操作數 c += a 相當於 c = c + a
-= 減AND賦值操作符,它減去右邊的操作數從左邊操作數,並將結果賦給左操作數 c -= a 相當於 c = c - a
*= 乘法AND賦值操作符,它乘以右邊的操作數與左操作數,並將結果賦給左操作數 c *= a 相當於 c = c * a
/= 除法AND賦值操作符,它把左操作數與正確的操作數,並將結果賦給左操作數 c /= a 相當於= c / a
%= 模量AND賦值操作符,它需要使用兩個操作數的模量和分配結果左操作數 c %= a is equivalent to c = c % a
**= 指數AND賦值運算符,執行指數(功率)計算操作符和賦值給左操作數 c **= a 相當於 c = c ** a
//= 地板除,並分配一個值,執行地板除對操作和賦值給左操作數 c //= a 相當於 c = c // a

試試下麵的例子就明白了所有在Python編程語言可供選擇的賦值運算符:

#!/usr/bin/python

a =21
b =10
c =0

c = a + b
print"Line 1 - Value of c is ", c

c += a
print"Line 2 - Value of c is ", c 

c *= a
print"Line 3 - Value of c is ", c 

c /= a 
print"Line 4 - Value of c is ", c 

c  =2
c %= a
print"Line 5 - Value of c is ", c

c **= a
print"Line 6 - Value of c is ", c

c //= aprint"Line 7 - Value of c is ", c

當執行上面的程式,它會產生以下結果:

Line 1 - Value of c is 31
Line 2 - Value of c is 52
Line 3 - Value of c is 1092
Line 4 - Value of c is 52
Line 5 - Value of c is 2
Line 6 - Value of c is 2097152
Line 7 - Value of c is 99864

 

Python位運算符:

位運算符作用於位和位操作執行位。假設,如果a =60;且b =13;現在以二進位格式它們將如下:

a = 0011 1100

b = 0000 1101

-----------------

a&b = 0000 1100

a|b = 0011 1101

a^b = 0011 0001

~a  = 1100 0011

http://www.cnblogs.com/roucheng/

Python語言支持下位運算符

操作符描述示例
& 二進位和複製操作了一下,結果,如果它存在於兩個操作數。 (a & b) = 12 即 0000 1100
| 二進位或複製操作了一個比特,如果它存在一個操作數中。 (a | b) = 61 即 0011 1101
^ 二進位異或運算符的副本,如果它被設置在一個操作數而不是兩個比特。 (a ^ b) =  49 即  0011 0001
~ 二進位的補運算符是一元的,並有“翻轉”位的效果。 (~a ) =  -61 即 1100 0011以2的補碼形式由於帶符號二進位數。
<< 二進位向左移位運算符。左操作數的值左移由右操作數指定的位數。 a << 2 = 240 即 1111 0000
>> 二進位向右移位運算符。左操作數的值是由右操作數指定的位數向右移動。 a >> 2 = 15 即 0000 1111

Python邏輯運算符:

Python語言支持以下邏輯運算符。假設變數a持有10和變數b持有20則:

運算符描述示例
and 所謂邏輯與運算符。如果兩個操作數都是真的,那麼則條件成立。 (a and b) 為 true.
or 所謂邏輯OR運算符。如果有兩個操作數都是非零然後再條件變為真。 (a or b) 為 true.
not 所謂邏輯非運算符。用於反轉操作數的邏輯狀態。如果一個條件為真,則邏輯非運算符將返回false。 not(a and b) 為 false.

Python成員運算符:

除了前面討論的運算符,Python成員運算符,在一個序列中成員資格的測試,如字元串,列表或元組。有兩個成員運算符解釋如下:

操作符描述示例
in 計算結果為true,如果它在指定找到變數的順序,否則false。 x在y中,在這裡產生一個1,如果x是序列y的成員。
not in 計算結果為true,如果它不找到在指定的變數順序,否則為false。 x不在y中,這裡產生結果不為1,如果x不是序列y的成員。

試試下麵的例子就明白了所有的Python編程語言提供會員運算符:

#!/usr/bin/python

a =10
b =20
list =[1,2,3,4,5];if( a in list ):print"Line 1 - a is available in the given list"else:print"Line 1 - a is not available in the given list"if( b notin list ):print"Line 2 - b is not available in the given list"else:print"Line 2 - b is available in the given list"

a =2if( a in list ):print"Line 3 - a is available in the given list"else:print"Line 3 - a is not available in the given list"

當執行上面的程式它會產生以下結果:

Line 1 - a is not available in the given list
Line 2 - b is not available in the given list
Line 3 - a is available in the given list

Python標識運算符:

標識符比較兩個對象的記憶體位置。兩個運算符標識解釋如下:

 

運算符描述例子
is 計算結果為true,如果操作符兩側的變數指向相同的對象,否則為false。 x是y,這裡結果是1,如果id(x)的值為id(y)。
is not 計算結果為false,如果兩側的變數操作符指向相同的對象,否則為true。 x不為y,這裡結果不是1,當id(x)不等於id(y)。

試試下麵的例子就明白了所有Python編程語言提供的標識運算符:

#!/usr/bin/python

a =20
b =20if( a is b ):print"Line 1 - a and b have same identity"else:print"Line 1 - a and b do not have same identity"if( id(a)== id(b)):print"Line 2 - a and b have same identity"else:print"Line 2 - a and b do not have same identity"

b =30if( a is b ):print"Line 3 - a and b have same identity"else:print"Line 3 - a and b do not have same identity"if( a isnot b ):print"Line 4 - a and b do not have same identity"else:print"Line 4 - a and b have same identity"

當執行上面的程式它會產生以下結果:

Line 1 - a and b have same identity
Line 2 - a and b have same identity
Line 3 - a and b do not have same identity
Line 4 - a and b do not have same identity



Python運算符優先順序

下表列出了所有運算符從最高優先順序到最低。

 

運算符描述
** 冪(提高到指數)
~ + - 補碼,一元加號和減號(方法名的最後兩個+@和 - @)
* / % // 乘,除,取模和地板除
+ - 加法和減法
>> << 左,右按位轉移
& 位'AND'
^ | 按位異'或`'和定期`或'
<= < > >= 比較運算符
<> == != 等式運算符
= %= /= //= -= += *= **= 賦值運算符
is is not 標識運算符
in not in 成員運算符
not or and 邏輯運算符


轉自: http://hovertree.com/h/bjaf/yunsuanfu.htm

前端:http://www.cnblogs.com/roucheng/p/texiao.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 二叉樹的簡介: 樹形結構是一類重要的非線性數據結構,其中以樹和二叉樹最為常用。二叉樹是每個結點最多有兩個子樹的有序樹。通常子樹的根被稱作“左子樹”(left subtree)和“右子樹”(right subtree)。二叉樹常被用作二叉查找樹和二叉堆或是二叉排序樹。(這些結構呢在後面的博客中將一一講 ...
  • 上篇文章搭建了zookeeper集群 那好,今天就可以搭建solr搜服服務的集群了,這個和redis 集群不同,是需要zk管理的,作為一個代理層 安裝四個tomcat,修改其埠號不能衝突。8080~8083 如果是正式環境下,則分別使用4台linux作為節點 修改server.xml文件修改埠號 ...
  • 今天終於看完了第一章,哈哈,萬事開頭難....剛開始被編程思想的第一章給矇住了,講一堆理論,沒什麼意思。從第二章開始,真正的開始講解Java相關的內容,有了一定的開發經驗後,再次閱讀起來,感覺收穫良多啊! 關於對象 與C這種面向過程的語言不通,Java是面向對象的,在它眼裡一切都是對象。 在Java ...
  • Eclipse自己帶有編譯器(JDK),因為安裝Eclipse時還需要安裝jre。 Eclipse需找JRE的順序: 1. 先到Eclipse的安裝目錄先尋找Eclipse.ini文件中的-vm參數(-vm javaw.exe路徑)是否配置,使用此配置下的jre啟動Eclipse 2. 如果沒有配置... ...
  • 恢復內容開始 1.首先說明什麼是JDBC在第一眼看到這個名詞之前,我覺得有必要知道它的英文全稱是什麼,Java Database Connectivity,從英文字面上理解就直譯為可連通的Java資料庫,說白了也就是想提供一套中間環節,去連接Java代碼與資料庫,使之可以直接通過操作Java代碼就可 ...
  • STL(Standard Template Library)標準模板庫是C++最重要的組成部分,它提供了一組表示容器、迭代器、函數對象和演算法的模板。其中容器是存儲類型相同的數據的結構(如vector,list, deque, set, map等),演算法完成特定任務,迭代器用來遍歷容器對象,扮演容器和 ...
  • UDP發送端 獲取DatagramSocket對象,new出來 獲取DatagramPacket對象,new出來,構造參數:byte[]數組,int長度,InetAddress對象,int埠 調用DatagramSocket對象的send()方法,發送出去,參數:DatagramPacket對象 ...
  • 寫在前面 這次的爬蟲是關於房價信息的抓取,目的在於練習10萬以上的數據處理及整站式抓取。 數據量的提升最直觀的感覺便是對函數邏輯要求的提高,針對Python的特性,謹慎的選擇數據結構。以往小數據量的抓取,即使函數邏輯部分重覆,I/O請求頻率密集,迴圈套嵌過深,也不過是1~2s的差別,而隨著數據規模的 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...