
- Python基礎
- Python - 首頁
- Python - 概述
- Python - 歷史
- Python - 特性
- Python vs C++
- Python - Hello World程式
- Python - 應用領域
- Python - 直譯器
- Python - 環境搭建
- Python - 虛擬環境
- Python - 基本語法
- Python - 變數
- Python - 資料型別
- Python - 型別轉換
- Python - Unicode系統
- Python - 字面量
- Python - 運算子
- Python算術運算子
- Python - 比較運算子
- Python - 賦值運算子
- Python - 邏輯運算子
- Python - 位運算子
- Python - 成員運算子
- Python - 身份運算子
- Python - 運算子優先順序
- Python - 註釋
- Python - 使用者輸入
- Python - 數字
- Python - 布林值
- Python控制語句
- Python - 控制流
- Python - 決策制定
- Python - if語句
- Python - if else
- Python - 巢狀if
- Python - match-case語句
- Python - 迴圈
- Python - for迴圈
- Python - for-else迴圈
- Python - while迴圈
- Python - break語句
- Python - continue語句
- Python - pass語句
- Python - 巢狀迴圈
- Python函式與模組
- Python - 函式
- Python - 預設引數
- Python - 關鍵字引數
- Python - 僅關鍵字引數
- Python - 位置引數
- Python - 僅位置引數
- Python - 可變引數
- Python - 變數作用域
- Python - 函式註解
- Python - 模組
- Python - 內建函式
- Python字串
- Python - 字串
- Python - 字串切片
- Python - 修改字串
- Python - 字串連線
- Python - 字串格式化
- Python - 跳脫字元
- Python - 字串方法
- Python - 字串練習
- Python列表
- Python - 列表
- Python - 訪問列表項
- Python - 修改列表項
- Python - 新增列表項
- Python - 刪除列表項
- Python - 迴圈遍歷列表
- Python - 列表推導式
- Python - 排序列表
- Python - 複製列表
- Python - 合併列表
- Python - 列表方法
- Python - 列表練習
- Python元組
- Python - 元組
- Python - 訪問元組項
- Python - 更新元組
- Python - 解包元組
- Python - 迴圈遍歷元組
- Python - 合併元組
- Python - 元組方法
- Python - 元組練習
- Python集合
- Python - 集合
- Python - 訪問集合項
- Python - 新增集合項
- Python - 刪除集合項
- Python - 迴圈遍歷集合
- Python - 合併集合
- Python - 複製集合
- Python - 集合運算子
- Python - 集合方法
- Python - 集合練習
- Python字典
- Python - 字典
- Python - 訪問字典項
- Python - 修改字典項
- Python - 新增字典項
- Python - 刪除字典項
- Python - 字典檢視物件
- Python - 迴圈遍歷字典
- Python - 複製字典
- Python - 巢狀字典
- Python - 字典方法
- Python - 字典練習
- Python陣列
- Python - 陣列
- Python - 訪問陣列項
- Python - 新增陣列項
- Python - 刪除陣列項
- Python - 迴圈遍歷陣列
- Python - 複製陣列
- Python - 反轉陣列
- Python - 排序陣列
- Python - 合併陣列
- Python - 陣列方法
- Python - 陣列練習
- Python檔案處理
- Python - 檔案處理
- Python - 寫入檔案
- Python - 讀取檔案
- Python - 重新命名和刪除檔案
- Python - 目錄
- Python - 檔案方法
- Python - OS檔案/目錄方法
- Python - OS路徑方法
- 面向物件程式設計
- Python - OOPs概念
- Python - 類與物件
- Python - 類屬性
- Python - 類方法
- Python - 靜態方法
- Python - 建構函式
- Python - 訪問修飾符
- Python - 繼承
- Python - 多型
- Python - 方法重寫
- Python - 方法過載
- Python - 動態繫結
- Python - 動態型別
- Python - 抽象
- Python - 封裝
- Python - 介面
- Python - 包
- Python - 內部類
- Python - 匿名類和物件
- Python - 單例類
- Python - 包裝器類
- Python - 列舉
- Python - 反射
- Python錯誤與異常
- Python - 語法錯誤
- Python - 異常
- Python - try-except塊
- Python - try-finally塊
- Python - 丟擲異常
- Python - 異常鏈
- Python - 巢狀try塊
- Python - 使用者自定義異常
- Python - 日誌記錄
- Python - 斷言
- Python - 內建異常
- Python多執行緒
- Python - 多執行緒
- Python - 執行緒生命週期
- Python - 建立執行緒
- Python - 啟動執行緒
- Python - 結束執行緒
- Python - 執行緒命名
- Python - 執行緒排程
- Python - 執行緒池
- Python - 主執行緒
- Python - 執行緒優先順序
- Python - 守護執行緒
- Python - 執行緒同步
- Python同步
- Python - 執行緒間通訊
- Python - 執行緒死鎖
- Python - 中斷執行緒
- Python網路程式設計
- Python - 網路程式設計
- Python - 套接字程式設計
- Python - URL處理
- Python - 泛型
- Python庫
- NumPy教程
- Pandas教程
- SciPy教程
- Matplotlib教程
- Django教程
- OpenCV教程
- Python雜項
- Python - 日期與時間
- Python - 數學
- Python - 迭代器
- Python - 生成器
- Python - 閉包
- Python - 裝飾器
- Python - 遞迴
- Python - 正則表示式
- Python - PIP
- Python - 資料庫訪問
- Python - 弱引用
- Python - 序列化
- Python - 模板
- Python - 輸出格式化
- Python - 效能測量
- Python - 資料壓縮
- Python - CGI程式設計
- Python - XML處理
- Python - GUI程式設計
- Python - 命令列引數
- Python - 文件字串
- Python - JSON
- Python - 傳送郵件
- Python - 擴充套件
- Python - 工具/實用程式
- Python - GUIs
- Python高階概念
- Python - 抽象基類
- Python - 自定義異常
- Python - 高階函式
- Python - 物件內部
- Python - 記憶體管理
- Python - 元類
- Python - 使用元類進行超程式設計
- Python - 模擬和存根
- Python - Monkey Patching
- Python - 訊號處理
- Python - 型別提示
- Python - 自動化教程
- Python - Humanize包
- Python - 上下文管理器
- Python - 協程
- Python - 描述符
- Python - 診斷和修復記憶體洩漏
- Python - 不可變資料結構
- Python有用資源
- Python - 問答
- Python - 線上測驗
- Python - 快速指南
- Python - 參考
- Python - 速查表
- Python - 專案
- Python - 有用資源
- Python - 討論
- Python編譯器
- NumPy編譯器
- Matplotlib編譯器
- SciPy編譯器
Python算術運算子
Python算術運算子
Python算術運算子用於執行數學運算,例如對數字進行加法、減法、乘法、除法等等。算術運算子是二元運算子,因為它們作用於兩個運算元。Python完全支援混合算術運算。也就是說,兩個運算元可以是兩種不同的數字型別。在這種情況下,…
算術運算子型別
下表列出了Python中所有可用的算術運算子
運算子 | 名稱 | 示例 |
---|---|---|
+ | 加法 | a + b = 30 |
- | 減法 | a – b = -10 |
* | 乘法 | a * b = 200 |
/ | 除法 | b / a = 2 |
% | 取模 | b % a = 0 |
** | 指數 | a**b =10**20 |
// | 地板除 | 9//2 = 4 |
讓我們用例子來學習這些運算子。
加法運算子
加法運算子用“+”符號表示。它是一個基本的算術運算子。它將兩側的兩個數值運算元相加,並返回加法結果。
加兩個整數的示例
在下面的示例中,兩個整數變數是“+”運算子的運算元。
a=10 b=20 print ("Addition of two integers") print ("a =",a,"b =",b,"addition =",a+b)
它將產生以下輸出−
Addition of two integers a = 10 b = 20 addition = 30
加整數和浮點數的示例
整數和浮點數相加的結果是浮點數。
a=10 b=20.5 print ("Addition of integer and float") print ("a =",a,"b =",b,"addition =",a+b)
它將產生以下輸出−
Addition of integer and float a = 10 b = 20.5 addition = 30.5
加兩個複數的示例
將浮點數加到複數的結果是複數。
a=10+5j b=20.5 print ("Addition of complex and float") print ("a=",a,"b=",b,"addition=",a+b)
它將產生以下輸出−
Addition of complex and float a= (10+5j) b= 20.5 addition= (30.5+5j)
減法運算子
減法運算子用“-”符號表示。它從第一個運算元中減去第二個運算元。如果第二個運算元較大,則結果為負數。
減去兩個整數的示例
第一個示例顯示了兩個整數的減法。
a=10 b=20 print ("Subtraction of two integers:") print ("a =",a,"b =",b,"a-b =",a-b) print ("a =",a,"b =",b,"b-a =",b-a)
結果−
Subtraction of two integers a = 10 b = 20 a-b = -10 a = 10 b = 20 b-a = 10
減去整數和浮點數的示例
整數和浮點數的減法遵循相同的原則。
a=10 b=20.5 print ("subtraction of integer and float") print ("a=",a,"b=",b,"a-b=",a-b) print ("a=",a,"b=",b,"b-a=",b-a)
它將產生以下輸出−
subtraction of integer and float a= 10 b= 20.5 a-b= -10.5 a= 10 b= 20.5 b-a= 10.5
減去複數的示例
在涉及複數和浮點數的減法中,參與運算的是實部。
a=10+5j b=20.5 print ("subtraction of complex and float") print ("a=",a,"b=",b,"a-b=",a-b) print ("a=",a,"b=",b,"b-a=",b-a)
它將產生以下輸出−
subtraction of complex and float a= (10+5j) b= 20.5 a-b= (-10.5+5j) a= (10+5j) b= 20.5 b-a= (10.5-5j)
乘法運算子
“*”(星號)符號在Python中定義為乘法運算子(與許多其他語言一樣)。它返回其兩側兩個運算元的乘積。如果任何一個運算元為負數,則結果也為負數。如果兩者都為負數,則結果為正數。更改運算元的順序不會更改結果。
乘以兩個整數的示例
a=10 b=20 print ("Multiplication of two integers") print ("a =",a,"b =",b,"a*b =",a*b)
它將產生以下輸出−
Multiplication of two integers a = 10 b = 20 a*b = 200
乘以整數和浮點數的示例
在乘法中,浮點運算元可以具有標準十進位制點表示法或科學表示法。
a=10 b=20.5 print ("Multiplication of integer and float") print ("a=",a,"b=",b,"a*b=",a*b) a=-5.55 b=6.75E-3 print ("Multiplication of float and float") print ("a =",a,"b =",b,"a*b =",a*b)
它將產生以下輸出−
Multiplication of integer and float a = 10 b = 20.5 a-b = -10.5 Multiplication of float and float a = -5.55 b = 0.00675 a*b = -0.037462499999999996
乘以複數的示例
對於涉及一個複數運算元的乘法運算,另一個運算元將乘以實部和虛部。
a=10+5j b=20.5 print ("Multiplication of complex and float") print ("a =",a,"b =",b,"a*b =",a*b)
它將產生以下輸出−
Multiplication of complex and float a = (10+5j) b = 20.5 a*b = (205+102.5j)
除法運算子
“/” 符號通常稱為正斜槓。除法運算的結果是分子(左運算元)除以分母(右運算元)。如果任何一個運算元為負數,則結果為負數。由於無限大無法儲存在記憶體中,如果分母為 0,Python 會引發 ZeroDivisionError 錯誤。
在 Python 中,除法運算的結果始終是浮點數,即使兩個運算元都是整數。
兩個數字相除的示例
a=10 b=20 print ("Division of two integers") print ("a=",a,"b=",b,"a/b=",a/b) print ("a=",a,"b=",b,"b/a=",b/a)
它將產生以下輸出−
Division of two integers a= 10 b= 20 a/b= 0.5 a= 10 b= 20 b/a= 2.0
兩個浮點數相除的示例
在除法中,浮點運算元可以採用標準小數點表示法或科學計數法。
a=10 b=-20.5 print ("Division of integer and float") print ("a=",a,"b=",b,"a/b=",a/b) a=-2.50 b=1.25E2 print ("Division of float and float") print ("a=",a,"b=",b,"a/b=",a/b)
它將產生以下輸出−
Division of integer and float a= 10 b= -20.5 a/b= -0.4878048780487805 Division of float and float a= -2.5 b= 125.0 a/b= -0.02
複數相除的示例
當其中一個運算元是複數時,另一個運算元與複數物件的實部和虛部進行除法運算。
a=7.5+7.5j b=2.5 print ("Division of complex and float") print ("a =",a,"b =",b,"a/b =",a/b) print ("a =",a,"b =",b,"b/a =",b/a)
它將產生以下輸出−
Division of complex and float a = (7.5+7.5j) b = 2.5 a/b = (3+3j) a = (7.5+7.5j) b = 2.5 b/a = (0.16666666666666666-0.16666666666666666j)
如果分子為 0,則除法的結果始終為 0,除非分母為 0,在這種情況下,Python 會引發 ZeroDivisionError 錯誤,並顯示“除以零”錯誤訊息。
a=0 b=2.5 print ("a=",a,"b=",b,"a/b=",a/b) print ("a=",a,"b=",b,"b/a=",b/a)
它將產生以下輸出−
a= 0 b= 2.5 a/b= 0.0 Traceback (most recent call last): File "C:\Users\mlath\examples\example.py", line 20, in <module> print ("a=",a,"b=",b,"b/a=",b/a) ~^~ ZeroDivisionError: float division by zero
取模運算子
Python 將 "%" 符號定義為取模運算子(也稱為模運算子)。它返回分母除以分子後得到的餘數。它也可以稱為餘數運算子。取模運算子的結果是在整數商之後剩下的數字。例如,10 除以 3,商為 3,餘數為 1。因此,10%3(通常讀作 10 模 3)的結果為 1。
整數取模運算示例
如果兩個運算元都是整數,則模值也是整數。如果分子完全可被分母整除,則餘數為 0。如果分子小於分母,則模值等於分子。如果分母為 0,Python 會引發 ZeroDivisionError 錯誤。
a=10 b=2 print ("a=",a, "b=",b, "a%b=", a%b) a=10 b=4 print ("a=",a, "b=",b, "a%b=", a%b) print ("a=",a, "b=",b, "b%a=", b%a) a=0 b=10 print ("a=",a, "b=",b, "a%b=", a%b) print ("a=", a, "b=", b, "b%a=",b%a)
它將產生以下輸出−
a= 10 b= 2 a%b= 0 a= 10 b= 4 a%b= 2 a= 10 b= 4 b%a= 4 a= 0 b= 10 a%b= 0 Traceback (most recent call last): File "C:\Users\mlath\examples\example.py", line 13, in <module> print ("a=", a, "b=", b, "b%a=",b%a) ~^~ ZeroDivisionError: integer modulo by zero
浮點數取模運算示例
如果任何一個運算元是浮點數,則模值始終是浮點數。
a=10 b=2.5 print ("a=",a, "b=",b, "a%b=", a%b) a=10 b=1.5 print ("a=",a, "b=",b, "a%b=", a%b) a=7.7 b=2.5 print ("a=",a, "b=",b, "a%b=", a%b) a=12.4 b=3 print ("a=",a, "b=",b, "a%b=", a%b)
它將產生以下輸出−
a= 10 b= 2.5 a%b= 0.0 a= 10 b= 1.5 a%b= 1.0 a= 7.7 b= 2.5 a%b= 0.20000000000000018 a= 12.4 b= 3 a%b= 0.40000000000000036
Python 不允許使用複數作為取模運算的運算元。它會丟擲 TypeError: unsupported operand type(s) for % 錯誤。
指數運算子
Python 使用 **(雙星號)作為指數運算子(有時稱為“乘方”運算子)。因此,對於 a**b,可以說 a 的 b 次方,或者 a 的 b 次冪。
如果指數表示式中的兩個運算元都是整數,則結果也是整數。如果其中一個是浮點數,則結果是浮點數。類似地,如果其中一個運算元是複數,則指數運算子返回一個複數。
如果底數為 0,則結果為 0;如果指數為 0,則結果始終為 1。
指數運算子示例
a=10 b=2 print ("a=",a, "b=",b, "a**b=", a**b) a=10 b=1.5 print ("a=",a, "b=",b, "a**b=", a**b) a=7.7 b=2 print ("a=",a, "b=",b, "a**b=", a**b) a=1+2j b=4 print ("a=",a, "b=",b, "a**b=", a**b) a=12.4 b=0 print ("a=",a, "b=",b, "a**b=", a**b) print ("a=",a, "b=",b, "b**a=", b**a)
它將產生以下輸出−
a= 10 b= 2 a**b= 100 a= 10 b= 1.5 a**b= 31.622776601683793 a= 7.7 b= 2 a**b= 59.290000000000006 a= (1+2j) b= 4 a**b= (-7-24j) a= 12.4 b= 0 a**b= 1.0 a= 12.4 b= 0 b**a= 0.0
地板除運算子
地板除也稱為整數除法。Python 使用 //(雙正斜槓)符號來表示。與返回餘數的取模運算不同,地板除返回參與運算的運算元的商。
如果兩個運算元都是正數,則地板除運算子返回一個去除小數部分後的數字。例如,9.8 除以 2 的地板除結果為 4(純除法結果為 4.9,去除小數部分,結果為 4)。
但是,如果其中一個運算元為負數,則結果將舍入到遠離零的方向(朝負無窮大)。-9.8 除以 2 的地板除結果為 -5(純除法結果為 -4.9,遠離 0 舍入)。
地板除運算子示例
a=9 b=2 print ("a=",a, "b=",b, "a//b=", a//b) a=9 b=-2 print ("a=",a, "b=",b, "a//b=", a//b) a=10 b=1.5 print ("a=",a, "b=",b, "a//b=", a//b) a=-10 b=1.5 print ("a=",a, "b=",b, "a//b=", a//b)
它將產生以下輸出−
a= 9 b= 2 a//b= 4 a= 9 b= -2 a//b= -5 a= 10 b= 1.5 a//b= 6.0 a= -10 b= 1.5 a//b= -7.0
算術運算子的優先順序和結合性
運算子 | 描述 | 結合性 |
---|---|---|
** | 指數運算子 | 指數運算子的結合性為從右到左。 |
%, *, /, // | 取模、乘法、除法和地板除 | 取模、乘法、除法和地板除運算子的結合性為從左到右。 |
+, – | 加法和減法運算子 | 加法和減法運算子的結合性為從左到右。 |
下表顯示了 Python 中算術運算子的優先順序和結合性。
與複數一起使用的算術運算子
當兩個運算元都是複數物件時,算術運算子的行為略有不同。
複數的加法和減法
複數的加法和減法是分別對實部和虛部進行簡單的加法/減法運算。
a=2.5+3.4j b=-3+1.0j print ("Addition of complex numbers - a=",a, "b=",b, "a+b=", a+b) print ("Subtraction of complex numbers - a=",a, "b=",b, "a-b=", a-b)
它將產生以下輸出−
Addition of complex numbers - a= (2.5+3.4j) b= (-3+1j) a+b= (-0.5+4.4j) Subtraction of complex numbers - a= (2.5+3.4j) b= (-3+1j) a-b= (5.5+2.4j)
複數的乘法
複數的乘法類似於代數中兩個二項式的乘法。如果 "a+bj" 和 "x+yj" 是兩個複數,則它們的乘法由以下公式給出:
(a+bj)*(x+yj) = ax+ayj+xbj+byj2 = (ax-by)+(ay+xb)j
例如:
a=6+4j b=3+2j c=a*b c=(18-8)+(12+12)j c=10+24j
下面的程式驗證了結果:
a=6+4j b=3+2j print ("Multplication of complex numbers - a=",a, "b=",b, "a*b=", a*b)
要了解兩個複數的除法是如何進行的,我們應該使用複數的共軛。Python 的複數物件有一個 conjugate() 方法,它返回一個虛部符號相反的複數。
>>> a=5+6j >>> a.conjugate() (5-6j)
複數的除法
要除以兩個複數,需要將分子和分母都乘以分母的共軛。
a=6+4j b=3+2j c=a/b c=(6+4j)/(3+2j) c=(6+4j)*(3-2j)/3+2j)*(3-2j) c=(18-12j+12j+8)/(9-6j+6j+4) c=26/13 c=2+0j
要驗證,請執行以下程式碼:
a=6+4j b=3+2j print ("Division of complex numbers - a=",a, "b=",b, "a/b=", a/b)
Python 中的 Complex 類不支援取模運算子 (%) 和地板除運算子 (//)。