[Python] 通過各種實例深入理解算術運算符

Python 提供了一系列的算術運算符。這些運算符是數學和邏輯運算的基礎組件。在此篇文章中,我們將深入探討主要的算術運算符,為每一個提供示範代碼,並闡述其作用與功能。

加法 (+)

加法運算符,用 + 表示,是最基礎的算術運算之一。在Python中,加法運算符不僅可以用於數字,還可用於字串和串列。對數字使用時,它會計算其總和。在字串的情境下,加法運算符用於串接字串。對於串列,則是合併它們。

python
# 數值加法
a = 5
b = 3
print(a + b)
# 輸出: 8

# 字串串接
str1 = "Hello"
str2 = "World"
print(str1 + " " + str2)
# 輸出: Hello World

# 串列合併
list1 = [1, 2, 3]
list2 = [4, 5, 6]
print(list1 + list2)
# 輸出: [1, 2, 3, 4, 5, 6]

減法 (-)

減法運算符,由 - 表示,從一個值中減去另一值。這個運算符主要用於數值。但是,Python不支援對其他如字串或串列的減法運算。使用減法運算符時,必須確保兩個操作數都是數值資料型態(整數或浮點數)。

python
# 數值減法
x = 10
y = 4
print(x - y)
# 輸出: 6

# 嘗試在字串上進行減法 (這將引發錯誤)
# str3 = "abc"
# str4 = "a"
# print(str3 - str4)
# TypeError: 不支援的運算符類型:'str' 和 'str'

乘法 (*)

乘法運算符,由 * 符號表示,將兩個數字相乘。除了數字,Python也支援對字串和串列的乘法運算。當一個字串和一個整數相乘時,它會重複指定次數的字串。同樣地,將串列與整數相乘會複製其內容,生成帶有重複元素的新串列。但在Python中,不支援直接乘以兩個字串或兩個串列。

python
# 數值乘法
p = 7
q = 6
print(p * q)
# 輸出: 42

# 字串重複
str5 = "重複 "
print(str5 * 3)
# 輸出: 重複 重複 重複 

# 串列重複
list3 = [1, 2]
print(list3 * 3)
# 輸出: [1, 2, 1, 2, 1, 2]

除法 (/)

除法運算符,由 / 表示,將一數字除以另一數字。在Python 3.x中,無論結果是否為整數,/ 運算符始終返回浮點數。這確保了返回類型的一致性,使結果更具預測性。但使用時,應該小心不要除以零,這將引發一個 ZeroDivisionError

python
# 數值除法
m = 8
n = 2
print(m / n)
# 輸出: 4.0

# 除以零 (這將引發錯誤)
z = 0
print(m / z)
# ZeroDivisionError: 除數為零

餘數 (%)

餘數運算符,由 % 表示,返回除法操作的餘數。它常用於判斷數字是奇數還是偶數,因為任何數字模2都會產生偶數的0和奇數的1。這個運算符在許多算法場景中都是無價之寶,需要循環或迭代的過程,或者需要確保值在某個範圍內循環。

python
# 數值餘數
u = 10
v = 3
print(u % v)
# 輸出: 1

地板除法 (//)

地板除法運算子,以//表示,將一數除以另一數,然後將結果向下取整至最接近的整數。換句話說,它棄除小數部分,只返回商數。當需要從除法操作中獲得整數結果時,例如在數組索引或執行特定數學算法時,這尤其有用。

python
# 數字地板除法
s = 10
t = 3
print(s // t)
# 輸出: 3

指數運算 (**)

指數運算子,由**符號表示,將一數提升到另一數的冪次。這是Python執行冪運算的方式。此運算子可以處理正和負的指數。對於正指數,基數會根據指數指定的次數乘以它自己。對於負指數,Python計算基數的倒數提升到指數的絕對值,實際上計算反向的冪。

python
# 數字指數運算
i = 2
j = 3
print(i ** j)
# 輸出: 8

# 負指數
k = -2
print(i ** k)
# 輸出: 0.25

FAQs

  1. 取模運算子在程式設計場景中有何益處?
    • 取模運算子非常適合於判定偶數或奇數,構建循環資料結構,並在算法中設定邊界。
  2. 如何在單一操作中獲得商和餘數?
    • 您可以使用divmod()函數。例如,divmod(10, 3)將返回(3, 1),其中3是商,1是餘數。
  3. 使用*進行字符串乘法與列表乘法有何不同?
    • 基本上沒有區別。兩種操作都重複原始內容。例如,'a' * 3返回'aaa'[1, 2] * 3返回[1, 2, 1, 2, 1, 2]
  4. 為什麼我不能直接減去兩個列表?
    • 列表,與數字不同,沒有明確定義的減法操作。您需要實現一個自訂函數或使用列表理解來達到差異化操作。
  5. Python中還有其他與算術相關的模塊或庫嗎?
    • 是的,Python提供了math模塊,其中包含一系列可與這些算術運算子一同使用的數學函數和常數。
© Copyright 2023 CLONE CODING