Tổng hợp các câu lệnh trong Python

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é!

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 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

Tổng hợp các câu lệnh 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ổng hợp các câu lệnh trong Python
Tên hàmChức năngabs()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à đúngany()Kiểm tra bất kỳ phần tử nào của iterable là Trueascii()Tả về string chứa đại diện (representation) có thể inbin()Chuyển đổi số nguyên sang chuỗi nhị phânbool()Chuyển một giá trị sang Booleanbytearray()Trả về mảng kích thước byte được cấpbytes()Trả về đối tượng byte không đổicallable()Kiểm tra xem đối tượng có thể gọi hay khôngchr()Trả về một ký tự (một chuỗi) từ Integerclassmethod()Trả về một class method cho hàmcompile()Trả về đối tượng code Pythoncomplex()Tạo một số phứcdelattr()Xóa thuộc tính khỏi đối tượngdict()Tạo Dictionarydir()Trả lại thuộc tính của đối tượngdivmod()Trả về một Tuple của Quotient và Remainderenumerate()Trả về đối tượng kê khaieval()Chạy code Python trong chương trìnhexec()Thực thi chương trình được tạo độngfilter()Xây dựng iterator từ các phần tử Truefloat()Trả về số thập phân từ số, chuỗiformat()Trả về representation được định dạng của giá trịfrozenset()Trả về đối tượng frozenset không thay đổigetattr()Trả về giá trị thuộc tính được đặt tên của đối tượngglobals()Trả về dictionary của bảng sumbol toàn cục hiện tạihasattr()Trả về đối tượng dù có thuộc tính được đặt tên hay khônghash()Trả về giá trị hash của đối tượnghelp()Gọi Help System được tích hợp sẵnhex()Chuyển Integer thành Hexadecimalid()Trả về định danh của đối tượnginput()Đọc và trả về chuỗi trong một dòngint()Trả về số nguyên từ số hoặc chuỗiisinstance()Kiểm tra xem đối tượng có là Instance của Class khôngissubclass()Kiểm tra xem đối tượng có là Subclass của Class khôngiter()Trả về iterator cho đối tượnglen()Trả về độ dài của đối tượnglist()Tạo list trong Pythonlocals()Trả về dictionary của bảng sumbol cục bộ hiện tạimap()Áp dụng hàm và trả về một listmax()Trả về phần tử lớn nhấtmemoryview()Trả về chế độ xem bộ nhớ của đối sốmin()Trả về phần tử nhỏ nhấtnext()Trích xuất phần tử tiếp theo từ Iteratorobject()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ânopen()Trả về đối tượng Fileord()Trả về mã Unicode code cho ký tự Unicodepow()Trả về x mũ yprint()In đối tượng được cung cấpproperty()Trả về thuộc tính propertyrange()Trả về chuỗi số nguyên từ số bắt đầu đến số kết thúcrepr()Trả về representation có thể in của đối tượngreversed()Trả về iterator đảo ngược của một dãyround()Làm tròn số thập phânset()Tạo một set các phần tử mớisetattr()Đặt giá trị cho một thuộc tính của đối tượngslice()Cắt đối tượng được chỉ định bằng range()sorted()Trả về list được sắp xếpstaticmethod()Tạo static method từ một hàmstr()Chuyển đối tượng đã cho thành chuỗisum()Thêm một mục vào Iterablesuper()Cho phép tham chiếu đến Parent Class bằng supertuple()Tạo một Tupletype()Trả về kiểu đối tượngvars()Trả về thuộc tính __dict__ của classzip()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.

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.

Các loại toán tử trong python

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.