Hàm
Trong lập trình chúng ta sẽ có lúc sử dụng một đoạn code lặp đi lặp lại nhiều lần trong chương trình. Hàm sẽ giúp chúng ta thực hiện điều này. Chúng ta có thể viết tất cả những gì chúng ta muốn thực hiện trong hàm sau đó chỉ cần gọi khi sử dụng. Như ở trên chúng ta đã sử dụng các hàm có sẵn như len(), divmod().
Định nghĩa hàm
Chúng ta sẽ dùng tư khóa def để thực hiện định nghĩa hàm. Ví dụ như sau:
Chúng ta sẽ thử viết một chương trình nhỏ để thực hiện tính tổng của hai số nguyên.
ở dòng thứ hai với giá trị từ bàn phím, chúng ta sẽ trả lại kết quả của a + b. Bạn phải gọi lại nó như sau:
Trong chương trình về số palindrom ở chương trước, chúng ta hay viết một hàm để kiểm tra chuỗi có phải là palindrome hay không sau đó trả về kết quả True hoặc False
Giờ bạn kiểm tra nào.
Biến cục bộ và biến toàn cục
Để có thể hiểu thế nào là biến cục bộ và biến toàn cục chúng ta sẽ xem hai ví dụ sau"
Kết quả như sau:
Giải thích:
Chúng ta có thể thấy, đầu tiên chúng ta sẽ gán 9 cho biến a, sau đó sẽ gọi hàm change(), trong hàm change() chúng ta sẽ gán giá trị 90 cho a và in ra số a. Sau khi hàm được gọi chúng ta sẽ in ra một lần nữa giá trị của a. Khi chúng ta gán a = 90 trong hàm, nó sẽ tạo một biến mới là biến a, nhưng biến a chỉ có giá trị và thực thi khi hàm được gọi và kết thúc khi hàm thực hiện xong. Ở đây cùng một tên nhưng chúng khác nhau khi ở trong và ngoài hàm.
Ở ví dụ này chúng ta sẽ định nghĩa biến toàn cục, tuy nhiên khi thay đổi giá trị a trong hàm nó chuyển đổi ra bên ngoài của hàm.
Kết quả ví dụ trên như sau:
Giá trị đối số mặc định
Trong hàm biến có thể có đối số mặc định, điều đó có nghĩa nếu chúng ta không đưa bất kì giá trị nào cho biến thì nó sẽ được gán mặc định.
Ở ví dụ trên chúng ta gán b = -99 trong hàm. Điều đó có nghĩa là giá trị của b sẽ là -99. Và nếu khi truyền giá trị cho biến của hàm nếu không truyền giá trị b thì mặc định sẽ là -99
Bạn hãy ghi nhớ chúng ta không thể có một đối số với đối sô mặc địn nếu bạn không có một giá trị mặc định trước đó. Ví dụ f(a, b=90, c) thì a, b sẽ có giá trị còn c không có giá trị nào.
Và bạn cũng nên chú ý giá trị mặc định chỉ được tính toán một lần, nếu bạn có bất cứ sự thay đổi nào sẽ làm danh sách thay đổi. Hãy xem ví dụ sau:
Để tránh điều này Python cung cấp cách cho bạn như sau:
Keyword arguments
Trong ví dụ trên bạn có thể thấy chúng ta sẽ gọi hàm với tên biến, ví dụ như func(12, c = 24), bằng cách đó chúng ta sẽ gán 24 cho c và b sẽ lấy giá trị mặc định. Bạn cũng nên chú ý trường hợp như sau:
Docstrings
Trong Python chúng ta sử dụng docstrings để giải thích sử dụng code như thế nào, nó sẽ hữu ích trong trình thông dịch và tạo tài liệu tự động. Dưới đây là ví dụ về docstring
Chúng ta sẽ tìm hiểu thêm về docstrings trong chương sau.
Hàm bậc cao Hàm bậc cao hay là functor là hàm có các chức năng sau:
Ví dụ:
map function
map rất hữu dụng trong hàm bậc cao trong Python.
Ví dụ:
Chúc các bạn thành công!
Last updated