Định nghĩa và gọi hàm trong python

Ngày đăng: 13/01/2024   -    Cập nhật: 13/01/2024

Hàm là một khối code được tổ chức cùng nhau để thực hiện một tác vụ cụ thể, định nghĩa hàm giúp code ngắn gọn, dễ quản lý và tái sử dụng. Trong Python, việc định nghĩa và gọi hàm rất đơn giản.

Định nghĩa hàm trong Python

Để định nghĩa một hàm trong Python, ta sử dụng cú pháp:


def tên_hàm(tham_số):

    code_thân_hàm 


Trong đó:

  • def là từ khóa để định nghĩa hàm trong Python.
  • tên_hàm là tên của hàm. Tuân theo quy tắc đặt tên biến trong Python.
  • tham_số (không bắt buộc): là danh sách các tham số truyền vào hàm, cách nhau bởi dấu phẩy.
  • code_thân_hàm: là khối lệnh của hàm, được thụt vào so với def.

Ví dụ định nghĩa hàm tính tổng 2 số:


def tong(a, b):

  return a + b

Như vậy, chúng ta đã định nghĩa thành công hàm tong với 2 tham số đầu vào là a và b. Hàm sẽ trả về tổng của a và b.


Lưu ý:

  • Hàm chỉ được định nghĩa chứ chưa thực thi.
  • Hàm có thể không có hoặc nhiều tham số.
  • Hàm có thể trả về hoặc không trả về giá trị.
  • Như vậy, với cú pháp đơn giản, ta có thể định nghĩa hàm trong Python một cách dễ dàng.

Cú pháp định nghĩa hàm trong Python

Cú pháp định nghĩa hàm trong Python như sau:


def tên_hàm(tham_số):

   khối_lệnh_hàm


Trong đó:

  • def là từ khóa để định nghĩa hàm.
  • tên_hàm: đặt tên cho hàm, tuân thủ quy tắc đặt tên trong Python.
  • tham_số: danh sách các tham số truyền vào hàm, cách nhau bằng dấu phẩy. Tham số có thể có hoặc không.
  • khối_lệnh_hàm: các lệnh của hàm, thụt vào so với def.

Ví dụ:


def chao_mung():

  print("Xin chào!")


def cong(a, b):

  return a + b

  

def in_thong_tin(ten, tuoi):

  print(f"Tên tôi là {ten}, năm nay tôi {tuoi} tuổi")


Như vậy, cú pháp định nghĩa hàm trong Python rất đơn giản và trực quan. Chỉ cần def, tên hàm, tham số (nếu có) và khối lệnh hàm là có thể định nghĩa được hàm.


Tham số của hàm trong Python

Tham số trong hàm Python là giá trị đầu vào của hàm. Tham số được truyền vào hàm khi gọi hàm.


Cú pháp khai báo tham số hàm:


def tên_hàm(tham_số1, tham_số2, ...):


Các lưu ý về tham số hàm:

  • Tham số của hàm được khai báo trong ngoặc đơn sau tên hàm.
  • Các tham số cách nhau bởi dấu phẩy.
  • Hàm có thể không có tham số hoặc nhiều tham số.
  • Tham số hàm chỉ tồn tại trong phạm vi hàm, không ảnh hưởng tới bên ngoài.
  • Khi gọi hàm, các tham số thực sẽ được gán cho tham số hàm theo thứ tự tương ứng.

Ví dụ khai báo tham số trong Python:


def tong(a, b):

  return a + b 


def in_thong_tin(ten, tuoi):

  print(f"Tên tôi là {ten}, năm nay tôi {tuoi} tuổi")


Như vậy, tham số giúp hàm linh hoạt hơn, có thể tái sử dụng với nhiều giá trị đầu vào khác nhau.
 

Gọi hàm trong Python

Sau khi định nghĩa, ta cần gọi hàm để thực thi các lệnh bên trong. Cú pháp gọi hàm:


tên_hàm(tham_số)


Trong đó:

  • tên_hàm: tên hàm đã được định nghĩa trước đó.
  • tham_số: giá trị thực truyền vào hàm, phải đúng về kiểu dữ liệu và số lượng.

Ví dụ:


def chao_mung():

  print("Xin chào!")

  

chao_mung()


def tong(a, b):

  return a + b


tong(1, 2) # Trả về 3


Như vậy, để gọi hàm, ta chỉ cần viết tên hàm và truyền tham số vào nếu cần.


Lưu ý:

  • Chỉ gọi hàm sau khi nó đã được định nghĩa.
  • Số lượng, thứ tự và kiểu dữ liệu tham số truyền vào phải chính xác.
  • Có thể gán kết quả trả về của hàm cho biến.
  • Truyền tham số khi gọi hàm trong Python

Khi gọi hàm, có 2 cách truyền tham số:

Truyền theo vị trí

Giá trị thực được truyền vào theo thứ tự tương ứng với tham số hàm.


Ví dụ:


def tong(a, b):

  return a + b


# Gọi hàm  

tong(1, 2) # a = 1, b = 2

Truyền theo tên

Cú pháp:


tên_hàm(param1=value1, param2=value2...) 

Ví dụ:


def tong(a, b):

  return a + b

  

# Gọi hàm  

tong(a=1, b=2) # a = 1, b = 2

tong(b=2, a=1) # a = 1, b = 2


Ưu điểm của truyền theo tên:

  • Không cần nhớ thứ tự tham số.
  • Code dễ đọc hơn.
  • Như vậy, Python cung cấp 2 cách linh hoạt để truyền tham số vào hàm. Ta có thể lựa chọn cách phù hợp với mục đích sử dụng.

Hàm generator trong Python

Khác với hàm thông thường, hàm generator là hàm được định nghĩa bởi từ khóa yield. Khi gọi, nó trả về một đối tượng generator mà không chạy ngay lập tức.


Để duyệt giá trị từ hàm generator, ta sử dụng vòng lặp hoặc hàm next().

Ưu điểm của generator

  • Tiết kiệm bộ nhớ vì chỉ tạo ra giá trị khi được gọi tới.
  • Có thể duyệt tuần tự nhiều giá trị mà không cần trả về toàn bộ cùng lúc.

Ví dụ hàm generator trong Python:


def generator(n):

  for i in range(n):

    yield i*2 


gen = generator(3)  


print(next(gen)) # 0 

print(next(gen)) # 2

print(next(gen)) # 4


Như vậy hàm generator rất hữu ích để sinh dữ liệu trong Python một cách hiệu quả.


Kết luận: trên đây là một số nội dung cơ bản về định nghĩa và gọi hàm trong Python. Hy vọng bài viết sẽ giúp bạn nắm được cách sử dụng hàm thành thạo để viết code Python ngắn gọn, rõ ràng và dễ bảo trì hơn.


Bình luận Facebook
Mục lục
Đăng ký tư vấn
Nhân viên gọi điện tư vấn miễn phí sau khi đăng ký
Được cập nhật các ưu đãi sớm nhất
Hotline: 0383180086
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Hãy đăng ký để nhận những thông tin mới nhất về học bổng mới nhất tại NIIT - ICT Hà Nội
top
Đóng lại Đăng ký học tại NIIT - ICT Hà Nội
6260+ học viên đã theo học tại NIIT - ICT Hà Nội và có việc làm tốt trong ngành lập trình. Nắm lấy cơ hội ngay hôm nay!
Chọn khóa học
  • KHÓA HỌC LẬP TRÌNH FRONT END VỚI REACT.JS
  • KHÓA HỌC LẬP TRÌNH PHP WEB
  • Khóa học PHP Full stack [2023] cho người mới bắt đầu
  • Khóa học BIG DATA với Hadoop và Spark
  • Khóa học Lập trình Android tại Hà Nội
  • [Tuyển sinh 2023] Lập trình viên Quốc tế DigiNxt
  • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại Hà Nội
  • LẬP TRÌNH GAME
    • Khóa học Lập trình Game Unity
  • LẬP TRÌNH WEB FRONT END
    • KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG
    • KHÓA HỌC ANGULAR & TYPESCRIPT (FRONT END)
  • LẬP TRÌNH WEB BACK END
    • LẬP TRÌNH JAVA WEB VỚI FRAME WORK
    • Lập trình Web với Django
    • Lập trình PHP với Laravel Framework
  • CHƯƠNG TRÌNH ĐÀO TẠO ỨNG DỤNG CÔNG NGHỆ
    • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại TP HCM
  • LẬP TRÌNH WEB FULL STACK
    • Khóa học Java Full stack (IJFD)
  • LẬP TRÌNH MOBILE
    • FRONT-END VỚI REACTJS VÀ REACT NATIVE
    • Lập trình Android Nâng cao
  • ĐÀO TẠO CHO DOANH NGHIỆP
    • KHÓA HỌC BUSINESS ANALYSIC TỪ CƠ BẢN ĐẾN NÂNG CAO 2023
    • Khóa học Magento: Làm chủ CMS TMĐT lớn nhất
    • Khóa học IOT: Xây dựng Sản phẩm IOT với Raspberry Pi
    • Khóa học Automation Testing Chuyên nghiệp
  • KHÓA HỌC DỰ ÁN
    • Học sử dụng bộ Office: Word, Excel, Power Point, Mail chuyên nghiệp
  • KHÓA HỌC KHÁC
    • VBA Excel Toàn Tập (Cơ Bản - Nâng Cao)
    • VBA Excel Nâng cao
    • Khóa học JMeter: Performance Testing
    • Khóa học Tester đạt chuẩn Quốc tế ISTQB Foundation Level
    • Khoá Học Tester đạt chuẩn quốc tế ISTQB Advanced Level
Bạn chưa chọn khóa học cần đăng ký
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Đăng ký học thành công!
Cảm ơn bạn đã đăng ký học tại NIIT - ICT HÀ NỘI!