CodeGym /Khóa học Java /Python SELF VI /Trả về giá trị

Trả về giá trị

Python SELF VI
Mức độ , Bài học
Có sẵn

8.1 Toán tử return

Trong Python, toán tử return đóng vai trò trọng tâm trong hàm, bởi vì nó là cách hàm có thể trả về giá trị của mình. Hiểu cách sử dụng toán tử này là rất quan trọng để phát triển phần mềm hiệu quả.

Toán tử return kết thúc việc thực thi của hàm và "trả về" kết quả cho mã gọi hàm. Nếu một hàm cần trả ra kết quả để sử dụng tiếp, chúng ta sẽ dùng return.

Trả về giá trị

Hàm có thể trả về bất kỳ kiểu dữ liệu nào, bao gồm số, chuỗi, đối tượng, thậm chí cả hàm khác hoặc None. Ví dụ:


def sum(a, b):
    return a + b
        
result = sum(5, 3)
print(result)  # In ra 8

Kết quả của a + b có thể được gán vào biến result.

Trả về nhiều giá trị

Python cho phép trả về nhiều giá trị từ một hàm bằng cách sử dụng tuple:


def get_user():
    name = "Ivan"
    age = 25
    return name, age
        
user_name, user_age = get_user()
print(user_name, user_age)  # In ra Ivan 25

Sử dụng return để kết thúc hàm

Toán tử return cũng có thể được sử dụng để kết thúc hàm ngay lập tức, bao gồm cả trong vòng lặp hoặc các khối điều kiện bên trong hàm:


def check_password(pswd):
    if len(pswd) < 8:
        return "Mật khẩu quá ngắn"
    return "Mật khẩu được chấp nhận"

return không có giá trị

Nếu return được sử dụng mà không có giá trị hoặc hoàn toàn bỏ qua, hàm sẽ trả về None:


def print_message(text):
    print(text)
    return
        
result = print_message("Xin chào")
print(result)  # In ra None

Toán tử return là một công cụ mạnh mẽ trong Python, giúp điều khiển dòng chảy thực thi của chương trình một cách linh hoạt. Nó không chỉ cho phép hàm trả về giá trị để sử dụng tiếp, mà còn kiểm soát logic thực thi, giúp mã trở nên rõ ràng và dễ hiểu hơn.

8.2 Toán tử pass

Trong Python, có một toán tử đặc biệt — pass, nó không làm gì cả. Toán tử pass được sử dụng như một placeholder trong khối mã nơi cần có nội dung về mặt cú pháp, nhưng chức năng chưa được xác định (cần có mã, nhưng chưa nghĩ ra mã gì).

Điều này đặc biệt hữu ích khi làm việc trên một dự án lớn và bạn muốn tổ chức chương trình mà không thực hiện bất kỳ thao tác cụ thể nào. Dưới đây là một số ví dụ sử dụng pass.

Trong định nghĩa hàm:


def my_function():
    pass

Ở đây, pass được dùng để định nghĩa một hàm chưa có thực thi.

Trong vòng lặp và điều kiện:


for item in my_list:
    pass

Nếu cần tạo một vòng lặp mà không cần thực hiện bất kỳ thao tác nào trong thân vòng lặp.

Trong class:

Định nghĩa một class không có phương thức và thuộc tính, để dành tên và cấu trúc của class cho việc sử dụng sau này.

Toán tử pass thường được sử dụng trong quá trình phát triển và kiểm thử khi cấu trúc chương trình đã rõ ràng, nhưng chi tiết thực hiện các thành phần cụ thể vẫn chưa được xác định. Điều này cho phép lập trình viên tổ chức mã và dần dần thêm chức năng mà không làm gián đoạn hoạt động tổng thể của ứng dụng.

8.3 Trả về hàm

Trong Python, khả năng một hàm trả về một hàm khác là một công cụ rất mạnh mẽ, nhờ vào việc hỗ trợ closure* và hàm bậc cao. Đặc điểm này của ngôn ngữ cho phép phát triển các chương trình linh hoạt và giàu biểu cảm, sử dụng các khái niệm như decorator*factory function*.

Trong Python, các hàm là đối tượng, có nghĩa là chúng có thể được gán cho các biến, truyền vào các hàm khác dưới dạng tham số hoặc được trả về như kết quả. Điều này làm cho hàm trở thành công cụ rất mạnh mẽ để tạo mã nguồn module và dễ kiểm thử.

Hãy lấy ví dụ, chúng ta tạo một hàm, hàm này sẽ sinh ra các hàm để tính lũy thừa. Một hàm sẽ tính bình phương, hàm khác sẽ tính lũy thừa ba, v.v. Đây là cách mã có thể trông như sau:


def power(exponent):
    def inner(base):
        return base ** exponent
    return inner
        
square = power(2)
print(square(3))  # In ra 9
        
cube = power(3)
print(cube(3))  # In ra 27

Lưu ý nhé — hàm power không gọi hàm inner. Thay vào đó, bên trong hàm power có định nghĩa một hàm inner với tham số base. Nhưng hàm inner không chỉ được định nghĩa, nó còn sử dụng tham số exponent bên trong.

Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION