Python 中的加號(+)運算符詳解:新手指南
更新日期: 2024 年 10 月 3 日
在 Python 編程中,加號(+
)運算符 是一個非常常用且靈活的操作符,具有多種用途。
對於剛開始學習 Python 的新手來說,理解並掌握加號運算符的用法,將大大提升你在數據處理和程式開發中的效率和能力。
本文將詳細介紹 Python 中加號運算符的各種用法,包括數字加法、字串連接、串列合併等,並提供豐富的示例,幫助你在實際開發中靈活運用。
加號 +
運算符的基本概念
定義
- 加號
+
運算符:在 Python 中,用於執行加法操作或將兩個物件連接在一起。其具體功能取決於操作數的類型。
基本用途
- 數值加法:對數字類型(整數、浮點數)進行加法運算。
- 序列連接:對序列類型(如字串、串列、元組)進行連接操作。
數字加法
整數加法
示例:
a = 5
b = 3
result = a + b
print(result) # 輸出:8
解釋:
- 對兩個整數變數
a
和b
進行加法運算,結果為8
。
浮點數加法
示例:
x = 2.5
y = 4.3
result = x + y
print(result) # 輸出:6.8
解釋:
- 對兩個浮點數進行加法運算,結果為
6.8
。
整數與浮點數的加法
示例:
a = 5
b = 2.5
result = a + b
print(result) # 輸出:7.5
解釋:
- 整數與浮點數相加,結果為浮點數
7.5
。
字串連接
基本用法
示例:
str1 = "Hello, "
str2 = "Python!"
result = str1 + str2
print(result) # 輸出:Hello, Python!
解釋:
- 使用加號將兩個字串連接起來,形成一個新的字串。
多個字串連接
示例:
greeting = "Hello"
name = "Alice"
message = greeting + ", " + name + "!"
print(message) # 輸出:Hello, Alice!
解釋:
- 可以使用加號連接多個字串和字面值,組合成一個完整的訊息。
注意事項:字串與其他類型的加法
錯誤示例:
name = "Alice"
age = 25
message = name + " is " + age + " years old."
錯誤訊息:
TypeError: can only concatenate str (not "int") to str
解決方案:
- 將非字串類型轉換為字串:
message = name + " is " + str(age) + " years old."
print(message) # 輸出:Alice is 25 years old.
串列和元組的合併
串列的合併
示例:
list1 = [1, 2, 3]
list2 = [4, 5, 6]
combined_list = list1 + list2
print(combined_list) # 輸出:[1, 2, 3, 4, 5, 6]
解釋:
- 使用加號將兩個串列連接,形成一個新的串列。
元組的合併
示例:
tuple1 = ('a', 'b')
tuple2 = ('c', 'd')
combined_tuple = tuple1 + tuple2
print(combined_tuple) # 輸出:('a', 'b', 'c', 'd')
解釋:
- 對元組使用加號,同樣可以連接成新的元組。
注意事項:串列與非串列的加法
錯誤示例:
my_list = [1, 2, 3]
my_list = my_list + 4
錯誤訊息:
TypeError: can only concatenate list (not "int") to list
解決方案:
- 將元素放入串列中:
my_list = my_list + [4]
print(my_list) # 輸出:[1, 2, 3, 4]
加號運算符的重載(進階)
自定義類中重載 +
運算符
示例:
class Vector:
def __init__(self, x, y):
self.x = x
self.y = y
# 重載加號運算符
def __add__(self, other):
return Vector(self.x + other.x, self.y + other.y)
def __str__(self):
return f"Vector({self.x}, {self.y})"
v1 = Vector(2, 3)
v2 = Vector(5, 7)
v3 = v1 + v2
print(v3) # 輸出:Vector(7, 10)
解釋:
- 自定義類
Vector
,通過實現__add__
方法來重載加號運算符,使其可以對Vector
物件進行相加。
常見錯誤與調試
不同類型之間的加法
錯誤示例:
result = "The number is: " + 42
錯誤訊息:
TypeError: can only concatenate str (not "int") to str
解決方案:
- 將整數轉換為字串:
result = "The number is: " + str(42)
print(result) # 輸出:The number is: 42
對不可變類型的修改
錯誤示例:
str1 = "Hello"
str1[0] = "h"
錯誤訊息:
TypeError: 'str' object does not support item assignment
解決方案:
- 字串是不可變的,可以使用加號創建新的字串:
str1 = "h" + str1[1:]
print(str1) # 輸出:hello
加號運算符的優先級
- 在複雜的表達式中,加號運算符的優先級低於乘號(
*
)、除號(/
)等。
示例:
result = 2 + 3 * 4
print(result) # 輸出:14
解釋:
- 先計算
3 * 4 = 12
,再計算2 + 12 = 14
。 - 如果想先計算加法,可以使用括號:
result = (2 + 3) * 4
print(result) # 輸出:20
實際應用示例
計算串列中數字的總和
示例:
numbers = [1, 2, 3, 4, 5]
total = 0
for num in numbers:
total += num # 等同於 total = total + num
print(f"總和為:{total}") # 輸出:總和為:15
合併多個字串
示例:
parts = ["Hello", " ", "World", "!"]
message = ""
for part in parts:
message += part
print(message) # 輸出:Hello World!
合併多個串列
示例:
list1 = [1, 2]
list2 = [3, 4]
list3 = [5, 6]
combined_list = list1 + list2 + list3
print(combined_list) # 輸出:[1, 2, 3, 4, 5, 6]
注意事項
加號與 +=
的區別
+
:創建一個新物件,原物件不變。+=
:對可變物件(如串列)是就地修改,對不可變物件(如字串、整數、元組)相當於創建新物件。
示例:
# 對串列使用 +=
list1 = [1, 2, 3]
list1 += [4, 5]
print(list1) # 輸出:[1, 2, 3, 4, 5]
# 對字串使用 +=
str1 = "Hello"
str1 += " World"
print(str1) # 輸出:Hello World
避免對不同類型的物件使用加號
- 在使用加號時,確保兩個操作數是相同或兼容的類型,否則會引發
TypeError
。
加號與乘號的混合使用
- 注意運算符的優先級,必要時使用括號明確計算順序。
總結
- 加號(
+
)運算符 是 Python 中功能強大且靈活的操作符,既可用於數值計算,也可用於序列的連接。 - 主要用法:
- 數值加法:對整數和浮點數進行加法運算。
- 字串連接:將多個字串合併成一個新的字串。
- 串列和元組合併:將多個串列或元組連接成一個新的序列。
- 使用注意事項:
- 確保操作數類型相容,避免
TypeError
。 - 理解運算符優先級,必要時使用括號。
- 確保操作數類型相容,避免
- 進階應用:可以在自定義類中重載加號運算符,實現自定義物件的相加操作。