Tôi có thể trả về nhiều giá trị từ một hàm trong Python không?
1) Sử dụng đối tượng. Điều này cũng tương tự với C/C++ và Java, chúng ta có thể tạo một lớp (trong C là struct) để chứa nhiều giá trị và trả về một đối tượng của lớp Show # Một chương trình Python trả về nhiều # Hàm này trả về một đối tượng Test # Mã trình điều khiển để kiểm tra phương pháp trên thợ cắt tóc 2) Sử dụng Tuple. Tuple là một chuỗi các mục được phân tách bằng dấu phẩy. Nó được tạo ra có hoặc không có (). Tuples là bất biến. Xem phần này để biết chi tiết về Tuple và danh sách # Một chương trình Python trả về nhiều # Hàm này trả về một bộ # Mã trình điều khiển để kiểm tra phương pháp trên thợ cắt tóc 3) Sử dụng danh sách. Một danh sách giống như một mảng các mục được tạo bằng dấu ngoặc vuông. Chúng khác với mảng vì chúng có thể chứa các mục thuộc các loại khác nhau. Danh sách khác với bộ dữ liệu vì chúng có thể thay đổi # Một chương trình Python trả về nhiều # Hàm này trả về một danh sách # Mã trình điều khiển để kiểm tra phương pháp trên ['prutor', 20] 4) Sử dụng từ điển. Từ điển tương tự như hàm băm hoặc bản đồ trong các ngôn ngữ khác. Xem cái này để biết chi tiết về từ điển # Một chương trình Python trả về nhiều # Hàm này trả về một từ điển # Mã trình điều khiển để kiểm tra phương pháp trên {'x'. 20, 'str'. 'thợ cắt tỉa. ai'} 5) Sử dụng Lớp dữ liệu (Python 3. 7+). Trong Trăn 3. 7 trở lên, Lớp dữ liệu có thể được sử dụng để trả về một lớp với các phương thức duy nhất được thêm tự động. Mô-đun Lớp dữ liệu có một trình trang trí và các chức năng để tự động thêm các phương thức đặc biệt đã tạo, chẳng hạn như __init__() và __repr__() trong các lớp do người dùng định nghĩa Hàm Python có thể trả về nhiều biến. Các biến này có thể được lưu trữ trực tiếp trong các biến. Một hàm không bắt buộc phải trả về một biến, nó có thể trả về 0, một, hai hoặc nhiều biến Đây là thuộc tính riêng của Python, các ngôn ngữ lập trình khác như C++ hay Java mặc định không hỗ trợ tính năng này khóa học liên quan. Hoàn thành khóa học & bài tập lập trình Python Thí dụGiới thiệuCác biến được định nghĩa trong hàm chỉ được biết trong hàm. Đó là do phạm vi của biến. Nói chung, đó không phải là vấn đề, trừ khi bạn muốn sử dụng đầu ra của hàm trong chương trình của mình Trong trường hợp đó, bạn có thể trả về các biến từ một hàm. Trong trường hợp đơn giản nhất, bạn có thể trả về một biến duy nhất 1 def complexfunction(a,b): Gọi hàm với hàm phức tạp (2,3) và đầu ra của nó có thể được sử dụng hoặc lưu Nhưng nếu bạn có nhiều biến trong một hàm mà bạn muốn truy cập thì sao? nhiều trở lạiTạo một hàm getPerson(). Như bạn đã biết một hàm có thể trả về một biến nhưng cũng có thể trả về nhiều biến Khi bạn trả về nhiều giá trị bằng cách sử dụng (các) dấu phẩy, chúng sẽ được trả về ở dạng một bộ. Như được hiển thị trong đoạn mã trên, hai chuỗi ví dụ 2. Sử dụng từ điển
đầu ra {1: 'John', 2: 'Armin'} Khi bạn trả về các giá trị bằng từ điển, bạn sẽ dễ dàng theo dõi các giá trị được trả về bằng cách sử dụng các phím. Câu lệnh return trả về hai biến ở dạng từ điển Chẳng hạn, hãy tạo một hàm lấy hai số làm đối số. Hàm này trả về tổng, hiệu, nhân và chia giữa hai số này Đây là cách nó trông trong mã def operate(a, b): sum = a + b diff = a - b mul = a * b div = a / b return sum, diff, mul, div Bây giờ bạn có thể gọi hàm này cho hai số và gán giá trị trả về cho các biến n1 = 5 n2 = 10 sum, diff, mul, div = operate(n1, n2) print( f"The sum is {sum}\n" f"The difference is {diff}\n" f"The multiplication gives {mul}\n" f"The division gives {div}\n" ) Điều này dẫn đến kết quả sau đây được in trong bảng điều khiển The sum is 15 The difference is -5 The multiplication gives 50 The division gives 0.5 Trả về nhiều giá trị hoạt động như thế nào trong PythonTrong phần trước, bạn đã học cách trả về nhiều giá trị bằng cách phân tách các giá trị bằng dấu phẩy Nhưng tại sao và nó hoạt động như thế nào? Bộ dữ liệu trong PythonMã ví dụ hoạt động vì nó trả về một tuple Trong trường hợp bạn không biết tuple là gì, hãy xem bài viết chuyên sâu này. Tóm lại, một bộ là một nhóm gồm 0 hoặc nhiều phần tử Chẳng hạn, đây là một ví dụ về bộ ba giá trị đại diện cho một điểm 3D coords = (1, 1, 3) Lưu ý rằng các bộ dữ liệu Python không phải lúc nào cũng cần dấu ngoặc đơn Ví dụ: bạn có thể viết điểm 3D ở trên dưới dạng ________số 8_______Điều này tạo ra cùng một bộ ba giá trị đại diện cho một điểm 3D Cách truy cập giá trị Tuple trong PythonĐể truy cập và lưu trữ một giá trị từ một bộ dữ liệu, bạn có thể truy cập nó giống như cách bạn truy cập một giá trị từ danh sách. Nói cách khác, sử dụng toán tử [] với chỉ số Ví dụ: hãy lưu trữ các điểm 3D vào các biến x, y và z coords = 1, 1, 3 x = coords[0] y = coords[1] z = coords[2] print(x, y, z) Điều này dẫn đến đầu ra sau trong bảng điều khiển 1 1 3 Điều này hoạt động tốt, nhưng có một cách dễ dàng hơn cho mục đích cụ thể này Phá hủy Tuple trong PythonBạn có thể sử dụng phá hủy bộ dữ liệu để truy cập các giá trị bộ dữ liệu và lưu trữ chúng vào các biến Phá hủy bộ có nghĩa là bạn khai báo một loạt các biến được phân tách bằng dấu phẩy trong một dòng và gán từng giá trị bộ cho biến tương ứng. Điều này giúp bạn tiết kiệm các dòng mã trong khi nó cũng làm cho ý định rất rõ ràng Hãy để tôi chỉ ra những gì tôi có ý nghĩa Chẳng hạn, trong ví dụ trước, bạn đã lưu tọa độ 3D x, y và z trên các dòng riêng biệt bằng toán tử []. Thay vì làm theo cách này, bạn có thể sử dụng tuple destructuring như một tốc ký coords = 1, 1, 3 x, y, z = coords print(x, y, z) Do đó, mỗi tọa độ trong điểm 3D được gán cho một biến riêng 1 1 3 Như bạn có thể thấy, giá trị đầu tiên của bộ dữ liệu được gắn vào biến x, giá trị thứ hai đến y và giá trị thứ ba đến z Bây giờ bạn đã hiểu cách các bộ dữ liệu được tạo và cách các giá trị được đọc từ chúng Cách trả về nhiều giá trị từ một hàmĐể trả về nhiều giá trị từ một hàm, hãy trả về các giá trị dưới dạng một bộ. Để sau đó truy cập/lưu trữ các giá trị này vào các biến, hãy sử dụng tuple destructuring Nếu bây giờ bạn nhìn vào ví dụ bạn đã thấy trong phần giới thiệu def operate(a, b): sum = a + b diff = a - b mul = a * b div = a / b return sum, diff, mul, div Bạn nhận ra hàm này trả về một bộ gồm bốn giá trị. Để truy cập bốn giá trị này, bạn sử dụng cấu trúc lại tuple. Đây là giao diện của nó trong mã n1 = 5 n2 = 10 sum, diff, mul, div = operate(n1, n2) print( f"The sum is {sum}\n" f"The difference is {diff}\n" f"The multiplication gives {mul}\n" f"The division gives {div}\n" ) đầu ra The sum is 15 The difference is -5 The multiplication gives 50 The division gives 0.5 Bây giờ các giá trị bộ trả về được lưu trữ trong các biến sum, diff, mul và div Việc hủy cấu trúc một bộ trả về theo cách này rất tiện lợi. Bạn không cần sử dụng toán tử truy cập dấu ngoặc vuông để chọn thủ công các giá trị từ bộ dữ liệu. Thay vào đó, cú pháp phá hủy sẽ giải quyết vấn đề đó Phần kết luậnĐể trả về nhiều giá trị từ một hàm trong Python, hãy trả về một bộ giá trị Như bạn có thể biết, một bộ là một nhóm các giá trị được phân tách bằng dấu phẩy. Bạn có thể tạo một bộ có hoặc không có dấu ngoặc đơn. Để truy cập/lưu trữ nhiều giá trị được trả về bởi một hàm, hãy sử dụng cấu trúc tuple |