Python: Assertion trong Python

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

Assertion (Khẳng định) là một kiểm tra chuẩn mà bạn có thể bật hoặc tắt khi hoàn tất quá trình kiểm tra chương trình của mình.

Cách đơn giản nhất để nghĩ về một khẳng định là ví nó với một câu lệnh raise-if (hoặc chính xác hơn là một câu lệnh raise-if-not). Một biểu thức được kiểm tra và nếu kết quả trả về False thì một ngoại lệ sẽ được đưa ra.

Assertion được thực hiện bởi câu lệnh assert, từ khóa mới nhất của Python, được giới thiệu từ phiên bản 1.5.

Các lập trình viên thường đặt các xác nhận khi bắt đầu một hàm để kiểm tra đầu vào hợp lệ và sau một lệnh gọi hàm để kiểm tra đầu ra hợp lệ.

Câu lệnh assert

Khi gặp câu lệnh assert, Python sẽ đánh giá biểu thức đi kèm, điều này hy vọng là đúng. Nếu biểu thức là sai, Python sẽ đưa ra một ngoại lệ AssertionError .

Cú pháp:

assert Expression[, Arguments]

Nếu xác nhận không thành công, Python sử dụng ArgumentExpression làm đối số cho AssertionError. Các ngoại lệ AssertionError có thể được bắt và xử lý giống như bất kỳ ngoại lệ nào khác bằng cách sử dụng câu lệnh try-exception, nhưng nếu không được xử lý, chúng sẽ chấm dứt chương trình và tạo ra một truy nguyên (traceback).

Ví dụ

Dưới đây là ví dụ chuyển đổi nhiệt độ từ độ Kelvin (độ C) sang độ F. Vì 0 độ Kelvin là độ đông, nên hàm sẽ dừng nếu thấy nhiệt độ âm:

def KelvinToFahrenheit(temperature):
   assert(temperature >= 0),"Lạnh hơn so với độ 0 tuyệt đối!"
   return((temperature-273)*1.8)+32

print(KelvinToFahrenheit(273))
print(int(KelvinToFahrenheit(505.78)))
print(KelvinToFahrenheit(-5))

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

32.0
451
Traceback (most recent call last):
   File "test.py", line 9, in <module>
      print KelvinToFahrenheit(-5)
   File "test.py", line 4, in KelvinToFahrenheit
      assert (Temperature >= 0),"Lạnh hơn so với độ 0 tuyệt đối!"
AssertionError: Lạnh hơn so với độ 0 tuyệt đối!
» Tiếp: random trong Python
« Trước: Ngoại lệ (Exception)
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!