Một dãy, một thứ tự
Giả sử bốn lần đo nhiệt độ trong một thí nghiệm cho `nhiet_do = [24, 26, 25, 27]`. Mỗi số là một phần tử; `nhiet_do[0]` là 24 và `nhiet_do[3]` là 27. Python đánh chỉ số từ **0**, vì vậy dãy bốn phần tử có chỉ số 0, 1, 2, 3.
Mảng một chiều trong bài học là một dãy phần tử **cùng kiểu**. Có thể dùng `list` của Python để biểu diễn dãy ấy. Bản thân kiểu `list` rộng hơn: nó vẫn cho phép trộn số với chữ, nên không đồng nhất mọi `list` với mảng cùng kiểu.
Duyệt cả dãy rồi mới kết luận
Khi dãy có ít nhất một giá trị, trung bình là tổng chia cho số phần tử:
```python
nhiet_do = [24, 26, 25, 27]
trung_binh = sum(nhiet_do) / len(nhiet_do)
so_lan_cao_hon = 0
for x in nhiet_do:
if x > trung_binh:
so_lan_cao_hon += 1
print(trung_binh, so_lan_cao_hon)
```
Tổng là 102; chia 4 được 25,5. Hai giá trị 26 và 27 lớn hơn 25,5, nên chương trình in `25.5 2`. Nếu danh sách rỗng, `len(...)` bằng 0: cần yêu cầu nhập ít nhất một số hoặc xử lí riêng trước khi chia. Phép `in` kiểm một giá trị có xuất hiện trong dãy, còn vòng `for` lần lượt đọc các phần tử.
Bài luyện
Với `a = [4, 7, 9]`, biểu thức `a[1]` cho giá trị nào?
4 ở chỉ số 0.
Chỉ số 1 là phần tử thứ hai.
9 ở chỉ số 2.
Dãy có các chỉ số 0, 1, 2.
Lời giải
Python đánh chỉ số từ 0. Trong dãy này a[0]=4, a[1]=7, a[2]=9.
Bài luyện
Với `a = [4, 7, 9]`, câu `7 in a` nhận giá trị gì?
`in` hỏi giá trị có nằm trong danh sách.
Toán tử này kiểm giá trị, không kiểm chỉ số.
Độ dài danh sách là 3.
`in` dùng được với danh sách.
Lời giải
Dãy a chứa giá trị 7 ở vị trí chỉ số 1, nên `7 in a` là True.
Bài luyện
Trước khi tính `sum(a) / len(a)` với a do người dùng nhập, cần kiểm điều gì để tránh chia cho 0?
Thứ tự không quyết định mẫu số.
Số lẻ vẫn tính trung bình được.
Khi có phần tử, len(a) khác 0; các giá trị phải là số để cộng.
Không bắt buộc đúng hai giá trị.
Lời giải
Nếu a rỗng, len(a)=0 và phép chia lỗi. Với một dãy số không rỗng, tổng và trung bình tính được.
Đang học