btvn.vn
Tìm kiếm Đăng nhập

Đọc tệp mặt hàng theo từng dòng

Lưu trên thiết bị này
Kĩ thuật lập trình — CS · Chọn bài khác

Quy ước tệp trước khi đọc

Tạo tệp `Data.inp` UTF-8 trong cùng thư mục với chương trình, ví dụ: ```text Táo, 1200 Mơ, 900 Lê, 1000 ``` Mỗi dòng hợp lệ có đúng một dấu phẩy phân cách; tên không rỗng và không chứa dấu phẩy, phần sau là số doanh số. Hàm đọc thêm tên vào dãy `P` và số vào dãy `S` ở cùng chỉ số: `P[0]="Táo"` đi cùng `S[0]=1200.0`. Đây là dữ liệu giả để tập cách đọc tệp, không phải giá bán thật.

Một hàm có kết quả và lỗi rõ ràng

```python def doc_du_lieu(ten_tep): P, S = [], [] with open(ten_tep, encoding="utf-8") as f: for dong in f: dong = dong.strip() if not dong: continue phan = dong.split(",") if len(phan) != 2 or not phan[0].strip(): raise ValueError("Dòng phải có tên và doanh số") P.append(phan[0].strip()) S.append(float(phan[1].strip())) return P, S P, S = doc_du_lieu("Data.inp") print(P, S) ``` Với tệp mẫu, kết quả là `['Táo', 'Mơ', 'Lê'] [1200.0, 900.0, 1000.0]`. `with open` đóng tệp sau khi đọc. Nếu thiếu dấu phẩy, tên rỗng hoặc phần doanh số không đổi được thành số, chương trình báo lỗi thay vì tạo hai dãy lệch nhau. Chương trình báo cáo ba cao/ba thấp sẽ cần **ít nhất sáu mặt hàng**; ba dòng ở đây chỉ dùng để kiểm mô-đun đọc.

Bài luyện

Với dòng tệp `"Mơ, 900"`, hai giá trị tương ứng cần lưu là gì?
Chọn một đáp án

Bài luyện

Điều gì giữ cho `P[i]` và `S[i]` mô tả cùng một mặt hàng?
Chọn một đáp án

Bài luyện

Với dòng `"Cam 1500"` thiếu dấu phẩy, hàm `doc_du_lieu` làm gì?
Chọn một đáp án

Đang học