Python dainganxanh
  • Lời nói đầu
  • Chương I. SƠ LƯỢC
    • Bài 1. Cài đặt môi trường
    • Bài 2. Từ khóa và định danh
    • Bài 3. Câu lệnh, khối lệnh và chú thích
    • Bài 4. Nhập, xuất dữ liệu
    • Bài 5. Toán tử và lệnh gán
    • Bài 6. Biến, Hằng
    • Bài 7. Kiểu dữ liệu
    • Bài 8. Thao tác với tệp (cơ bản)
    • Bài 9. Tổng quan về Python
    • Bài tập chương 1
  • Chương II. RẼ NHÁNH - LẶP
    • Bài 10. Cấu trúc rẽ nhánh if…else
    • Bài 11. Cấu trúc lặp với for
    • Bài 12. Cấu trúc lặp với while
    • Bài 13. Lệnh break và continue
    • Bài tập chương 2
  • Chương III. HÀM & MODULE
    • Bài 14. Hàm
    • Bài 15. Tham số hàm
    • Bài 16. Đệ quy
    • Bài 17. Hàm ẩn danh
    • Bài 18. Biến toàn cục và cục bộ
    • Bài 19. Module
    • Bài 20. Package
  • Chương IV. KIỂU DỮ LIỆU
    • Bài 21. Dữ liệu kiểu số
    • Bài 22. Dữ liệu kiểu string
    • Bài 23. Dữ liệu kiểu list
    • Bài 24. Dữ liệu kiểu tuple
    • Bài 25. Dữ liệu kiểu set
    • Bài 26. Dữ liệu kiểu dictionary
  • Chương V. TỆP & THƯ MỤC
    • Bài 27. Đọc và ghi file
    • Bài 28. Quản lý file và folder
  • Chương VI. LỖI & NGOẠI LỆ
    • Bài 29. Ngoại lệ
    • Bài 30. Xử lý ngoại lệ
    • Bài 31. Xây dựng ngoại lệ
  • Chương VII. HƯỚNG ĐỐI TƯỢNG
    • Bài 32. Lập trình hướng đối tượng
    • Bài 33. Đối tượng và Lớp
    • Bài 34. Kế thừa
    • Bài 35. Đa kế thừa
    • Bài 36. Nạp chồng toán tử
  • Chương VIII. NGÀY - GIỜ
    • Python datetime
    • Python strftime()
    • Python strptime()
    • Current date and time
    • Get Current time
    • Timestamp to datetime
    • Python time Module
    • Python sleep()
  • Chương IX. CHỦ ĐỀ NÂNG CAO
    • Python Iterators
    • Python Generators
    • Python Closures
    • Python Decorators
    • Python @property decorator
    • Python RegEx
    • Python Examples
  • PHỤ LỤC - GHI CHÉP
    • Hàm map()
    • Cài Sublime Text để code Python
    • Ghi chép - ghi chú
    • Mảng 2 chiều
    • Công thức với dãy số
  • Tài liệu tham khảo
  • www.dainganxanh.com
  • 🐍Khóa học Python
  • 🤷‍♀️Hỏi đáp, chia sẻ (FG)
  • 🎮Sinh Test chấm Themis
Powered by GitBook
On this page
  • 1. Tham số
  • 2. Tham số mặc định
  • 3. Tham số keywords
  • 4. Tham số tùy ý

Was this helpful?

  1. Chương III. HÀM & MODULE

Bài 15. Tham số hàm

1. Tham số

Xét ví dụ sau:

def hello(name, msg):
    """Hàm in ra lời chào
    với tên và lời chào được nhập vào"""
    print("Xin chào", name + ', ' + msg)

hello("Python", "Có gì mới không?")

Output: Xin chào Python, Có gì mới không?

Ở ví dụ trên, hàm hello có 2 tham số là name và msg. Ở câu lệnh gọi hàm ta truyền vào tham số name = "Python", tham số msg = "Có gì mới không?"

Lời gọi hàm phải được truyền đủ tham số. Nếu ta truyền thiếu hoặc thừa tham số thì chương trình sẽ báo lỗi. Ví dụ khi ta gọi hàm như sau

hello("Python")

Output: TypeError: hello() missing 1 required positional argument: 'msg'

2. Tham số mặc định

def hello(name, msg="Có gì hay???"):
    """Hàm in ra lời chào"""
    print("Xin chào", name + ', ' + msg)

hello("Python", "Có gì mới không?")
hello("Python")    # không còn báo lỗi 

Output:

Xin chào Python, Có gì mới không? Xin chào Python, Có gì hay???

Như vậy, hàm có tham số mặc định thì khi gọi hàm ta có không truyền tham số hàm sẽ lấy giá trị mặc định để thực thi.

Lưu ý: Giá trị mặc định có thể gán cho tất cả các tham số của hàm. Nhưng nếu trong hàm có một tham số không được gán giá trị mặc định thì tất cả các tham số có gán giá trị mặc định phải được đặt sau tham số không có giá trị mặc định.

def hello(name="tên gì đó", msg="Có gì hay???"): # hàm này OK
    ...
    
def hello(name="tên gì đó", msg):     # hàm này sẽ báo lỗi khi được gọi 
    ...

3. Tham số keywords

def hello(name, msg="Có gì hay???"):
    """Hàm in ra lời chào"""
    print("Xin chào", name + ', ' + msg)

# 2 keyword arguments
hello(name = "Python",msg = "Bạn có khỏe không?")

# 2 keyword arguments (out of order)
hello(msg = "Bạn có khỏe không?",name = "Python") 

# 1 positional, 1 keyword argument
hello("Python", msg = "Bạn có khỏe không?") 

Output:

Xin chào Python, Bạn có khỏe không? Xin chào Python, Bạn có khỏe không? Xin chào Python, Bạn có khỏe không?

4. Tham số tùy ý

Lệnh gọi hàm không giới hạn số lượng tham số truyền vào.

def hello(*Names):
    for name in Names:
        print("Hello", name)

hello("Python", "C++", "Java", "Pascal")

Output:

Hello Python Hello C++ Hello Java Hello Pascal

PreviousBài 14. HàmNextBài 16. Đệ quy

Last updated 4 years ago

Was this helpful?