Raspberry Pi5 開發Python程式(1)

更新 發佈閱讀 16 分鐘

簡介

Python是一種直譯式的編程語言,具有簡潔的語法和強大的函式庫支持,適用於各種應用場景,如網絡開發、數據分析、人工智能等,本節不會在基礎停太久,但也別忘了基本功扎實很重要,之後陸陸續續會上架各觀念的實際運用,所以,這些內容可以當個前導,快速熟悉一下。

一、輸入與輸出

1.1 輸出

  • 句子中有單引號時,字串兩側就須使用雙引號;反之,句子中有雙引號時,字串兩側就須使用單引號。
  • 可以接受多个字符串,用逗號 , 隔開。
  • 將變數放入print()中,Python 會自動幫你把整數轉成字串,還會在項目之間加一個空格。
print("I'm a boy.")
print('你真的很"體貼"')
print('I am a good','boy') #依次打印字符串,遇到逗號會輸出一個空格
姓名 = "Michael"
年紀 = 20
print(姓名, "你好,我剛滿", 年紀, "歲")

1.2 輸出串接

  • 中間用加號連接。
  • 因為字串只能跟字串相加,所以如果放入整數int,要記得轉換型別。
  • 也可以用f-string寫法,以下示範。
​姓名 = Michael
年紀 = 20
print(姓名 + "你好,我剛滿" + str(年紀) "歲")
print(f"{姓名}你好,我剛滿{年紀}歲”)

1.3 多行文字輸出

  • 要顯示多行文字時,兩側"""包住內容即可
print("""第一行
第二行
""")

1.4 輸入

  • 透過input輸入的內容都是字串(str)
  • 字串方法就是「字串附帶的小工具」,讓我們能方便地 修改、檢查或處理字串。
  • 方法用「.」來呼叫,例如.upper(),將輸入的小寫轉為大寫
正數 = int(input("請輸入數值")) #正數轉為int型態

變數 = input("請輸入數值:(a)or(b)).upper()

print(正數, 變數)

2.變數、運算子、流程控制

2.1 變數宣告

  • 變數是用來儲存數據的容器,無需明確宣告型別。
  • 資料型別包括數字、字符串、布爾值等。
# 整數
a = 10
# 浮點數
b = 3.14
# 字符串
c = "Hello, Python"
# 布爾值
d = True

2.2 變數在記憶體中的表示

a=10 #找一個空間儲存10,然後把一個名字指向這個空間
b=a #把b也指向這個放10的記憶體空間

2.3 運算子

  • 算術運算子+, -, *, /, //, %, *
  • 位元運算子 : &, ^, |, <<,>>
  • 比較運算子==, !=, >, <, >=, <=
  • 邏輯運算子and, or, not
# 算術運算
x = 5
y = 2
print(x + y) # 7
print(x ** y) # 25

#位元運算
a = 5 # 二進制:0101(只關注後面這幾個數字,前面都是0,取決於資料型態位元數)
b = 3 # 二進制:0011
print(a & b) # 1
print(a | b) # 7
print(a ^ b) # 6
print(a << 1) # 10
print(a >> 1) # 2

# 比較運算
print(x > y) # True

# 邏輯運算
print(x > 0 and y > 0) # True

2.4 控制流程

觀念:

  • 條件語句if, elif, else
  • 循環語句for, while
  • 可以巢狀迴圈
# 條件語句:
age = 18
if age >= 18:
print("成年")
else:
print("未成年")

# while 循環
count = 0
while count < 5:
print(count) #輸出0-4
count += 1

# for 循環
for i in range(5):
print(i) #輸出0-4

3. 函式與模組

3.1 定義函式

觀念:

  • 使用def關鍵字定義函式。
  • 可以有參數和返回值。

範例:

def greet(name):
return (f"Hello, {name}")

print(greet("Alice")) # Hello, Alice

3.2 參數與返回值

觀念:

  • 位置參數: 即按 順序 傳值,誰在前誰在後很重要,按 順序 傳值,誰在前誰在後很重要。
def greet(name, age):
print(f"你好 {name},你 {age} 歲了!")

# 使用位置參數
greet("Michael", 20)
  • 關鍵字參數: 當呼叫函式時,指定參數名稱,就不用管順序。
def greet(name, age):

print(f"你好 {name},你 {age} 歲了!")

# 使用關鍵字參數
greet(age=20, name="Michael")
  • 默認參數值: 如果呼叫時沒傳值,會用預設值,但如果有傳值,則會覆蓋預設值。
def power(x, n=2):
return x ** n

print(power(3)) # 9
print(power(3, 3)) # 27(3覆蓋2)

3.4 模組

觀念:

  • 模組裡面放了一堆程式碼(變數、函式、類別),可以被別的程式引用,可以把模組想像成工具箱。

範例:

# 導入模組
import math
print(math.sqrt(16)) # 4.0

# 從模組中導入特定函式
from math import pi
print(pi) # 3.141592653589793

#給模組別名
import random as R
t = R.randint(1,100) #1-100之間的整數亂數值
print(t)

4. 數據結構

4.1 清單(List)

觀念:

  • 可變的有序集合,可以包含不同類型的元素。
  • 清單與字串之間可以透過一些語法做資料類型的轉換
  • 支持索引、切片、添加、刪除等操作。

範例:

fruits = ["apple", "banana", "cherry"]
fruits.append("orange") #新增至列表(1次只能加1個)
print(fruits[3]) # orange
print(fruits[-1]) # orange
fruits.extend(["papaya", "mango"]) #新增至列表
print(fruits) # ['apple', 'banana', 'cherry', 'orange', 'papaya', 'mango']
print(fruits[1:3]) # ['banana', 'cherry'] (不包含第三位)
print(fruits[:3]) # ['apple', 'banana', 'cherry'] (0到2)
print(fruits[1:]) # ['banana', 'cherry', 'orange', 'papaya', 'mango'] (1到最後)
fruits.remove("orange") # orange 從清單消失
fruits.pop() # 預設刪掉清單最後一個項目
招呼 = "你好嗎"
print(list(招呼)) # ['你', '好', '嗎']
日期 = "2024/10/10"
print(日期.split("/")) # ['2024', '10', '10']
團體 = ["阿偉", "嘉明", "杰哥"]
print("/".join(團體)) # 阿偉/嘉明/杰哥
  • 可用 in 確認資料是否在清單內(if 預查找的資料 in 一個清單: 後面可搭配其他操作)
fruits = ["apple", "banana", "cherry"]

if "banana" in fruits:
print("找到香蕉了!")
else:
print("清單裡沒有香蕉")
  • 可用index回傳在清單中的順位 Ex : print(某一個清單.index(預查找的資料))
fruits = ["apple", "banana", "cherry", "banana"]

print(fruits.index("banana")) # 1

4.2 元組(Tuple)

觀念:

  • 不可變的有序集合。
  • 適用於不可修改的數據組合。
  • 元組項目操作和List一樣

範例:

coordinates = (10, 20)
print(coordinates[0]) # 10
# coordinates[0] = 15 # 會引發錯誤

4.3 字典(Dictionary)

觀念:

  • 無序的鍵值對集合。
  • 鍵(Key)
    • 必須是不可變類型(如字符串、數字、元組)。
    • 在同一字典中,鍵是唯一的,不能有重複的鍵。
  • 值(Value)
    • 可以是任意類型的數據(如數字、字符串、列表、字典等)。
# 創建空字典
empty_dict = {}

# 創建帶有初始值的字典
person = {"name": "Alice", "age": 25, "city": "New York"}

# 使用鍵值對參數創建
person = dict(name="Alice", age=25, city="New York")

# 使用鍵值對元組的列表創建
person = dict([("name", "Alice"), ("age", 25), ("city", "New York")])

# 訪問值
print(person["name"]) # 輸出: Alice

# 當鍵不存在時會引發 KeyError
# print(person["gender"]) # KeyError: 'gender'

# 安全地訪問值,當鍵不存在時返回默認值 None 或自定義的默認值
print(person.get("name")) # 輸出: Alice
print(person.get("gender")) # 輸出: None
print(person.get("gender", "未知")) # 輸出: 未知

# 添加新的鍵值對
person["city"] = "New York"
print(person) # {'name': 'Alice', 'age': 25, 'city': 'New York'}

# 修改已有鍵的值
person["age"] = 26
print(person) # {'name': 'Alice', 'age': 26, 'city': 'New York'}

# 刪除指定鍵值對
del person["age"]
print(person) # {'name': 'Alice', 'city': 'New York'}

# 刪除整個字典
del person
# print(person) # NameError: name 'person' is not defined

# 移除指定鍵並返回其值
person = {"name": "Alice", "age": 25}
age = person.pop("age")
print(age) # 25
print(person) # {'name': 'Alice'}

# 當鍵不存在時,可以指定默認值
gender = person.pop("gender", "未知")
print(gender) # 未知

# 移除最後插入的鍵值對
person = {"name": "Alice", "age": 25, "city": "New York"}
item = person.popitem()
print(item) # ('city', 'New York')
print(person) # {'name': 'Alice', 'age': 25}
#遍歷鍵
person = {"name": "Alice", "age": 25}

for key in person:
print(key)
# 輸出:
# name
# age

#遍歷值
for value in person.values():
print(value)
# 輸出:
# Alice
# 25

#遍歷鍵和值
for key, value in person.items():
print(f"{key}: {value}")
# 輸出:
# name: Alice
# age: 25
#若改成下面寫法,將返回元組類型
for value in person.items():
print(value)

#清空字典中的所有元素
person.clear()
print(person) # {}

#遍歷字典的鍵值對,也可以使用 enumerate():
my_dict = {"a": 10, "b": 20, "c": 30}
for index, (key, value) in enumerate(my_dict.items(), start=1):#選擇性參數,默認值為 0。
print(f"第 {index} 個鍵值對: {key} -> {value}")
#下一章節也有示範清單配合 enumerate() 函式

4.4 集合(Set)

觀念:

  • 無序不重複元素的集合。
  • 支持集合運算,如並集、交集、差集。

範例:

data = {245,7,27,136,8,-1,8,-1}
#print(data[2]) #報錯,因為set是無序的
print(data) #輸出{245, 7, 136, 8, 27, -1}(無序且只有6個)
#加一個數據
data.add(9)
print(data) #輸出{9, 245, 7, 136, 8, 27, -1}
#刪掉一個數據
data.remove(9)
print(data) #輸出{245, 7, 136, 8, 27, -1}
#集合的一些操作(交集、並集、減法)
data2 = {245, 7, 27, 136, 8, -1, 10, 2, 25, 1}
print(data.intersection(data2))
#輸出交集 : {7, 136, 8, 245, 27, -1}
print(data.union(data2))
#輸出並集 : {1, 2, 7, 136, 8, 10, 25, 27, 245, -1}
print(data.difference(data2))
#輸出減法(相當於在data中卻不在data2中的數據) : set{}
data.add(13)
print(data.difference(data2))
#輸出 : {13}


留言
avatar-img
電資鼠 - 您的學習好夥伴
19會員
242內容數
在當今數位時代,電資領域人才需求爆發式成長,不論是前端網頁設計、嵌入式開發、人工智慧、物聯網還是軟硬體整合,這些技術都在改變世界。而掌握 C/C++、Python、數位邏輯、電路學與嵌入式開發等大學電資領域的課程,正是進入這個高薪、高需求產業的關鍵!
2025/09/20
這篇文章整理了 Raspberry Pi 終端機中最常用的 Linux 指令,包含 pwd、ls、cd、mkdir、touch、nano、cp、mv、find、rm、rmdir 和 clear 等指令,並以淺顯易懂的方式說明其用法,適合 Raspberry Pi 新手學習與參考。
Thumbnail
2025/09/20
這篇文章整理了 Raspberry Pi 終端機中最常用的 Linux 指令,包含 pwd、ls、cd、mkdir、touch、nano、cp、mv、find、rm、rmdir 和 clear 等指令,並以淺顯易懂的方式說明其用法,適合 Raspberry Pi 新手學習與參考。
Thumbnail
2025/09/20
本章節教會讀者如何為樹莓派設定備用網路,讓讀者在不同的工作場所中,就算不外接螢幕、鍵盤、滑鼠等設備,也能令其連上網路、並同樣可以透過ssh、vnc連線控制樹莓派。
Thumbnail
2025/09/20
本章節教會讀者如何為樹莓派設定備用網路,讓讀者在不同的工作場所中,就算不外接螢幕、鍵盤、滑鼠等設備,也能令其連上網路、並同樣可以透過ssh、vnc連線控制樹莓派。
Thumbnail
2025/09/13
這篇文章提供詳細的樹莓派設定教學,包含下載Raspberry Pi Imager、燒錄配置設定、SSH連線、更新系統以及使用VNC Viewer連線到桌面環境等步驟,並附帶圖文解說,讓初學者也能輕鬆上手。
Thumbnail
2025/09/13
這篇文章提供詳細的樹莓派設定教學,包含下載Raspberry Pi Imager、燒錄配置設定、SSH連線、更新系統以及使用VNC Viewer連線到桌面環境等步驟,並附帶圖文解說,讓初學者也能輕鬆上手。
Thumbnail
看更多
你可能也想看
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
Python擁有便攜性和通用性,適用於多種場景,同時具有全球通用性。Python在科技製造業、資料分析、人工智慧等領域有廣泛應用,對於理工科背景者而言有獨特的優勢。透過在線課程、自學書籍、實作專案,以及參與社群和開源專案,理工背景者可以達成從轉職進入Python程式領域的目標。
Thumbnail
Python擁有便攜性和通用性,適用於多種場景,同時具有全球通用性。Python在科技製造業、資料分析、人工智慧等領域有廣泛應用,對於理工科背景者而言有獨特的優勢。透過在線課程、自學書籍、實作專案,以及參與社群和開源專案,理工背景者可以達成從轉職進入Python程式領域的目標。
Thumbnail
介紹如何用assign函數在Python中建立新欄位
Thumbnail
介紹如何用assign函數在Python中建立新欄位
Thumbnail
什麼是Python python是電腦程式語言的一種,如同python官方網站上的介紹 "Python是一種程式語,可讓你更快速地工作並更有效的整合系統"。簡單地說,就是你可用python這個程式語言去告訴電腦你想要作什麼,讓電腦來幫你完成你要作的事情。
Thumbnail
什麼是Python python是電腦程式語言的一種,如同python官方網站上的介紹 "Python是一種程式語,可讓你更快速地工作並更有效的整合系統"。簡單地說,就是你可用python這個程式語言去告訴電腦你想要作什麼,讓電腦來幫你完成你要作的事情。
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
Python是一種易學且功能強大的程式語言,具有直譯、動態語法等特性,並擁有豐富的標準庫。它在各領域如Web開發、數據科學和人工智慧等得到廣泛應用,並被許多大公司如Google和Facebook等使用。Python還有強大的框架、豐富的交互機能、和龐大的社區。
Thumbnail
Python是一種易學且功能強大的程式語言,具有直譯、動態語法等特性,並擁有豐富的標準庫。它在各領域如Web開發、數據科學和人工智慧等得到廣泛應用,並被許多大公司如Google和Facebook等使用。Python還有強大的框架、豐富的交互機能、和龐大的社區。
Thumbnail
本文在介紹如何用Python繪製各點大小不同的散布圖及用箭頭標註特殊點
Thumbnail
本文在介紹如何用Python繪製各點大小不同的散布圖及用箭頭標註特殊點
Thumbnail
今天來介紹python的函式 函式在python中是非常重要的一環,因為到了後期,程式會越來越複雜。 而函式可以想成是容易管理的小程式,當我們需要使用時,只需呼叫即可。
Thumbnail
今天來介紹python的函式 函式在python中是非常重要的一環,因為到了後期,程式會越來越複雜。 而函式可以想成是容易管理的小程式,當我們需要使用時,只需呼叫即可。
Thumbnail
本文詳細解說了 Python print() 函數的各種隱藏語法,包括 value、sep、end、file 和 flush。作者以清晰的範例和解說,讓從未接觸程式語言的人也能夠理解。而最後提到了訂閱房間的付費方式,並歡迎大家訂閱。文章內容較為詳細,提供了豐富的資訊。
Thumbnail
本文詳細解說了 Python print() 函數的各種隱藏語法,包括 value、sep、end、file 和 flush。作者以清晰的範例和解說,讓從未接觸程式語言的人也能夠理解。而最後提到了訂閱房間的付費方式,並歡迎大家訂閱。文章內容較為詳細,提供了豐富的資訊。
Thumbnail
本篇文章將教你如何使用Python和PyQt5來建立一個GUI應用程式。PyQt5是一個相當流行的Python模組,透過這個文章你將學習如何使用它來建立一個互動式的應用程式。
Thumbnail
本篇文章將教你如何使用Python和PyQt5來建立一個GUI應用程式。PyQt5是一個相當流行的Python模組,透過這個文章你將學習如何使用它來建立一個互動式的應用程式。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News