Cách sử dụng Function trong Python

Cách sử dụng Funtion trong Python

Hàm (function) là các khối mã có tên, được thiết kế để thực hiện một nhiệm vụ cụ thể. Hàm cho phép bạn viết mã một lần và có thể chạy lại bất cứ khi nào cần thực hiện cùng một tác vụ. Hàm có thể nhận dữ liệu đầu vào và trả về kết quả đầu ra. Việc sử dụng hàm một cách hiệu quả giúp chương trình của bạn dễ viết, dễ đọc, dễ kiểm tra và dễ sửa lỗi hơn. 

Cú pháp Function trong Python 

def function_name(parameters):
    """docstring"""
   return result
  • def : Từ khóa dùng để khai báo một hàm trong Python. 
  • function_name : Tên hàm do bạn đặt (viết theo quy tắc đặt tên biến trong Python). 
  • parameters : Danh sách tham số (có thể có hoặc không) được truyền vào hàm khi gọi. 
  • docstring là chuỗi mô tả hàm, giúp người đọc hiểu chức năng của hàm, viết trong dấu “”” ba nháy để ghi chú thích nhiều dòng. 
  • return dùng để trả về kết quả từ hàm. 

Gọi Function 

Để gọi một hàm, sử dụng tên hàm kèm theo dấu ngoặc đơn: 

def hello():
  print('Hello World')
hello()

Kết quả

"Hello World"

Đoạn code định nghĩa một hàm hello() bằng cách sử dụng từ khóa def. Khi hàm được gọi, nó thực thi lệnh print(‘Hello World’) để in chuỗi “Hello World” ra màn hình. Cuối cùng, hàm hello() được gọi để hiển thị kết quả.

Return Value 

Định nghĩa: Câu lệnh return được sử dụng để kết thúc việc thực thi của hàm và “trả về” kết quả (giá trị của biểu thức đứng sau từ khóa return) cho nơi gọi hàm. Các câu lệnh sau return sẽ không được thực thi. Nếu câu lệnh return không có biểu thức nào, giá trị đặc biệt None sẽ được trả về. 

Lưu ý: Câu lệnh return không thể được sử dụng bên ngoài hàm.  

a = 2
b = 3
def get_sum_value(a, b):
  total = a + b
  return(total)
get_sum_value(a, b)

Kết quả trả về:

5

Đoạn code khai báo hai biến a = 2 và b = 3, sau đó định nghĩa hàm get_sum_value(a, b) để tính tổng hai số và trả về kết quả. Khi gọi hàm get_sum_value(a, b), chương trình thực hiện phép cộng 2 + 3 và trả về giá trị 5.

Đối số trong Function 

Đối số (Arguments) là các giá trị được truyền vào bên trong dấu ngoặc đơn của hàm. Một hàm có thể có bất kỳ số lượng đối số nào, được phân tách bằng dấu phẩy. Trong Python, chúng ta có các loại đối số sau: 

  • Required arguments / Positional Arguments 
  • Keyword arguments) 
  • Default arguments 
  • Variable-length arguments 

Required arguments 

Đối số bắt buộc (Required arguments) là các đối số được truyền vào hàm theo đúng thứ tự vị trí. Số lượng đối số trong lời gọi hàm phải khớp chính xác với số lượng đối số trong định nghĩa hàm. 

Sau đây là ví dụ những lỗi sai thường gặp:

 
def printme(str):
    "This prints a passed string into this function"
    print(str)
    return;
printme()

Lỗi hiển thị như sau: TypeError: printme() missing 1 required positional argument: ‘str’

  • Hàm printme(str) yêu cầu một đối số bắt buộc (str), nhưng khi gọi hàm printme(), không có đối số nào được truyền vào. 
  • Do đó, Python không thể thực thi hàm và báo lỗi thiếu tham số.

Ví dụ tiếp theo:

def printme(str):
    "This prints a passed string into this function"
    print(str)
    return;
printme("Hello!!!", "Goodbye!!!")

Khi chạy đoạn code này trong Python, nó sẽ báo lỗi: TypeError: printme() takes 1 positional argument but 2 were given

  • Hàm printme(str) chỉ nhận một tham số (str). 
  • Khi gọi hàm, bạn truyền vào hai đối số: “Hello!!!”“Goodbye!!!”. 
  • Python không thể xử lý vì hàm chỉ định nghĩa một tham số mà lại nhận hai giá trị.

Code đúng mà Python nhận được trong trường hợp này phải được truyền tham số với đúng một giá trị được định nghĩa: 

def printme(str):
    "This prints a passed string into this function"
    print(str)
    return;
printme("Hello!!!")

Kết quả sau khi chạy: Hello!!!

Keyword Argument 

Bạn cũng có thể truyền đối số bằng cú pháp key = value. Bằng cách này, thứ tự của các đối số không quan trọng. Ví dự như sau:

def my_function(child3, child2, child1):
  print("The youngest child is " + child3)
my_function(child1 = 'Emil', child2 ='Tobias', child3 = 'Linus')

Kết quả sau khi chạy: The youngest child is Linus

Hàm my_function(child3, child2, child1) có ba tham số. Khi gọi hàm, ta sử dụng đối số từ khóa (key=value), nên thứ tự truyền vào không quan trọng. 

  • child1 = ‘Emil’ 
  • child2 = ‘Tobias’ 
  • child3 = ‘Linus’ 

Với câu lệnh print(“The youngest child is ” + child3) sẽ in ra giá trị của child3, tức là “Linus”. 

Default Argument 

Một đối số mặc định là một đối số sẽ nhận giá trị mặc định nếu không có giá trị nào được truyền vào trong lời gọi hàm cho đối số đó. 

def printinfo(name, age=35):
    "This prints a passed info into this function"
    print("Name:", name)
    print("Age", age)
    return
printinfo(age=50, name="miki")
printinfo(name="miki")

Kết quả sau khi chạy:

Name: miki
Age 50
Name: miki
Age 35

Hàm printinfo(name, age=35) có tham số age với giá trị mặc định là 35. Khi gọi hàm: 

  • printinfo(age=50, name=”miki”): truyền đầy đủ giá trị, nên age = 50. 
  • printinfo(name=”miki”): không truyền age, nên mặc định age = 35. 

Variable-length arguments 

Đôi khi, bạn cần xử lý một hàm với nhiều đối số hơn số lượng đã xác định trong định nghĩa hàm. Những đối số này được gọi là đối số có độ dài thay đổi và không được đặt tên trong định nghĩa hàm, không giống như đối số bắt buộc và đối số mặc định. 

Để định nghĩa một hàm có thể nhận số lượng đối số tùy ý, ta thêm dấu * trước một tham số. Đối với đối số từ khóa, ta sử dụng **. 

def sum_numbers(*args):
    total = sum(args)
    print("Tổng:", total)
sum_numbers(1, 2, 3)
sum_numbers(5, 10, 15, 20)

Kết quả sau khi chạy:

Tổng: 6
Tổng: 50

Hàm sum_numbers(*args) sử dụng tham số *args để nhận một số lượng đối số không cố định dưới dạng tuple. Sau đó, hàm tính tổng các giá trị bằng sum(args) và in kết quả ra màn hình. Khi gọi sum_numbers(1, 2, 3), tổng là 6, và khi gọi sum_numbers(5, 10, 15, 20), tổng là 50. Việc sử dụng *args giúp hàm linh hoạt, có thể xử lý nhiều bộ giá trị khác nhau mà không cần sửa đổi code.

Kết luận 

Hàm trong Python giúp tổ chức mã gọn gàng, tái sử dụng và giảm lỗi. Sử dụng def để định nghĩa, truyền đối số linh hoạt và return để trả kết quả. Hiểu và dùng hàm hiệu quả giúp tối ưu hóa lập trình. 

Xem thêm:

Xử lý và trực quan hóa dữ liệu với Python

Làm việc với dữ liệu thời gian datetime trong Python

Tạo biểu đồ động với Matplotlib trong Python

Bài viết liên quan
[RECAP] Cuộc thi Việt Nam Supply Chain Challenge 2025 – Câu lạc bộ VILAS Supply Chain Club (VSCC) – trực thuộc Trường Hàng Không và Logistics Việt Nam (VILAS)

Sáng ngày 02/03/2025, Vietnam Supply Chain Challenge 2025 do CLB VILAS Supply Chain Club (VSCC) trực thuộc Trường Hàng Không và Logistics Việt Nam (VILAS) tổ chức, đã chính thức khép

Xem thêm
[RECAP] WORKSHOP ONLINE: DATA VISUALIZATION WITH DASHBOARD REPORTING

Tối Thứ Năm, ngày 27/02/2025, UniTrain tổ chức Workshop online: Data Visualization with Dashboard Reporting, thu hút đông đảo anh chị từ nhiều lĩnh vực như Tài chính, Kiểm toán, Kế

Xem thêm
[RECAP] Cuộc thi RMIT Hack-A-Venture 2024 – Câu lạc bộ FinTech – Trường Đại học RMIT TP. HCM

Chiều ngày 23/01/2025, RMIT Hack-A-Venture 2024 – cuộc thi hackathon đầy thử thách do CLB FinTech, Trường Đại học RMIT TP. HCM tổ chức đã khép lại với những màn trình

Xem thêm
[RECAP] WORKSHOP ONLINE: PRACTICAL AI APPLICATION IN BUSINESS

Chiều thứ Bảy, ngày 18/01/2025 vừa qua, sự kiện Workshop Online Practical AI Applications in Business do UniTrain tổ chức đã diễn ra đầy sôi nổi với sự tham gia nhiệt

Xem thêm