You are on page 1of 23

Chương 4: HÀM (FUNCTION)

4.1 Giới thiệu


4.2 Khai báo và gọi hàm
4.3 Hàm con và hàm Lambda
4.4 Hàm tích hợp sẵn

1
4.1 Giới thiệu:

Hàm (Function):
 Trong Python, Hàm là một khối lệnh được tổ chức để
thực hiện một hành động/tác vụ nào đó.
 Hàm có thể tái sử dụng, do đó giúp tránh việc sử dụng
lại code và giúp chương trình đơn giản hơn
 Python bao gồm: hàm tích hợp sẵn (built-in function) và
hàm tự định nghĩa (user define function).

• VD: print(), len() … là những hàm tích hợp sẵn trong Python

2
4.1 Giới thiệu:

 Đặc điểm của hàm:


 Hàm bao gồm tên hàm và dấu () đặt sau tên hàm (VD:
print() ) để phân biệt với các thành phần khác trong
chương trình
 Hàm có thể có tham số (biến của hàm) hoặc không.
 Hàm có thể trả về giá trị hoặc không.
 Hàm cần được định nghĩa (khai báo) trước khi sử dụng
(gọi hàm).
 Hàm có thể được sử dụng nhiều lần trong 1 chương
trình.

3
4.1 Giới thiệu:

 Lưu ý:
- Tên hàm không được trùng với các từ khóa của chương trình

and, assert, break, class, continue,


def, del, elif, else, except, exec,
finally, for, from, global, if,
import, in, is, lambda, not, or,
pass, print, raise, return, try,
while

4
4.2 Khai báo và gọi hàm:

4.2.1 Cú pháp khai báo hàm:

• def: từ khóa đánh dấu bắt đầu khai báo hàm


• functionName: tên của hàm, dùng để phân biệt
• parameters: các tham số (các biến) của hàm
• codes: Thân hàm chứa các câu lệnh của hàm
• return: Lệnh return dùng để trả về giá trị; return là lệnh không bắt
buộc phải có trong thân hàm
• expression: Giá trị trả về của hàm

5
4.2 Khai báo và gọi hàm:

4.2.1 Cú pháp khai báo hàm:

v# Hàm tính và in giá trị tổng hai số

>>> def Tong_1(a,b):


c = a + b
print(‘Tổng =‘,c)

• Tong_1: tên hàm


• a,b: tham số của hàm

6
4.2 Khai báo và gọi hàm:

4.2.2 Hàm có trả về giá trị:


 Hàm có trả về giá trị: trả về một giá trị sau khi hàm kết
thúc; giá trị này có thể được sử dụng trong các tính toán
tiếp theo.
 Hàm có trả về giá trị sẽ có thêm lệnh return.

7
4.2 Khai báo và gọi hàm:

4.2.2 Hàm có trả về giá trị:

v# Hàm tính và trả về giá trị tổng hai số

>>> def Tong_2(a,b):


c = a + b
return c

8
4.2 Khai báo và gọi hàm:

4.2.3 Sử dụng hàm (Gọi hàm):

 Hàm sau khi được khai báo có thể được sử dụng bằng
cách gọi hàm; python cho phép gọi hàm đã khai báo từ
một hàm khác, chương trình khác hay từ bất kì vị trí nào
trong chương trình.
 Để gọi hàm, ta sử dụng cú pháp sau:

>>> Tên_hàm (các giá trị)

VD:
>>> Tong_1(3,5)
9
4.2 Khai báo và gọi hàm:

4.2.3 Sử dụng hàm (Gọi hàm):

 Đối với hàm không trả về giá trị: hàm được gọi trực tiếp
từ đầu câu lệnh.
 Đối với hàm có trả về giá trị: hàm có thể được dùng để
gán giá trị cho biến, đưa vào các biểu thức tính toán,
hoặc được dùng như một biến trong hàm khác

VD:
>>> a = Tong_2(3,5)

10
4.2 Khai báo và gọi hàm:

4.2.3 Truyền giá trị cho tham số của hàm:

 Đối với hàm không trả về giá trị: hàm được gọi trực tiếp
từ đầu câu lệnh.
 Đối với hàm có trả về giá trị: hàm có thể được dùng để
gán giá trị cho biến, đưa vào các biểu thức tính toán,
hoặc được dùng như một biến trong hàm khác

VD:
>>> a = Tong_2(3,5)

11
4.2 Khai báo và gọi hàm:

4.2.4 Tham số của hàm:


 Hàm có thể có 0,1 hoặc nhiều tham số.
 Giữa các tham số cách nhau bởi dấu phẩy ‘,’ khi khai
báo hàm
 Có 4 loại tham số của hàm trong python:
 Tham số bắt buộc.
 Tham số mặc định (Default parameter).
 Tham số có độ dài thay đổi (Variable-length
parameter).
 Tham số từ khóa (Keyword parameter).

12
4.2 Khai báo và gọi hàm:

4.2.4 Tham số của hàm:


 Tham số bắt buộc:
 Khi gọi hàm bắt buộc phải truyền giá trị cho tham số;
nếu không câu lệnh sẽ bị lỗi.
v# Hàm tính và trả về giá trị tổng hai số

>>> def Tong_2(a,b):


c = a + b
return c

13
4.2 Khai báo và gọi hàm:

4.2.4 Tham số của hàm:


 Tham số mặc định:
 Khi gọi hàm nếu không truyền giá trị cho tham số,
hàm sẽ lấy giá trị mặc định để gán cho tham số.
v# Hàm tính và trả về giá trị tổng hai số

>>> def Tong_2(a = 0,b = 0):


c = a + b
return c

14
4.2 Khai báo và gọi hàm:

4.2.4 Tham số của hàm:


 Tham số có độ dài thay đổi:
 Đây là tham số đặc biệt của hàm, khi gọi hàm có thể
truyền nhiều giá trị cho tham số này.
 Tham số đặc biệt luôn phải nằm sau cùng khi khai
báo hàm
v# Hàm tính và in giá trị tổng nhiều số

>>> def Tong_2(a,b,*db):


c = a + b
for x in db:
c = c + x
return c

15
4.2 Khai báo và gọi hàm:

4.2.4 Tham số của hàm:


 Tham số từ khóa:
 Khi sử dụng hàm, thông thường ta chỉ cần ghi giá trị
cần truyền cho tham số của hàm.
 Nếu khi gọi hàm ta ghi cả tên của tham số và giá trị;
khi đó vị trí giữa các tham số có thể thay đổi mà
không làm ảnh hưởng đến kết quả
v# Hàm tính lũy thừa
>>> def Luy_thua(a,b):
c = 1
for x in range(1,b+1):
c = c*a
return c
>>> print(Luy_thua(b = 2, a = 3))

16
4.2 Khai báo và gọi hàm:

4.2.5 Docstring trong Python:


 Docstring (viết tắt của Documentation string):
 Chuỗi kí tự xuất hiện ngay sau dòng header của hàm.
 Dùng để giải thích về chức năng của hàm.
 Docstring là không bắt buộc khi khai báo hàm
v# Hàm tính Lũy thừa hai số

>>> def Luy_thua(a,b):


“““ Hàm tính lũy thừa hai số ”””
c = 1
for x in range(1,b+1):
c = c*a
return c
>>> print(Luy_thua.__doc__)

17
4.3 Hàm lambda và hàm con:

4.3.1 Hàm lambda:

 Hàm lambda (còn gọi là hàm vô danh) là một hàm không


có tên.
 Khi khai báo sử dụng từ khóa lambda thay cho def
 Hàm lambda có thể có nhiều tham số, nhưng thân hàm
chỉ có 1 biểu thức duy nhất

>>> lambda par1,par2,… : expression

18
4.3 Hàm lambda và hàm con:

4.3.1 Hàm lambda:

>>> mySum = lambda a,b: a + b


>>> x = mySum(5,10)
>>> print(x)

19
4.3 Hàm lamda và hàm con:

4.3.2 Hàm con (Nested function):

 Hàm con là 1 hàm được khai báo trong thân của 1 hàm
khác
 Hàm con chỉ có được sử dụng trong hàm chứa câu lênh
khai báo hàm con

20
4.3 Hàm lamda và hàm con:

4.3.3 Phạm vi sử dụng của biến:

 Các biến trong một chương trình không phải có thể được
truy câp tại bất kì vị trí nào trong chương trình mà còn
phụ thuộc vào vị trí khai báo của biến.
 Trong python, có 2 khái niệm về phạm vi sử dụng của
biến:
 Biến cục bộ
 Biến toàn cục

21
4.3 Hàm lamda và hàm con:

4.3.3 Phạm vi sử dụng của biến:

 Biến cục bộ (Local):


 Các biến được khai báo trong thân của 1 hàm được
gọi là biến cục bộ
 Biến cục bộ chỉ có thể được truy xuất bên trong thân
hàm chứa câu lệnh khai báo
 Không thể truy xuất đến biến cục bộ từ các vị trí khác
trong chương trình

22
4.3 Hàm lamda và hàm con:

4.3.3 Phạm vi sử dụng của biến:

 Biến toàn cục (Global):


 Biến được định nghĩa bên ngoài hàm được gọi là
biến toàn cục
 Biến toàn cục có thể được truy xuất ở mọi vị trị trong
chương trình (sau câu lệnh khai báo biến)
 Tất cả các hàm đều có thể truy xuất đến biến toàn
cục

23

You might also like