Python dainganxanh
  • Lời nói đầu
  • Chương I. SƠ LƯỢC
    • Bài 1. Cài đặt môi trường
    • Bài 2. Từ khóa và định danh
    • Bài 3. Câu lệnh, khối lệnh và chú thích
    • Bài 4. Nhập, xuất dữ liệu
    • Bài 5. Toán tử và lệnh gán
    • Bài 6. Biến, Hằng
    • Bài 7. Kiểu dữ liệu
    • Bài 8. Thao tác với tệp (cơ bản)
    • Bài 9. Tổng quan về Python
    • Bài tập chương 1
  • Chương II. RẼ NHÁNH - LẶP
    • Bài 10. Cấu trúc rẽ nhánh if…else
    • Bài 11. Cấu trúc lặp với for
    • Bài 12. Cấu trúc lặp với while
    • Bài 13. Lệnh break và continue
    • Bài tập chương 2
  • Chương III. HÀM & MODULE
    • Bài 14. Hàm
    • Bài 15. Tham số hàm
    • Bài 16. Đệ quy
    • Bài 17. Hàm ẩn danh
    • Bài 18. Biến toàn cục và cục bộ
    • Bài 19. Module
    • Bài 20. Package
  • Chương IV. KIỂU DỮ LIỆU
    • Bài 21. Dữ liệu kiểu số
    • Bài 22. Dữ liệu kiểu string
    • Bài 23. Dữ liệu kiểu list
    • Bài 24. Dữ liệu kiểu tuple
    • Bài 25. Dữ liệu kiểu set
    • Bài 26. Dữ liệu kiểu dictionary
  • Chương V. TỆP & THƯ MỤC
    • Bài 27. Đọc và ghi file
    • Bài 28. Quản lý file và folder
  • Chương VI. LỖI & NGOẠI LỆ
    • Bài 29. Ngoại lệ
    • Bài 30. Xử lý ngoại lệ
    • Bài 31. Xây dựng ngoại lệ
  • Chương VII. HƯỚNG ĐỐI TƯỢNG
    • Bài 32. Lập trình hướng đối tượng
    • Bài 33. Đối tượng và Lớp
    • Bài 34. Kế thừa
    • Bài 35. Đa kế thừa
    • Bài 36. Nạp chồng toán tử
  • Chương VIII. NGÀY - GIỜ
    • Python datetime
    • Python strftime()
    • Python strptime()
    • Current date and time
    • Get Current time
    • Timestamp to datetime
    • Python time Module
    • Python sleep()
  • Chương IX. CHỦ ĐỀ NÂNG CAO
    • Python Iterators
    • Python Generators
    • Python Closures
    • Python Decorators
    • Python @property decorator
    • Python RegEx
    • Python Examples
  • PHỤ LỤC - GHI CHÉP
    • Hàm map()
    • Cài Sublime Text để code Python
    • Ghi chép - ghi chú
    • Mảng 2 chiều
    • Công thức với dãy số
  • Tài liệu tham khảo
  • www.dainganxanh.com
  • 🐍Khóa học Python
  • 🤷‍♀️Hỏi đáp, chia sẻ (FG)
  • 🎮Sinh Test chấm Themis
Powered by GitBook
On this page
  • Yêu cầu:
  • Bài làm
  • Giải thích:
  • Đọc dữ liệu vào

Was this helpful?

  1. PHỤ LỤC - GHI CHÉP

Mảng 2 chiều

Một ví dụ về đọc dữ liệu từ file và xử lý mảng 2 chiều

Cho file mang2.in như sau:

4 5
11 8 88 6
20 3 80 60
30 5 99 123
42 7 20 10
55 4 33 2020

Trong đó: Dòng thứ nhất là 2 số nguyên dương m, n cách nhau bở một khoảng trắng. n dòng tiếp theo, mỗi dòng gồm m số nguyên cách nhau bởi một khoảng trắng tạo thành mảng ma có m cột, n dòng.

(mảng ma gồm 4 cột 5 dòng)

Yêu cầu:

a. Đọc dữ liệu từ file mang2.in và in ra màn hình mảng ma.

b. Tính tổng đường chéo của mảng gồm m dòng đầu tiên của mảng ma. (tong = 11+3+99+10 = 123)

Bài làm

with open('mang2.IN') as fi:
    m,n = list(map(int,fi.readline().split()))
    ma = []
    for i in range(n):
        ma.append(list(map(int,fi.readline().split())))

## Câu a
for a in ma:
    print(a)

## Câu b
tong = 0
for i in range(m):
    for j in range(m):
        if i == j: tong += ma[i][j]
print(tong)

Giải thích:

Đọc dữ liệu vào

m,n = list(map(int,fi.readline().split()))

Lệnh này sử dụng phương thức .split() để tách xâu bởi các khoảng trắng tạo thành list. Như vậy, với dòng đầu của file mang2.in là 4 5 ta dùng lệnh fi.readline().split()) và thu được dữ liệu vào là ['4', '5'].

Nếu ta dùng m,n = fi.readline().split() thì m được gán bằng '4' và n được gán bằng '5'. Lúc này m,n có kiểu dữ liệu là string.

Để chuyển dữ liệu từ string sang int ta có thể ép kiểu cho từng biến. Tuy nhiên như thế sẽ làm cho code dài và khó đọc. Trong bài này ta chuyển dữ liệu string sang int bằng hàm map(). m,n = list(map(int,fi.readline().split()))

Để dễ hiểu hơn ta xét ví dụ sau:

s = '1 2 3'

# Tách xâu s thành list a
ma = s.split() 

# in mảng a ta có: ['1', '2', '3']. 
#(lúc này các phần tử là string)
print(ma)

# Chuyển các phần tử của mảng a thành kiểu int
ma = list(map(int,ma))

# in mảng a ta có: [1, 2, 3]
print(ma)

Còn tiếp...

PreviousGhi chép - ghi chúNextCông thức với dãy số

Last updated 4 years ago

Was this helpful?

Đọc thêm về hàm map() tại đây
Xem thêm ví dụ ép kiểu bằng map() tại đây