SlideShare a Scribd company logo
Functions
Ba Nguyễn
Functions
Hàm (phương thức - function) được sử dụng để đóng gói các khối mã (code block), cho phép tái sử
dụng mã ở nhiều nơi, giảm thiểu code, giảm lỗi, …
Cú pháp khai báo hàm:
def func_name(parameter_list):
pass
Cú pháp gọi hàm:
func_name(argument_list)
💡 Tham số (parameter) khai báo các giá trị (biến) được sử dụng bên trong hàm, các cuộc gọi hàm
cung cấp các giá trị tương ứng (argument) với các tham số được khai báo
💡 Hàm có thể có tham số hoặc không
Functions
def greet():
print("Hi there")
print("Welcome")
greet()
def greet(first_name, last_name): # two parameters: first_name, last_name
print(f"Hi, {first_name} {last_name}")
print("Welcome")
greet("Ba", "Nguyễn") # first_name = “Ba”, last_name = “Nguyễn”
Return
💡 Có 2 loại hàm
- Thực thi một nhiệm vụ nào đó
- Tính toán và trả về một giá trị
💡 Mặc định hàm luôn trả về một giá trị (None), để chỉ định một giá trị trả về từ hàm, sử dụng câu
lệnh return
def sum(a, b):
return a + b
print(sum(1, 5)) # 6
💡 Câu lệnh return dừng (ngắt) hàm, các câu lệnh phía dưới bị bỏ qua
💡 Khai báo hàm nên sử dụng type annotation và docstring để ghi chú rõ ràng chức năng của
hàm, các tham số truyền vào có kiểu dữ liệu gì, loại dữ liệu trả về
def sum(a: int, b: int) -> int:
"""
Return sum of two number
Parameters:
- a: integer
- b: integer
Return: a + b -> integer
"""
return a + b
Type Annotation, Docstring
Scope
Trong Python, có 2 kiểu của biến, tương ứng với phạm vi (scope) tồn tại của biến
- Biến cục bộ - function scope (được khai báo trong một function)
- Biến toàn cục - file scope (được khai báo bên ngoài tất cả các function)
Biến cục bộ chỉ tồn tại bên trong hàm mà nó được khai báo, ngược lại, biến toàn cục có thể được
gọi ở bất kỳ đâu, bên trong bất kỳ hàm nào
first_name = "Ba"
def greet():
last_name = "Nguyễn"
print(f"Hello, {first_name} {last_name}")
greet()
Scope
💡 Python không có block scope giống như một số ngôn ngữ khác 😍
💡 Mặc định việc thay đổi giá trị một biến toàn cục bên trong hàm không ảnh hưởng đến biến
toàn cục (trừ khi khai báo biến bên trong hàm với từ khóa global - don’t do this)
first_name = "Ba"
last_name = "Nguyễn"
def greet():
first_name = "Béo"
global last_name
last_name = "Ú"
print(first_name, last_name) # Ba Ú
Default parameter, keyword arguments
Có thể gán một giá trị mặc định cho các tham số hàm, giá trị mặc định sẽ được sử dụng nếu cuộc
gọi hàm không cung cấp đối số tương ứng
Ngoài ra, trong cuộc gọi hàm, có thể sử dụng keyword arguments để chỉ định rõ ràng giá trị sẽ
được truyền cho tham số nào của hàm
def greet(first_name: str = "Ba", last_name: str = "Nguyễn") -> None:
print(f"Hello, {first_name} {last_name}")
greet() # Hello, Ba Nguyễn
greet(first_name="Béo Ú") # Hello, Béo Ú Nguyễn
greet(last_name="Còi") # Hello, Ba Còi
*args
Cú pháp *args cho phép truyền vào hàm số lượng đối số bất kỳ, các đối số truyền vào được đặt
trong một tuple
def multiply(*numbers):
total = 1
for number in numbers:
total *= number
return total
multiply(1, 2, 3, 4, 5, 6) # numbers = (1, 2, 3, 4, 5, 6) -> 720
💡 Có thể dùng kết hợp cả *args và tham số hàm thông thường, tuy nhiên, *args phải đặt sau
tham số, hoặc sử dụng keyword argument trong cuộc gọi hàm
**kwargs
Cú pháp **kwargs là biến thể của *args, khác biệt ở chỗ, các đối số trong cuộc gọi hàm được
truyền vào với keyword argument và args là dictionaries, không phải tuple
def create_user(**user):
print(user)
print(user["name"])
create_user(id=1, name="Ba")
# user = {'id': 1, 'name': 'Ba'}
# Ba
💡 Có thể dùng kết hợp cả *args và **kwargs và tham số thông thường, tuy nhiên, *args phải
đặt trước **kwargs và đối số truyền vào cũng tương tự
Debugging

More Related Content

PDF
hàm_nocopy.pdf
PDF
Python Beginner Class day-07-08-module
PDF
Lecture_3_Python_Basics_2_For student.pdf
PDF
Tu-Hoc-Python-Co-Ban-Trong-10-Phut-NIIT
PDF
Quyen 1. LY THUYET VA BAI TAP NNLT PYTHON.pdf
PPT
PDF
Hàm và Chuỗi
PPTX
python3.pptx
hàm_nocopy.pdf
Python Beginner Class day-07-08-module
Lecture_3_Python_Basics_2_For student.pdf
Tu-Hoc-Python-Co-Ban-Trong-10-Phut-NIIT
Quyen 1. LY THUYET VA BAI TAP NNLT PYTHON.pdf
Hàm và Chuỗi
python3.pptx

Similar to python03.pdf (20)

PPT
Chapter03 function
PPTX
Python Programming basic document for beginners
PDF
temp.pdf
PPTX
Hàm(Funtion),khái niệm, cú pháp, lợi ích, ví dụ
PDF
Hàm và nạp chồng hàm
PPTX
Lập trình cho trí tuệ nhân tạo tuần 2.pptx
PPTX
ky thuat lap tirnh giao tiep ky thuat lap tirnh giao tiep
PPTX
02-Các khái niệm cơ bản.pptx
PPT
Phan2 chuong5 ctrinhcon
PPTX
Chương 1_Ngon ngu lap trinh python và các khái niệm cơ bản.pptx
DOCX
1. Python cơ bản.docx
PPT
Session 15
PPT
Session 15
PDF
lap trinh c Phan2 chuong5
PDF
Python Beginner Class day-02-strings
PPTX
ngon-ngu-lap-trinh-python_C1_cac_khai_niem_(PI).pptx
PDF
Chuong_4_HAM CONsadasdkjkasjkdjaksdjkalsjkdjaskjd
PDF
C23_Buoi1_BasicC_aewfdvccccccccccccc.pdf
PPTX
BC-HDBM CD PYTHON 1234567888888888888889
PPT
Nmlt C06 Ham
Chapter03 function
Python Programming basic document for beginners
temp.pdf
Hàm(Funtion),khái niệm, cú pháp, lợi ích, ví dụ
Hàm và nạp chồng hàm
Lập trình cho trí tuệ nhân tạo tuần 2.pptx
ky thuat lap tirnh giao tiep ky thuat lap tirnh giao tiep
02-Các khái niệm cơ bản.pptx
Phan2 chuong5 ctrinhcon
Chương 1_Ngon ngu lap trinh python và các khái niệm cơ bản.pptx
1. Python cơ bản.docx
Session 15
Session 15
lap trinh c Phan2 chuong5
Python Beginner Class day-02-strings
ngon-ngu-lap-trinh-python_C1_cac_khai_niem_(PI).pptx
Chuong_4_HAM CONsadasdkjkasjkdjaksdjkalsjkdjaskjd
C23_Buoi1_BasicC_aewfdvccccccccccccc.pdf
BC-HDBM CD PYTHON 1234567888888888888889
Nmlt C06 Ham

Recently uploaded (7)

PPTX
KỸ THUẬT GỢI Ý NÂNG CAO KỸ THUẬT GỢI Ý NÂNG CAO
PPTX
PRESENTATION ABOUT MICROSOFT FABRIC.pptx
PPTX
chuong2TTHCMupdate14tdddddddđ7n2024.pptx
PPT
Tham Khao bài giảng trí tuệ nhân tại.ppt
PPTX
CÁC HẠN CHẾ CỦA MÔ HÌNH AI NỀN CÁC HẠN CHẾ CỦA MÔ HÌNH AI NỀN
PDF
BÁO CÁO THỰC TẬP CTY TNHH VIET NAM VICERA
PPTX
PRESENTATION ABOUT DATA WAREHOUSE (1).pptx
KỸ THUẬT GỢI Ý NÂNG CAO KỸ THUẬT GỢI Ý NÂNG CAO
PRESENTATION ABOUT MICROSOFT FABRIC.pptx
chuong2TTHCMupdate14tdddddddđ7n2024.pptx
Tham Khao bài giảng trí tuệ nhân tại.ppt
CÁC HẠN CHẾ CỦA MÔ HÌNH AI NỀN CÁC HẠN CHẾ CỦA MÔ HÌNH AI NỀN
BÁO CÁO THỰC TẬP CTY TNHH VIET NAM VICERA
PRESENTATION ABOUT DATA WAREHOUSE (1).pptx

python03.pdf

  • 2. Functions Hàm (phương thức - function) được sử dụng để đóng gói các khối mã (code block), cho phép tái sử dụng mã ở nhiều nơi, giảm thiểu code, giảm lỗi, … Cú pháp khai báo hàm: def func_name(parameter_list): pass Cú pháp gọi hàm: func_name(argument_list) 💡 Tham số (parameter) khai báo các giá trị (biến) được sử dụng bên trong hàm, các cuộc gọi hàm cung cấp các giá trị tương ứng (argument) với các tham số được khai báo 💡 Hàm có thể có tham số hoặc không
  • 3. Functions def greet(): print("Hi there") print("Welcome") greet() def greet(first_name, last_name): # two parameters: first_name, last_name print(f"Hi, {first_name} {last_name}") print("Welcome") greet("Ba", "Nguyễn") # first_name = “Ba”, last_name = “Nguyễn”
  • 4. Return 💡 Có 2 loại hàm - Thực thi một nhiệm vụ nào đó - Tính toán và trả về một giá trị 💡 Mặc định hàm luôn trả về một giá trị (None), để chỉ định một giá trị trả về từ hàm, sử dụng câu lệnh return def sum(a, b): return a + b print(sum(1, 5)) # 6 💡 Câu lệnh return dừng (ngắt) hàm, các câu lệnh phía dưới bị bỏ qua
  • 5. 💡 Khai báo hàm nên sử dụng type annotation và docstring để ghi chú rõ ràng chức năng của hàm, các tham số truyền vào có kiểu dữ liệu gì, loại dữ liệu trả về def sum(a: int, b: int) -> int: """ Return sum of two number Parameters: - a: integer - b: integer Return: a + b -> integer """ return a + b Type Annotation, Docstring
  • 6. Scope Trong Python, có 2 kiểu của biến, tương ứng với phạm vi (scope) tồn tại của biến - Biến cục bộ - function scope (được khai báo trong một function) - Biến toàn cục - file scope (được khai báo bên ngoài tất cả các function) Biến cục bộ chỉ tồn tại bên trong hàm mà nó được khai báo, ngược lại, biến toàn cục có thể được gọi ở bất kỳ đâu, bên trong bất kỳ hàm nào first_name = "Ba" def greet(): last_name = "Nguyễn" print(f"Hello, {first_name} {last_name}") greet()
  • 7. Scope 💡 Python không có block scope giống như một số ngôn ngữ khác 😍 💡 Mặc định việc thay đổi giá trị một biến toàn cục bên trong hàm không ảnh hưởng đến biến toàn cục (trừ khi khai báo biến bên trong hàm với từ khóa global - don’t do this) first_name = "Ba" last_name = "Nguyễn" def greet(): first_name = "Béo" global last_name last_name = "Ú" print(first_name, last_name) # Ba Ú
  • 8. Default parameter, keyword arguments Có thể gán một giá trị mặc định cho các tham số hàm, giá trị mặc định sẽ được sử dụng nếu cuộc gọi hàm không cung cấp đối số tương ứng Ngoài ra, trong cuộc gọi hàm, có thể sử dụng keyword arguments để chỉ định rõ ràng giá trị sẽ được truyền cho tham số nào của hàm def greet(first_name: str = "Ba", last_name: str = "Nguyễn") -> None: print(f"Hello, {first_name} {last_name}") greet() # Hello, Ba Nguyễn greet(first_name="Béo Ú") # Hello, Béo Ú Nguyễn greet(last_name="Còi") # Hello, Ba Còi
  • 9. *args Cú pháp *args cho phép truyền vào hàm số lượng đối số bất kỳ, các đối số truyền vào được đặt trong một tuple def multiply(*numbers): total = 1 for number in numbers: total *= number return total multiply(1, 2, 3, 4, 5, 6) # numbers = (1, 2, 3, 4, 5, 6) -> 720 💡 Có thể dùng kết hợp cả *args và tham số hàm thông thường, tuy nhiên, *args phải đặt sau tham số, hoặc sử dụng keyword argument trong cuộc gọi hàm
  • 10. **kwargs Cú pháp **kwargs là biến thể của *args, khác biệt ở chỗ, các đối số trong cuộc gọi hàm được truyền vào với keyword argument và args là dictionaries, không phải tuple def create_user(**user): print(user) print(user["name"]) create_user(id=1, name="Ba") # user = {'id': 1, 'name': 'Ba'} # Ba 💡 Có thể dùng kết hợp cả *args và **kwargs và tham số thông thường, tuy nhiên, *args phải đặt trước **kwargs và đối số truyền vào cũng tương tự