Phần 3: Làm việc với hàm và xử lý file
1. Khái niệm về hàm trong Python, 2. Cách định nghĩa và gọi hàm, 3. Tham số và giá trị trả về, 4. Xử lý file (mở, đọc, ghi file), 5. Ví dụ thực hành: Đọc và ghi dữ liệu cảm biến vào file, 6. Giới thiệu về JSON và cách làm việc với dữ liệu JSON.
Phần 3: Làm việc với hàm và xử lý file
1. Khái niệm về hàm trong Python
Hàm trong Python là một đoạn mã được định nghĩa trước để thực hiện một nhiệm vụ cụ thể. Hàm giúp tổ chức mã, giảm thiểu sự lặp lại và cải thiện khả năng bảo trì của chương trình. Hàm có thể nhận đầu vào, thực hiện các phép toán và trả về kết quả.
2. Cách định nghĩa và gọi hàm
Để định nghĩa một hàm trong Python, chúng ta sử dụng từ khóa def, theo sau là tên hàm và các tham số (nếu có) trong dấu ngoặc. Cú pháp như sau:
def ten_ham(tham_so1, tham_so2):
# Thực hiện một số thao tác
return ket_qua
Ví dụ, chúng ta có thể định nghĩa một hàm tính tổng của hai số:
def tinh_tong(a, b):
return a + b
# Gọi hàm
tong = tinh_tong(5, 10)
print(tong) # Kết quả: 15
3. Tham số và giá trị trả về
Hàm có thể nhận nhiều tham số, và chúng ta cũng có thể định nghĩa tham số mặc định. Giá trị trả về của hàm được sử dụng bằng từ khóa return. Nếu không có return, hàm sẽ trả về None.
def chao_mung(ten="Khách"):
return f"Chào mừng {ten} đến với IoT!"
# Gọi hàm với tham số mặc định
print(chao_mung()) # Kết quả: Chào mừng Khách đến với IoT!
# Gọi hàm với tham số khác
print(chao_mung("Nam")) # Kết quả: Chào mừng Nam đến với IoT!
4. Xử lý file (mở, đọc, ghi file)
Python cung cấp các phương thức đơn giản để làm việc với file. Chúng ta có thể mở file bằng hàm open(), sau đó thực hiện các thao tác đọc hoặc ghi. Để đảm bảo file được đóng đúng cách, chúng ta nên sử dụng khối with.
# Mở và ghi vào file
with open('du_lieu.txt', 'w') as f:
f.write("Dữ liệu cảm biến: 25.5°C\n")
# Mở và đọc từ file
with open('du_lieu.txt', 'r') as f:
noi_dung = f.read()
print(noi_dung) # Kết quả: Dữ liệu cảm biến: 25.5°C
5. Ví dụ thực hành: Đọc và ghi dữ liệu cảm biến vào file
Giả sử chúng ta có một cảm biến nhiệt độ và chúng ta muốn ghi lại dữ liệu vào file để phân tích sau này. Dưới đây là ví dụ đơn giản:
import random
import time
def ghi_du_lieu_cambien(ten_file):
with open(ten_file, 'a') as f: # 'a' để ghi thêm vào file
nhiet_do = random.uniform(20.0, 30.0) # Giả lập đọc dữ liệu cảm biến
f.write(f"{time.ctime()}: Nhiệt độ: {nhiet_do:.2f}°C\n")
# Ghi dữ liệu vào file mỗi 5 giây
for _ in range(5):
ghi_du_lieu_cambien('du_lieu_cambien.txt')
time.sleep(5)
Trong ví dụ trên, chúng ta đã tạo một hàm ghi_du_lieu_cambien để ghi dữ liệu nhiệt độ vào file. Dữ liệu được ghi theo định dạng thời gian và nhiệt độ. Chúng ta sử dụng vòng lặp để ghi dữ liệu mỗi 5 giây.
6. Giới thiệu về JSON và cách làm việc với dữ liệu JSON
JSON (JavaScript Object Notation) là định dạng dữ liệu nhẹ, dễ đọc và dễ ghi. Python cung cấp thư viện json để làm việc với định dạng này. Chúng ta có thể chuyển đổi giữa các đối tượng Python và chuỗi JSON.
import json
# Dữ liệu mẫu
du_lieu = {
"thong_so": {
"nhiet_do": 25.5,
"do_am": 60
},
"thoi_gian": time.ctime()
}
# Chuyển đổi đối tượng Python thành chuỗi JSON
du_lieu_json = json.dumps(du_lieu)
print(du_lieu_json)
# Chuyển đổi chuỗi JSON thành đối tượng Python
du_lieu_phan_tich = json.loads(du_lieu_json)
print(du_lieu_phan_tich["thong_so"]["nhiet_do"]) # Kết quả: 25.5
Trong ví dụ trên, chúng ta đã tạo một từ điển Python và chuyển đổi nó thành chuỗi JSON bằng json.dumps(). Sau đó, chúng ta chuyển đổi chuỗi JSON trở lại thành đối tượng Python bằng json.loads().
Lưu ý: Khi làm việc với file và dữ liệu JSON, hãy luôn kiểm tra lỗi để đảm bảo rằng chương trình của bạn không bị lỗi khi gặp sự cố trong quá trình đọc hoặc ghi dữ liệu.
