© 2020 Bài Kiểm Tra.com. All Rights Reserved.

Hướng dẫn lập trình Python: Hàm trong Python

Thứ sáu - 06/10/2023 03:57
Hướng dẫn lập trình Python: Hàm trong Python
Python sử dụng từ khoá def để khai báo hàm. Tên hàm không được bắt đầu bằng số và không được chứa các ký tự đặc biệt trừ ký tự _
Cú pháp hàm def như sau:

def ten_ham(param...):
    #code
Trong đó:
ten_ham là tên của hàm mà bạn muốn đặt. param... là các tham số bạn muốn truyền vào hàm, nếu không có tham số thì để trống trường này.

VD1: Khai báo một hàm in ra chữ "Welcome to baikiemtra.com!".

def say():
    print("Welcome to baikiemtra.com")

VD2: Khai báo một hàm tính tổng của 2 số bất kỳ do người dùng truyền vào.

def sum(a, b):
    print("sum = " + str(a + b))
Trong ví dụ này a, b sẽ là tham số mà chúng ta truyền vào khi gọi hàm.

- Để gọi một hàm đã được khai báo rồi, thì chúng ta sử dụng cú pháp sau:

ten_ham()
#hoặc
ten_ham(param...)
Trong đó:
- ten_ham là tên của hàm là chúng ta muốn gọi.
- param... là các tham số chúng ta muốn truyền vào trong hàm.

VD3: Gọi hàm say ở trong VD1.

def say():
    print("Welcome to baikiemtra.com")
say()
# Ket qua: Welcome to baikiemtra.com

VD4: Gọi hàm sum ở trong VD2.

def sum(a, b):
    print("sum = " + str(a + b))
# tinh tong 2 so 4,5
sum(4, 5)
# Ket qua: sum = 9

# tinh tong 2 so 3,7
sum(3, 7)
# Ket qua sum = 10

- Trong trường hợp 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, ta cần thêm từ khoá return trước kết quả muốn trả về.

VD: Khai báo lại hàm sum ở VD2 thành hàm có kết quả trả về.

def sum(a, b):
   return a+ b
Bây giờ khi muốn sử dụng kết quả của nó thì ta có thể gán nó vào một biến, hay một đối tượng và sử dụng như bình thường.

def sum(a, b):
   return a+ b

c = sum(4, 5);
print("Tong cua 4 va 5 = " + str(c))

- Tham số mặc định cho hàm.
Thông thường nếu như chúng ta khai báo hàm mà có tham số truyền vào, nhưng lúc gọi hàm chúng ta lại không truyền tham số đó vào thì chương trình sẽ báo lỗi.

Và để hạn chế trường hợp này thì trong Python cũng cung cấp cho chúng ta thiết lập luôn giá trị mặc định của tham số khi khai báo hàm. Bằng cách sử dụng dấu = với cú pháp như sau:

def ten_ham(param = defaultValue):
    # code
Trong đó:
defaultValue là giá trị mặc định của tham số đó mà bạn muốn gán.

- Phạm vi của biến trong hàm: Khi một biến được khai báo ở trong hàm thì nó chỉ có thể được sử dụng ở trong hàm đó thôi.

VD:

def say_hello():
    a = "Hello"
    print(a)

print(a)
# Lỗi: name 'a' is not defined
Và chúng ta cũng không thể nào thay đổi giá trị của biến (biến bình thường) mà tác động ra ngoài hàm được.

VD:

a = "Hello Guy!"
def say(a):
    a = "baikiemtra.com"
    print(a)

say(a)
# KQ: baikiemtra.com
print(a)
# KQ: Hello Guy!

Nhưng nếu như biến mà có kiểu dữ liệu là list thì chúng ta lại có thể làm được điều đó.

VD:

a = [5, 10, 15]
def change(a):
    a[0] = 1000
    print(a)

change(a)
# KQ: [1000, 10, 15]
print(a)
# KQ: [1000, 10, 15]

- Biến Global: Ngoài những cách hoạt động của biến ở trên thì chúng ta còn có 1 cách nữa để có thể tác động đến các biến bên ngoài hàm khi đang ở trong hàm. Đó là sử dụng global variable - biến toàn cầu, khi một biến là global thì chúng ta có thể gọi và tác động đến nó từ bất kỳ đâu trong chương trình.

Để khai báo một biến là global thì chúng ta chỉ cần thêm từ khoá global trước tên của nó như sau:

global tenbien

VD: Thay đổi giá trị của biến khi ở trong hàm.

a = "Hello Guy!"
def say():
    global a
    a = "baikiemtra.com"
    print(a)

say()
# KQ: baikiemtra.com
print(a)
# KQ: baikiemtra.com

- Truyền vô số tham số vào hàm: Trên thực tế, không phải lúc nào chúng ta cũng biết được chính xác số lượng biến truyền vào trong hàm. Chính vì thế trong Python có cũng cấp cho chúng ta khai báo một param đại diện cho các biến truyền vào hàm bằng cách thêm dấu * vào trước param đó.

VD: Khai báo hàm get_sum để tính tổng các tham số truyền vào hàm.

def get_sum(*num):
    tmp = 0
    # duyet cac tham so
    for i in num:
        tmp += i
    return tmp

result = get_sum(1, 2, 3, 4, 5)

print(result)
# KQ: 15

  Ý kiến bạn đọc

Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây