1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Nhập môn lập trình khoa học dữ liệu: Bài 6 - Trương Xuân Nam

23 14 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 23
Dung lượng 750,91 KB

Nội dung

Bài giảng Nhập môn lập trình khoa học dữ liệu: Bài 6 Ngôn ngữ lập trình python (5) cung cấp cho người học những kiến thức như: Ngoại lệ và xử lý ngoại lệ; Làm việc với tập tin; Bài tập. Mời các bạn cùng tham khảo!

NHẬP MƠN LẬP TRÌNH KHOA HỌC DỮ LIỆU Bài 6: Ngơn Ngữ Lập Trình Python (5) Nhắc lại kiến thức trước  Tập hợp (set) tập tĩnh (frozenset) kiểu liệu liệt kê, phần tử nằm khơng phép trùng nhau, frozenset khơng thể bị thay đổi  Cả hai hỗ trợ phép toán tập hợp toán học  Từ điển (dictionary): nhóm đơi (key, value), từ điển dạng tập hợp theo key  Module Package: khái niệm python tương ứng với file thư mục vật lý, cho phép phân cấp kiếm soát hiệu mã nguồn python TRƯƠNG XUÂN NAM Nội dung Ngoại lệ xử lý ngoại lệ Làm việc với tập tin Bài tập TRƯƠNG XUÂN NAM Phần Ngoại lệ xử lý ngoại lệ TRƯƠNG XUÂN NAM Ngoại lệ gì?  Ngoại lệ = lỗi, đúng, không hẳn  Thường người ta chia lỗi thành nhóm Lỗi viết chương trình: hệ chương trình khơng chạy thơng dịch (hoặc không dịch được, biên dịch) Lỗi chương trình chạy: hệ phải thực lại • Chẳng hạn nhập liệu khơng đúng, phải nhập lại Ngoại lệ: lỗi, xảy có bất thường khiến chức khơng thể thực • Chẳng hạn ghi liệu file, file lại bị tiến trình khác xóa TRƯƠNG XN NAM Ngoại lệ gì?  Ranh giới ngoại lệ lỗi mong manh, chí khó phân biệt nhiều tình  Cách chia lỗi thành nhóm có khuynh hướng cho mơi trường thực thi chương trình thân thiện hồn hảo  Python có xu hướng chia lỗi thành loại  Syntax error: viết sai cú pháp, khiến chương trình thông dịch không dịch  Exception: xảy bất thường khơng thiết kế • Như xử lý exception khiến chương trình ổn định hoạt động tốt tình TRƯƠNG XUÂN NAM Ngoại lệ gì?  Ví dụ syntax error: >>> while True print('Hello world') File "", line while True print('Hello world') ^ SyntaxError: invalid syntax  Ví dụ exception: >>> 10 * (1/0) Traceback (most recent call last): File "", line 1, in ZeroDivisionError: division by zero  Có vẻ syntax error exception!!! TRƯƠNG XUÂN NAM “xử lý” ngoại lệ Vòng lặp nhập X người dùng nhập vào giá trị số while True: try: x = int(input("Nhập số X: ")) break Khối nhập X (có thể nhập lỗi) except ValueError: print("Lỗi, nhập lại.") Xử lý lỗi xảy print("X =", x) TRƯƠNG XUÂN NAM Cú pháp try-except-else-finally  Có thể gồm tới khối:  Khối “try”: đoạn mã có khả gây lỗi, lỗi xảy ra, khối bị dừng dòng gây lỗi  Khối “except”: đoạn mã xử lý lỗi, thực có lỗi xảy ra, khơng bị bỏ qua  Khối “else”: xuất sau khối except cuối cùng, đoạn mã thực khơng có except thực (đoạn try khơng có lỗi)  Khối “finally”: cịn gọi khối clean-up, ln thực dù có xảy lỗi hay khơng TRƯƠNG XN NAM Cú pháp try-except-finally  Chú ý:  Khối try có khối nhất, phải viết  Khối finally có hay khơng, có khối phải viết cuối  Khối except khơng viết, có khối, nhiều khối except (để xử lý nhiều tình lỗi khác nhau)  Một khối except xử lý loại lỗi, nhiều loại lỗi tất loại lỗi  Nếu khơng xử lý triệt để lỗi “ném” trả lại lỗi lệnh “raise”  Có thể phát sinh ngoại lệ lệnh “raise ” TRƯƠNG XUÂN NAM 10 Cú pháp try-except-finally except (NameError, TypeError): # xử lý loại lỗi print("Name or Type error") except IOError as e: # lấy đối tượng lỗi, đặt tên e print(e) raise # trả lại lỗi except ValueError: # xử lý lỗi Value print("Value error") except: # xử lý tất lỗi lại print("An error occurred") raise NameError("Ko bit") else: # tạo lỗi “Ko bit” # thực khơng có lỗi print("OK") TRƯƠNG XUÂN NAM 11 Một số loại exception thường gặp Exception Miêu tả Exception Lớp sở (base class) tất ngoại lệ StopIteration Được tạo phương thức next() iterator không trỏ tới đối tượng StandardError Lớp sở tất exception có sẵn ngoại trừ StopIteration SystemExit ArithmeticError Lớp sở tất lỗi xảy cho phép tính số học OverflowError Được tạo phép tính vượt giới hạn tối đa cho kiểu số FloatingPointError Được tạo phép tính số thực thất bại ZeroDivisonError Được tạo thực phép chia cho số với tất kiểu số AssertionError Được tạo trường hợp lệnh assert thất bại TRƯƠNG XUÂN NAM 12 Một số loại exception thường gặp Exception Miêu tả AttributeError Được tạo trường hợp tham chiếu gán thuộc tính thất bại EOFError Được tạo khơng có input từ hàm raw_input() hàm input() tới EOF (viết tắt end of file) ImportError Được tạo lệnh import thất bại KeyboardInterrupt Được tạo người dùng ngắt việc thực thi chương trình, thường nhấn Ctrl+c LookupError Lớp sở cho tất lỗi truy cứu IndexError Được tạo mục khơng tìm thấy dãy (sequence) KeyError Được tạo key cho không tìm thấy Dictionary NameError Được tạo định danh khơng tìm thấy local global namespace TRƯƠNG XUÂN NAM 13 Một số loại exception thường gặp Exception Miêu tả UnboundLocalError Được tạo cố gắng truy cập biến cục từ hàm phương thức mà khơng có giá trị gán cho EnvironmentError Lớp sở cho tất ngoại lệ mà xuất ngồi mơi trường Python IOError Được tạo hoạt động i/o thất bại, chẳng hạn lệnh print hàm open() cố gắng mở file không tồn OSError Được lỗi liên quan tới hệ điều hành SyntaxError Được tạo có lỗi liên quan tới cú pháp IndentationError Được tạo độ thụt dịng code khơng xác định hợp lý SystemError Được tạo trình thơng dịch tìm thấy vấn đề nội tại, lỗi bắt gặp trình thơng dịch khơng TRƯƠNG XUÂN NAM 14 Một số loại exception thường gặp Exception Miêu tả SystemExit Được tạo trình thơng dịch sử dụng hàm sys.exit() Nếu khơng xử lý code, làm cho trình thơng dịch thoát TypeError Được tạo hoạt động hàm sử dụng kiểu liệu không hợp lệ ValueError Được tạo hàm xây dựng sẵn có kiểu tham số hợp lệ giá trị xác định cho tham số khơng hợp lệ RuntimeError Được tạo lỗi tạo không loại NotImplementedError Được tạo phương thức abstract, mà cần triển khai lớp kế thừa, không triển khai thực TRƯƠNG XUÂN NAM 15 Phần Làm việc với tập tin TRƯƠNG XUÂN NAM 16 Làm việc với tập tin  Làm việc với tập tin python gồm bước: Mở file Đọc/ghi file Đóng file  Các bước phát sinh ngoại lệ IOError  Thay đặt tồn bước khối try, ta mở file với phát biểu with đây: with open("myfile.txt") as f:  Ưu điểm: file ln đóng, dù có lỗi hay khơng TRƯƠNG XUÂN NAM 17 Mở file đóng file  Mở file: f = open(filename, mode)  Các chế độ mở file hay sử dụng:       ‘r’: đọc ‘w’: ghi ‘a’: ghi vào cuối file ‘r+’: đọc ghi ‘t’: mở file văn (mặc định) ‘b’: mở file nhị phân  Đóng file: f.close()  File khơng sử dụng nên đóng TRƯƠNG XUÂN NAM 18 Đọc file  Có hàm đọc file bản:  read(x): đọc x byte tiếp theo, khơng viết x đọc đến cuối file  readline(x): đọc dòng từ file, tối đa x byte, khơng viết x đọc tới gặp kí tự hết dịng hết file  readlines(x): sử dụng readline đọc dòng hết file trả danh sách string, viết x đọc tối đa x byte TRƯƠNG XUÂN NAM 19 Đọc file, ghi file  Nếu muốn duyệt hết file từ đầu đến cuối theo dịng sử dụng đoạn mã sau hiệu with open('workfile') as f: for line in f: print(line, end='')  Ghi liệu file:  write(x): ghi x file, trả số byte ghi  writelines(x): ghi toàn nội dung x theo dòng, x list of string TRƯƠNG XUÂN NAM 20 Một số hàm khác file  flush(): ép đẩy liệu nhớ tạm file  tell(): trả vị trí trỏ file  seek(n): dịch trỏ file đến vị trí byte thứ n  Hàm có thêm tham số thứ 2, cho phép diễn giải cách hiểu tham số n  Nếu không viết, =0: vị trí n tính từ đầu file  =1: vị trí n tính từ vị trí  =2: vị trí n tính từ cuối file  truncate(n): cắt file vị trí byte thứ n, vị trí (nếu không viết giá trị n) TRƯƠNG XUÂN NAM 21 Phần Bài tập TRƯƠNG XUÂN NAM 22 Bài tập Đọc file in hình dịng cuối Đọc file, tìm in nội dung dòng dài file Đọc file, tìm in từ dài file Đọc file, thống kê in tất chữ có file số lần xuất chữ Đọc file, thống kê in tần xuất xuất tất từ file, in theo thứ tự giảm dần số lần xuất TRƯƠNG XUÂN NAM 23 ... kiếm soát hiệu mã nguồn python TRƯƠNG XUÂN NAM Nội dung Ngoại lệ xử lý ngoại lệ Làm việc với tập tin Bài tập TRƯƠNG XUÂN NAM Phần Ngoại lệ xử lý ngoại lệ TRƯƠNG XUÂN NAM Ngoại lệ gì?  Ngoại lệ... error exception!!! TRƯƠNG XUÂN NAM “xử lý” ngoại lệ Vòng lặp nhập X người dùng nhập vào giá trị số while True: try: x = int(input( "Nhập số X: ")) break Khối nhập X (có thể nhập lỗi) except ValueError:... truncate(n): cắt file vị trí byte thứ n, vị trí (nếu khơng viết giá trị n) TRƯƠNG XUÂN NAM 21 Phần Bài tập TRƯƠNG XUÂN NAM 22 Bài tập Đọc file in hình dịng cuối Đọc file, tìm in nội dung dịng dài

Ngày đăng: 09/08/2021, 18:08