Trước khi có định nghĩa chính thức về hàm-function trong Python, chúng ta xét một ví dụ:
Vẫn "trung thành" với phong cách trong những phần trước, hãy xét một chương trình đóng mở mái che vườn rau tự động.
Chúng ta tạm hình dung cấu trúc của chương trình với "phong cách" của chương trình tào lao như sau:
if(Trời nắng to){
Đóng mái che
Đo nhiệt độ
Đo độ ẩm không khí
Tưới rau
}
else if(Trời nắng nhẹ){
Mở mái che
Đo nhiệt độ
Đo độ ẩm không khí
Tưới rau
}
else if(Trời mưa to){
Đóng mái che
Đo nhiệt độ
Đo độ ẩm không khí
Ngừng tưới rau
}
else if(Trời mưa nhẹ){
Mở mái che
Đo nhiệt độ
Đo độ ẩm không khí
Ngừng tưới rau
}
else{
//Code else-Làm một việc gì khác
}
Ta sẽ thấy rằng việc đo nhiệt độ, tưới rau, đóng mở mái...cứ lặp đi lặp lại rất nhiều lần. Nếu đây là một việc lặp đi lặp lại hàng trăm lần thì công việc lập trình thật sự trở nên rất nhàm chán...Từ đây khái niệm về Hàm-Function ra đời.
Hàm (function) là một nhóm các câu lệnh cùng nhau thực hiện một nhiệm vụ, một chức năng nào đó. Bạn có thể truyền dữ liệu, được gọi là tham số, vào một hàm.
Định nghĩa một hàm
Trong Python, một hàm được định nghĩa bằng từ khóa def.
Ví dụ, đây là một hàm đơn giản
def my_function():
print("Xin Chao Dat Viet Lap Trinh")
my_function() # Gọi hàm
Tiếp tục sử dụng IDE Online để chạy các ví dụ
Để định nghĩa hàm, chúng ta cần theo các qui tắc sau:
- Từ khóa def được sử dụng để bắt đầu phần định nghĩa hàm. Def xác định phần bắt đầu của khối hàm.
- def được theo sau bởi ten_ham được theo sau bởi các dấu ngoặc đơn ().
- Các tham số được truyền vào bên trong các dấu ngoặc đơn. Ở cuối là dấu hai chấm :.
- Trước khi viết một code, một độ thụt lề được cung cấp trước mỗi lệnh. Độ thụt dòng này nên giống nhau cho tất cả các lệnh bên trong hàm đó.
- Lệnh đầu tiên của hàm là tùy ý, và nó là Documentation String của một hàm đó.
Đối số (Arguments) của hàm
Thông tin có thể được chuyển vào các hàm dưới dạng đối số.
Các đối số được chỉ định sau tên hàm, bên trong dấu ngoặc đơn. Bạn có thể thêm bao nhiêu đối số tùy thích, chỉ cần phân tách chúng bằng dấu phẩy.
Đây là ví dụ
def my_function(dungcu):
print(dungcu + " Tennis")
my_function("Vot")
my_function("Bong")
my_function("Giay")
Chạy chương trình
Đối số (argument) và Tham số (parameter).
Đôi khi bạn sẽ thấy nhiều bài phân biệt Đối số (argument) và Tham số (parameter).
Nó cũng giống như chúng ta đã nói về Phiên dịch và Biên dịch trước đây, cá nhân chúng tôi cho rằng cứ giữ nguyên parameter và argument thì sẽ dễ hơn.Khi viết một hàm, nếu cần thiết ta có thể sử dụng một hoặc nhiều parameter (các parameter là tùy chọn; có nghĩa là, một hàm có thể không chứa parameter.)
Trong hàm my_function() dungcu là tham số của hàm. Tham số (parameter) này chưa được gán bất cứ giá trị nào.
Khi ta gọi hàm, ta truyền giá trị Vot, Bong, Giay cho tham số dungcu, lúc này dungcu được gọi là argument.
Số lượng đối số (Arguments)
Theo mặc định, một hàm phải được gọi với số lượng đối số chính xác. Có nghĩa là nếu hàm của bạn cần có 2 đối số, bạn phải gọi hàm với 2 đối số, không nhiều hơn cũng không ít hơn.
Vẫn sử dụng ví dụ trên, nếu chúng ta gọi hàm my_function(dungcu) mà không có đối số thì sẽ nhận báo lỗi. Đây là code:
def my_function(dungcu):
print(dungcu + " Tennis")
my_function()
Chạy chương trình:
Hoặc nếu hàm my_function(dungcu) trên có 1 đối số mà khi gọi hàm chúng ta gọi 2 đối số thì cũng nhận báo lỗi.
Ví dụ:
def my_function(dungcu):
print(dungcu + " Tennis")
my_function("Bong","Vot")
Chạy chương trình
Đối số tùy ý, *args
Nếu chúng ta không biết có bao nhiêu đối số sẽ được truyền vào hàm của mình, hãy thêm * trước tên tham số trong định nghĩa hàm.
Bằng cách này, hàm sẽ nhận được một bộ đối số và có thể truy cập các mục tương ứng. Đây là ví dụ
def my_function(*sinhvien):
print("Sinh vien co diem cao nhat la " + sinhvien[2])
my_function("Tuan", "Thao", "Thanh", "Hau")
Chạy chương trình
Không có nhận xét nào:
Đăng nhận xét