CÁC LOẠI HÀM TRONG PYTHON MÀ CÁC BẠN CẦN NẮM VỮNG.
Các bạn đang quan tâm đến hàm trong python. Trong bài viết này, hãy cùng MCI tìm hiểu thêm các loại hàm trong Python nhé!
Nội dung bài viết
Các bạn đang quan tâm đến hàm trong python. Trong bài viết này, hãy cùng MCI tìm hiểu thêm các loại hàm trong Python nhé!
Hàm trong python là gì?
Hàm function trong Python được hiểu là tập hợp của một khối code được viết ra, nhóm lại với nhau và đặt tên để có thể tái sử dụng cho những lần tiếp theo một cách nhanh chóng mà không cần phải viết lại toàn bộ đoạn code.
Hàm giúp chia chương trình Python thành những khối, phần, mô -đun nhỏ hơn để dễ dàng tổ chức và quản lý hơn khi chương trình Python quá lớn hoặc cần được mở rộng. Việc sử dụng hàm function trong Python rất phổ biến vì nó giúp cho các đoạn code trở lên gọn gàng và có thể tái sử dụng nhiều lần.
Cấu trúc hàm trong python
Về cơ bản, cấu trúc hàm Python sẽ bao gồm các thành phần sau:
- Từ khóa def: Bắt đầu def trong python. bắt đầu cho cấu trúc hàm trong python.
- ten_ham (function_name): Tên hàm function trong python là định danh duy nhất, cần tuân theo một số quy tắc viết tên và định danh trong Python
- Các tham số/đối số: Được đặt trong dấu (), chúng ta truyền giá trị cho hàm thông qua các tham số này. Chúng là tùy chọn, nếu có nhiều tham số thì chúng viết tách nhau bởi dấu phẩy.
- Dấu hai chấm (:): là kết thúc thúc của tiêu đề hàm
- Docstring: Mô tả chức năng của hàm
- Các câu lệnh: Các lệnh khác nhau đều phải cùng có mức lùi đầu dòng giống nhau
- Return: Chỉ xuất hiện khi hàm cần trả về giá trị nhất định.
Các loại hàm trong python
Hàm trong python có 2 loại hàm cơ bản chính, một là các loại hàm tích hợp sẵn, hai là các loại hàm Python do người dùng tự định nghĩa. Các hàm do người dùng tự định nghĩa sẽ có cấu trúc như phần bên trên mà bài viết này đã chia sẻ. Ngoài ra, trình thông dịch của Python có sẵn một số hàm để bạn có thể sử dụng, được gọi là hàm tích hợp. Ví dụ, print() là hàm trong python trả ra kết quả của hàm...
Hàm trong Python 3.6 có 68 hàm tích hợp sẵn được liệt kê trong bảng dưới. Bạn có thể nhấn Ctrl+F trên trình duyệt và nhập tên hàm cần tìm, nếu bạn muốn tìm nhanh bất cứ hàm nào nhé:
Tên hàm | Chức năng |
abs() | Trả về giá trị tuyệt đối của một số |
all() | Trả về True khi tất cả các phần tử trong iterable là đúng |
any() | Kiểm tra bất kỳ phần tử nào của iterable là True |
ascii() | Tả về string chứa đại diện (representation) có thể in |
bin() | Chuyển đổi số nguyên sang chuỗi nhị phân |
bool() | Chuyển một giá trị sang Boolean |
bytearray() | Trả về mảng kích thước byte được cấp |
bytes() | Trả về đối tượng byte không đổi |
callable() | Kiểm tra xem đối tượng có thể gọi hay không |
chr() | Trả về một ký tự (một chuỗi) từ Integer |
classmethod() | Trả về một class method cho hàm |
compile() | Trả về đối tượng code Python |
complex() | Tạo một số phức |
delattr() | Xóa thuộc tính khỏi đối tượng |
dict() | Tạo Dictionary |
dir() | Trả lại thuộc tính của đối tượng |
divmod() | Trả về một Tuple của Quotient và Remainder |
enumerate() | Trả về đối tượng kê khai |
eval() | Chạy code Python trong chương trình |
exec() | Thực thi chương trình được tạo động |
filter() | Xây dựng iterator từ các phần tử True |
float() | Trả về số thập phân từ số, chuỗi |
format() | Trả về representation được định dạng của giá trị |
frozenset() | Trả về đối tượng frozenset không thay đổi |
getattr() | Trả về giá trị thuộc tính được đặt tên của đối tượng |
globals() | Trả về dictionary của bảng sumbol toàn cục hiện tại |
hasattr() | Trả về đối tượng dù có thuộc tính được đặt tên hay không |
hash() | Trả về giá trị hash của đối tượng |
help() | Gọi Help System được tích hợp sẵn |
hex() | Chuyển Integer thành Hexadecimal |
id() | Trả về định danh của đối tượng |
input() | Đọc và trả về chuỗi trong một dòng |
int() | Trả về số nguyên từ số hoặc chuỗi |
isinstance() | Kiểm tra xem đối tượng có là Instance của Class không |
issubclass() | Kiểm tra xem đối tượng có là Subclass của Class không |
iter() | Trả về iterator cho đối tượng |
len() | Trả về độ dài của đối tượng |
list() | Tạo list trong Python |
locals() | Trả về dictionary của bảng sumbol cục bộ hiện tại |
map() | Áp dụng hàm và trả về một list |
max() | Trả về phần tử lớn nhất |
memoryview() | Trả về chế độ xem bộ nhớ của đối số |
min() | Trả về phần tử nhỏ nhất |
next() | Trích xuất phần tử tiếp theo từ Iterator |
object() | Tạo một đối tượng không có tính năng (Featureless Object) |
oct() | Chuyển số nguyên sang bát phân |
open() | Trả về đối tượng File |
ord() | Trả về mã Unicode code cho ký tự Unicode |
pow() | Trả về x mũ y |
print() | In đối tượng được cung cấp |
property() | Trả về thuộc tính property |
range() | Trả về chuỗi số nguyên từ số bắt đầu đến số kết thúc |
repr() | Trả về representation có thể in của đối tượng |
reversed() | Trả về iterator đảo ngược của một dãy |
round() | Làm tròn số thập phân |
set() | Tạo một set các phần tử mới |
setattr() | Đặt giá trị cho một thuộc tính của đối tượng |
slice() | Cắt đối tượng được chỉ định bằng range() |
sorted() | Trả về list được sắp xếp |
staticmethod() | Tạo static method từ một hàm |
str() | Chuyển đối tượng đã cho thành chuỗi |
sum() | Thêm một mục vào Iterable |
super() | Cho phép tham chiếu đến Parent Class bằng super |
tuple() | Tạo một Tuple |
type() | Trả về kiểu đối tượng |
vars() | Trả về thuộc tính __dict__ của class |
zip() | Trả về Iterator của Tuple |
__import__() | Hàm nâng cao, được gọi bằng import |
Gọi hàm trong Python
Vậy sau khi đã định nghĩa xong 1 hàm hoặc biết đến các hàm có sẵn, làm sao để bạn có thể gọi ra 1 hàm trong Python?
Dưới đây, chúng ta có ví dụ về định nghĩa một hàm:
def chao(ten):
"""Hàm này dùng để chào một người được truyền vào như một tham số"""
print("Xin chào, " + ten + "!")
Khi một hàm được định nghĩa thì bạn có thể gọi nó từ một hàm/chương trình khác hoặc tại dấu nhắc lệnh. Để gọi hàm, chỉ cần nhập tên hàm với các tham số thích hợp là bạn có thể sử dụng được hàm đó.
Ví dụ: Bạn có thể dùng cậu lệnh sau để gọi hàm Python trên:
chao (“mcivietnam.com”)
Kết quả sẽ được:
chao(“mcivietnam.com”)
Xin chào, mcivietnam.com!
Lệnh Return trong hàm Python
Lệnh return trong hàm Python thường được dùng trong trường hợp bạn muốn sử dụng kết quả của hàm vừa tính để thực hiện các mục đích khác. Bạn chỉ cần thêm keyword return trước kết quả bạn muốn trả về.
def Chao():
print ("Mcivietnam.com xin chào!")
return;
Chao()
Kết quả trả về:
Mcivietnam.com xin chào!
Ở đây, chúng ta định nghĩa hàm Chao() và gọi nó ra. Đầu tiên, bạn định nghĩa hàm trong python như cấu trúc hàm mặc định trong python, và thêm các dòng lệnh cần thiết trong hàm. Bổ sung lệnh return nếu bạn muốn thoát hàm sau khi thực thi câu lệnh hoặc trở về nơi hàm được gọi
Từ đây, bất cứ khi nào muốn gửi lời chào tới mọi người, bạn chỉ cần viết Chao() là xong.
Note: Để hiểu hơn về Python bạn có thể tham khảo khóa học và nhận tư vấn Career Path từ đội ngũ chuyên gia tại đây:
Cách truyền tham số vào hàm trong python
Hàm trong python giúp giảm bớt các công việc lặp lại nhiều lần, bên cạnh đó hàm còn có chức năng cực hữu hiệu khác là cho và nhận dữ liệu. Python cho phép chúng ta gọi một hàm trong khi truyền dữ liệu vào nó.
Ví dụ: Chúng ta muốn thêm từ “Xin chào" vào trước hàm, chúng ta sẽ làm như sau:
def Chao(ten):
print ("Xin chào " + ten)
return;
Chao("Mcivietnam")
Kết quả trả về sẽ là:
Xin chào Mcivietnam
Thiết lập giá trị mặc định cho hàm
Một trong những vấn đề quan trọng khi làm việc với hàm trong Python là đó chính là tham số. Hàm trong python bao gồm 3 loại tham số sau: tham số bắt buộc, tham số mặc định, tham số biến động.
Trong bài viết này, chúng ta sẽ tìm hiểu về phần tham số mặc định trong hàm Python. Trong Python, tham số của hàm trong python có thể gán giá trị mặc định bằng cách sử dụng toán tử gán "=" như sau:
def Chao(ten, loi_chao = “học tại MCI rất hiệu quả đúng không?"):
"""
Hàm trong python này có chức năng hiện lời chào với mẫu đã định sẵn
Nếu thông điệp không được cung cấp,nó sẽ được mặc định là “Học tại MCI rất hiệu quả đúng không?"
"""
print ("Xin chào ", ten + “,” + loi_chao)
chao(“Sơn")
Chao("Chi", “Hôm nay bạn vui chứ?”)
Và kết quả sẽ là:
Xin chào Sơn, Học tại MCI rất hiệu quả Gđúng không?
Xin chào Chi, Hôm nay bạn vui chứ?
Trên đây, tham số “ten” không được gán giá trị mặc định. Tham số “loi_chao” có giá trị mặc định là "Học tại MCI rất hiệu quả đúng không?". Vì vậy, khi gọi hàm bạn có thể cung cấp tham số này hoặc không. Nếu cung cấp tham số “loi_chao”, nó sẽ ghi đè lên giá trị mặc định.
Trong một hàm, số lượng tham số có giá trị mặc định không bị giới hạn, nhưng một khi có tham số mặc định, tất cả các tham số sau tham số mặc định bắt buộc phải có được gán giá trị mặc định.
Giới hạn thực thi và thời gian khả dụng của các biến trong hàm
Giới hạn của biến ở hàm trong python nằm ở việc các biến và tham số trong một hàm chỉ có tác dụng thực thi trong hàm đó
Thời gian khả dụng của biến trong hàm chính là khoảng thời gian diễn ra quá trình thực thi của hàm, khi quá trình thực thi kết thúc, biến trong hàm cũng sẽ biến mất khỏi bộ nhớ máy
Ví dụ:
# Biến bên trong hàm
def trial():
x = 3
print("Giá trị bên trong hàm:",x)
#Biến bên ngoài hàm
x = 10
trial()
print("Giá trị bên ngoài hàm:",x)
Kết quả:
Giá trị bên trong hàm: 3
Giá trị bên ngoài hàm: 10
Kết quả ở trên mặc dù cùng sử dụng biến x, tuy nhiên một biến x nằm trong hàm - sau lệnh def trong python và một biến x nằm ngoài hàm
Biến x trong hàm còn gọi là biến cục bộ chỉ có thể thực thi lệnh trong hàm. Biến x ngoài hàm có áp dụng lệnh trên toàn bộ lệnh của dự án
Đối với các biến cục bộ, để thay đổi giá trị bạn cần khai báo như các biến global bằng cách sử dụng biến global
Biến Global
Với hàm trong Python, biến global ( hay biến toàn cục ) là biến được khai báo bên ngoài hoặc trong phạm vi hàm. Biến global có thể được truy cập từ bên trong hoặc bên ngoài hàm.
Ví dụ cách tạo biến global trong Python
x = "Biến toàn cục" #khai báo biến x
#Gọi x từ trong hàm vidu()
def vidu():
print("x trong hàm vidu() :", x)
vidu()
#Gọi x ngoài hàm vidu()
print("x ngoài hàm vidu():", x)
Trên đây, biến x là biến global, và hàm vidu() được định nghĩa có chức năng in biến x.
Sau đây là kết quả của hàm vidu():
x trong hàm vidu(): Biến toàn cục
x ngoài hàm vidu(): Biến toàn cục
Docstring trong Python
Docstring trong python (tiếng anh là documentation string) chính là chuỗi ký tự đầu tiên ngay sau tiêu đề hàm có chức năng giải thích đặc điểm của hàm đó. Docstring không bắt buộc nhưng dùng nó để giải thích ngắn gọn về chức năng của hàm sẽ giúp người dùng có thể hiểu hàm ngay mà không cần tìm định nghĩa để xem.
Docstring thường được đặt giữa cặp 3 dấu ngoặc kép. Chuỗi này sẽ xuất hiện như thuộc tính __doc__ của hàm. Chúng ta có thể xem xét ví dụ sau:
def Chao(ten, loi_chao = “học tại MCI rất hiệu quả đúng không?"):
"""
Hàm trong python này có chức năng hiện lời chào với mẫu đã định sẵn
Nếu thông điệp không được cung cấp,nó sẽ được mặc định là “Học tại MCI rất hiệu quả đúng không?"
"""
print ("Xin chào ", ten + “,” + loi_chao)
chao(“Sơn")
Chao("Chi", “Hôm nay bạn vui chứ?”)
Phần in nghiêng là docstring và được đặt trong cặp 3 dấu “””, nó giúp chúng ta có được các thông tin về chức năng của hàm
Đệ quy trong python
Đệ quy là hàm trong python tự gọi lại chính nó
Điều kiện chấm dứt: Một hàm đệ quy cần phải có điều kiện chấm dứt để dừng việc tự gọi lại nó. Hàm đệ quy chấm dứt khi và chỉ khi mỗi lần hàm được đệ quy trả ra kết quả của vấn đề tiến gần đến điều kiện cơ sở.
Trong đó điều kiện cơ sở chính là kết quả khi vấn đề đã được giải quyết. Nếu hàm gọi đệ quy không thể đạt được điều kiện cơ sở thì hàm đẹ quy sẽ được lặp lại vô hạn lần.
Như vậy, hàm đệ quy trong ngnahf data science là chia nhỏ trường hợp lớn thành nhiều trường hợp nhỏ, đưa ra kết quả và chỉ dừng lại khi đạt được điều kiện cơ sở.
Chúng ta hãy xem xét ví dụ sau: Một hàm đệ quy in ra giá trị từ 15 đến 1
Def vidu(n):
print (n)
if(n==1):
return 1
vidu(n-1)
vidu(15)
Kết quả trả về:
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
Trong ví dụ trên, hàm vidu() là một hàm đệ quy vì hàm này tự gọi chính nó. Khi chúng ta truyền vào một giá trị là 15, hàm sẽ thực hiện việc in ra các giá trị tương ứng và tiếp tục giảm giá trị được truyền vào. Khi giá trị bằng 1, hàm đệ quy đạt được điều kiện cơ sở đã được định sẵn từ trước.
Ưu điểm của đệ quy
- Các hàm đệ quy làm cho đoạn mã trông gọn gàng và dễ nhìn hơn.
- Một vấn đề lớn có thể dùng hàm đệ quy để chi nhỏ vấn đề thành các vấn đề con đơn giản hơn để giải quyết.
- Ứng dụng hàm đệ quy đơn giản hơn so với việc tạo nên một vòng lặp lồng
Nhược điểm của đệ quy
- Trong một số trường hợp, sự logic của hàm đệ quy đôi khi khó giải thích
- Hàm đệ quy do chia nhỏ trường hợp lớn vì thế chiếm dụng bộ nhớ và thời gian thực thi
- Khó để gỡ lỗi
Tham khảo các bài viết khác trên vê Python cùng MCI
Note: Để hiểu hơn về Python bạn có thể tham khảo khóa học và nhận tư vấn Career Path từ đội ngũ chuyên gia tại đây:
Các khóa học
- Data Engineer Track Specialized
- Combo Data Engineering Professional Hot
- Advanced AWS Cloud Data Engineer Specialized
- AWS Data Engineer for Beginners Specialized
- Combo Python Level 1 & Level 2 Bestseller
- Business Intelligence Track Hot
- Data Science Track Bestseller
- Data Analyst Professional (Data Analyst with Python Track) Bestseller
- RPA UiPath Nâng Cao: Chiến Thuật Automation Cho Chuyên Gia Specialized
- RPA UiPath cho Người Mới Bắt Đầu: Thành Thạo Automation Chỉ Trong 1 Ngày Specialized
- Business Analyst Fast Track Bestseller
- Combo Business Analyst Level 1 & Level 2 Bestseller
- Business Analyst for Beginners Bestseller
Đăng ký tư vấn khóa học
*Vui lòng nhập số điện thoại của bạn
*Vui lòng nhập họ tên của bạn
*Vui lòng chọn giới tính
*Vui lòng chọn 1 trường