Cách viết hàm và thủ tục
Để viết một hàm hoặc thủ tục trong nhiều ngôn ngữ lập trình khác nhau, bạn cần tuân theo cú pháp và quy tắc cụ thể của từng ngôn ngữ. Dưới đây là một ví dụ về cách viết hàm và thủ tục trong Python:
1. Hàm trong Python:
def welcome_message(name):
print("Hello, " + name + "! Welcome to our program.")
# Gọi hàm
welcome_message("John")
2. Thủ tục trong Python (dùng để thực hiện một tác vụ mà không trả về giá trị):
def print_numbers(n):
for i in range(1, n+1):
print(i)
# Gọi thủ tục
print_numbers(5)
Trong ví dụ trên, def
được sử dụng để định nghĩa một hàm hoặc thủ tục mới. Tên của hàm hoặc thủ tục được đặt sau từ khóa def
. Các tham số (nếu có) được đặt trong dấu ngoặc đơn, và kiểu dữ liệu của tham số không cần được khai báo rõ ràng trong Python.
Các câu lệnh thuộc về hàm hoặc thủ tục được thụt lề vào một số khoảng cách (thường là bốn khoảng trắng hoặc một tab) so với dòng định nghĩa. Khi gọi một hàm hoặc thủ tục, bạn chỉ cần sử dụng tên của nó và truyền các đối số (nếu có) vào trong dấu ngoặc đơn.
Lưu ý rằng cách viết hàm và thủ tục có thể khác nhau tùy thuộc vào ngôn ngữ lập trình bạn đang sử dụng.
3. Truyền tham số vào hàm trong Python
Truyền tham số vào hàm trong Python cho phép bạn truyền dữ liệu hoặc giá trị từ bên ngoài vào hàm để thực hiện các tính toán hoặc xử lý dữ liệu cần thiết. Dưới đây là một số ví dụ về cách truyền tham số vào hàm trong Python:
3.1 Truyền tham số dạng giá trị:
def greet(name):
print("Hello, " + name + "!")
greet("John")
Trong ví dụ này, tham số name
được truyền vào hàm greet
dưới dạng giá trị “John”. Khi hàm được gọi, giá trị của tham số được sao chép vào biến name
trong hàm.
3.2 Truyền tham số dạng tham chiếu (reference):
def increment(number):
number += 1
print("Inside the function:", number)
x = 5
increment(x)
print("Outside the function:", x)
Trong ví dụ này, biến x
được truyền vào hàm increment
dưới dạng tham chiếu. Khi giá trị của biến number
trong hàm được thay đổi, nó không ảnh hưởng đến giá trị của biến x
bên ngoài hàm.
3.3 Truyền tham số với giá trị mặc định:
def multiply(a, b=2):
return a * b
result1 = multiply(3) # sử dụng giá trị mặc định cho tham số b
result2 = multiply(3, 4) # ghi đè giá trị mặc định của tham số b
print(result1) # Output: 6
print(result2) # Output: 12
Trong ví dụ này, hàm multiply
có tham số b
với giá trị mặc định là 2. Khi gọi hàm multiply
, bạn có thể chỉ truyền giá trị cho tham số a
và giá trị mặc định sẽ được sử dụng cho tham số b
. Bạn cũng có thể ghi đè giá trị mặc định bằng cách truyền giá trị mới cho tham số b
.
Đó là một số ví dụ cơ bản về cách truyền tham số vào hàm trong Python. Bạn có thể sử dụng các loại tham số khác nhau như tham số tuỳ ý (*args
), tham số từ khoá (**kwargs
), và tham số theo tên (name='John'
) để mở rộng khả năng truyền đối số trong Python.
3.4 Ghi đè giá trị mặc định của tham số
Trong Python, bạn có thể ghi đè giá trị mặc định của tham số bằng cách truyền giá trị mới cho tham số đó khi gọi hàm. Khi giá trị được truyền vào tham số, nó sẽ thay thế giá trị mặc định được định nghĩa trong định nghĩa hàm. Dưới đây là một ví dụ minh họa:
def greet(name="Guest"):
print("Hello, " + name + "!")
greet() # Output: Hello, Guest!
greet("John") # Output: Hello, John!
greet("Alice") # Output: Hello, Alice!
Trong ví dụ trên, hàm greet
có một tham số name
với giá trị mặc định là “Guest”. Khi gọi hàm greet
mà không truyền giá trị cho tham số name
, giá trị mặc định “Guest” được sử dụng. Tuy nhiên, nếu bạn truyền một giá trị khác cho tham số name
, giá trị mặc định sẽ bị ghi đè và giá trị mới sẽ được sử dụng thay thế.
Bạn có thể ghi đè giá trị mặc định cho một số tham số và bỏ qua các tham số khác. Điều này rất hữu ích khi bạn chỉ muốn ghi đè một số tham số cụ thể trong khi giữ nguyên giá trị mặc định của các tham số khác:
def greet(name="Guest", age=18):
print("Hello, " + name + "! You are " + str(age) + " years old.")
greet() # Output: Hello, Guest! You are 18 years old.
greet("John") # Output: Hello, John! You are 18 years old.
greet("Alice", 25) # Output: Hello, Alice! You are 25 years old.
greet(age=30) # Output: Hello, Guest! You are 30 years old.
greet(name="Bob", age=40) # Output: Hello, Bob! You are 40 years old.
Trong ví dụ này, hàm greet
có hai tham số name
và age
, mỗi tham số đều có giá trị mặc định. Bạn có thể ghi đè giá trị mặc định của bất kỳ tham số nào bằng cách truyền giá trị mới cho tham số đó, và giữ nguyên giá trị mặc định của các tham số khác bằng cách không truyền giá trị cho chúng.