Trong bài viết này,Lập trình không khó sẽ cùng các bạn tìm hiểu về hàm trong python; Hàm là gì, cú pháp, thành phần và loại của hàm. Ngoài ra, bạn sẽ học cách tạo một hàm trong Python.
Hàm trong python là gì?
Hàm trong python là một tập hợp các câu lệnh dùng để thực thi một tác vụ cụ thể. Các hàm chia chương trình thành các phần nhỏ hơn và các mô-đun. Khi một chương trình càng phát triển thì các hàm cũng sẽ theo đó mà ngày càng đầy đủ và nhiều lệnh hơn.
Hơn nữa việc xây dựng các hàm giúp bạn có thể tái sử dụng lại các đoạn mã.
Cú pháp
def tên_hàm(tham_số): khối_lệnh
- Từ khóa def dùng để khai báo một hàm.
- Tên hàm xác định duy nhất hàm đó. Tên hàm được đặt phải tuân thủ các quy tắc đặt định danh trong python.
- Các tham số thông qua đó chúng ta có thể truyền các tham số vào hàm.
- Dấu
:
dùng để kết thúc việc khai báo hàm. - Một hay nhiều câu lệnh tạo nên khối lệnh và các khối lệnh này được viết thụt vào một khoảng( thường là 4 dấu cách, tương ứng là một dấu
tab
).
ví dụ:
#tạo một hàm in ra dòng chữ "hello world" def function(): print("hello world")
Gọi hàm
Để gọi một hàm, ta sử dụng tên của hàm kèm theo đó là dấu ngoặc đơn:
def function(): print("hello world") function() #return hello world
Truyền tham số cho hàm
Các tham số được truyền ở bên trong dấu ngoặc đơn, bạn có thể thêm bao nhiêu tham số tùy thích, chỉ cần chúng được cách nhau bởi dấu phẩy.
Ví dụ sau có một hàm với một đối số (name). Khi hàm được gọi, chúng ta truyền một tên cho hàm, lệnh print được sử dụng bên trong hàm để in dòng chữ chào tên người được truyền:
def function(name): print("hello "+name) function("Minh") function("Hiếu")
kết quả:
hello Minh hello Hiếu
Số lượng đối số
Theo mặc định, một hàm phải được gọi với số lượng đối số chính xác. Có nghĩa là nếu hàm của bạn cần 2 đối số, bạn phải gọi hàm với 2 đối số, không nhiều hơn và không ít hơn.
Tuy nhiên, nếu bạn không biết chính xác số lượng đối số cần truyền có thể sử dụng dấu *
.
ví dụ:
def my_func(*name): print(name[2]) my_func('name1', 'name2', 'name3') #return name3
Lệnh return
Câu lệnh return
được sử dụng để thoát khỏi một hàm và trả về một giá trị:
def absolute_value(num): """Hàm in ra giá trị tuyệt đối của một số""" if num >= 0: return num else: return -num # Output: 2 print(absolute_value(2)) # Output: 4 print(absolute_value(-4))
Hàm trong python hoạt động như thế nào?
Phạm vi và thời gian tồn tại của biến
Phạm vi biến là một phần của chương trình nơi biến được nhận ra. Các tham số và biến được định nghĩa trong một hàm không thể được nhìn thấy từ bên ngoài.
Thời gian tồn tại của một biến là khoảng thời gian kể từ lúc mà biến đó được khai báo cho tới khi kết thúc chương trình
Dưới đây là ví dụ minh họa về phạm vi của biến
def my_func(): x = 10 print("Value inside function:",x) x = 20 my_func() print("Value outside function:",x)
Kết quả:
Value inside function: 10 Value outside function: 20
Trong ví dụ chúng ta có thể thấy rằng giá trị ban đầu của x là 20. Mặc dù hàm my_func()
đã thay đổi giá trị x
thành 10 nhưng nó không ảnh hưởng tới giá trị của x ở bên ngoài hàm.
Điều này là do biến x
ở bên trong hàm là khác so với biến x
ở bên ngoài hàm. Mặc dù chúng cùng tên, nhưng chúng là hai biến khác nhau với phạm vi khác nhau.
Để sửa đổi các biến ở bên ngoài hàm, chúng ta phải khai báo chúng là biến toàn cục với từ khóa global
.
def my_func(): global x x=20 print(x) x=10 my_func() print(x)
kết quả:
20 20
Trong ví dụ, chúng ta khai báo một biến toàn cục với từ khóa global
, mặc dù lúc đầu khai báo x=10. Thế nhưng, sau khi gọi hàm my_func()
thì giá trị của x vẫn không đổi.
Hàm pass
Một hàm khi được định nghĩa thì không thể trống, nhưng nếu vì một lý do nào đó mà cần có một hàm trống, hãy sử dụng lệnh pass
để tránh bị thông báo lỗi.
ví dụ:
def my_func(): pass
Đệ quy
Python chấp nhận đệ quy hàm, có nghĩa là một hàm được xác định có thể tự gọi nó.
Đệ quy là một khái niệm toán học và lập trình phổ biến. Nó có nghĩa là một hàm tự gọi nó ở bên trong thân. Các bạn nên cẩn thận với đệ quy, vì rất dễ để viết một hàm không bao giờ chấm dứt hoặc sử dụng quá nhiều bộ nhớ. Tuy nhiên, khi viết đệ quy chính xác có thể là một cách tiếp cận lập trình rất hiệu quả.
ví dụ: viết chương trình in ra dòng chữ “lập trình không khó” 5 lần dùng đệ quy
def my_func(i): print("lập trình không khó") if i<5: my_func(i+1) i=1 my_func(i)
kết quả:
lập trình không khó lập trình không khó lập trình không khó lập trình không khó lập trình không khó
Hãy tham gia group lập trình không khó để cùng thảo luận về các vấn đề về lập trình.
Hẹn các bạn vào các bài học sau!!!
Trả lời