Python 中的加號(+)運算符詳解:新手指南

更新日期: 2024 年 10 月 3 日

在 Python 編程中,加號(+)運算符 是一個非常常用且靈活的操作符,具有多種用途。

對於剛開始學習 Python 的新手來說,理解並掌握加號運算符的用法,將大大提升你在數據處理和程式開發中的效率和能力。

本文將詳細介紹 Python 中加號運算符的各種用法,包括數字加法、字串連接、串列合併等,並提供豐富的示例,幫助你在實際開發中靈活運用。


加號 + 運算符的基本概念

定義

  • 加號 + 運算符:在 Python 中,用於執行加法操作或將兩個物件連接在一起。其具體功能取決於操作數的類型。

基本用途

  • 數值加法:對數字類型(整數、浮點數)進行加法運算。
  • 序列連接:對序列類型(如字串、串列、元組)進行連接操作。

數字加法

整數加法

示例:

a = 5
b = 3
result = a + b
print(result)  # 輸出:8

解釋:

  • 對兩個整數變數 ab 進行加法運算,結果為 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
    • 理解運算符優先級,必要時使用括號。
  • 進階應用:可以在自定義類中重載加號運算符,實現自定義物件的相加操作。

十一、延伸閱讀

Similar Posts

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *