Hướng dẫn how do you return multiple things from a function in python? - làm thế nào để bạn trả về nhiều thứ từ một hàm trong python?

Trong hướng dẫn này, chúng tôi xem xét Python: Trả về nhiều giá trị từ một hàm. Chúng tôi giải thích các phương pháp khác nhau một cách chi tiết và liệt kê những thiếu sót của họ.

Mục lục - Python trả về nhiều giá trị:

  1. Python trả về nhiều giá trị
  2. Các giá trị được phân tách bằng dấu phẩy [Bộ dữ liệu]
  3. Danh sách Python
  4. Từ điển Python
  5. Sử dụng lớp dữ liệu Python
  6. Hạn chế và cảnh báo - Python trả về nhiều giá trị

Python trả về nhiều giá trị:

Các chức năng được sử dụng để thực hiện một nhiệm vụ cụ thể mà rất có thể liên quan đến việc trả về một giá trị cụ thể. Tuy nhiên, một vài trường hợp sử dụng có thể yêu cầu bạn trả về hai hoặc nhiều giá trị. Trong các ngôn ngữ lập trình khác, mã để đạt được điều này có thể khá phức tạp nhưng Python cung cấp một vài phương pháp tiện dụng để trả về nhiều giá trị.

Hầu hết các phương pháp này liên quan đến việc sử dụng một loại dữ liệu thu thập để trả về các giá trị này. Chúng tôi đã xem xét kỹ tất cả chúng dưới đây.

Sử dụng các giá trị được phân tách bằng dấu phẩy [Tuples]:

Trong phương pháp này, chúng tôi sử dụng Python để trả về nhiều giá trị bằng cách phân tách chúng bằng dấu phẩy. Python về cơ bản sử dụng một tuple để đạt được điều này.

Mã để đạt được điều này như sau:

#Returning Multiple Values using Tuples
def multiple[]:
    operation = "Sum" 
    total = 5+10
    return operation, total;

operation, total = multiple[]

print[operation, total]
#Output = Sum 15

Một sự nhầm lẫn phổ biến ở đây là cú pháp của tuple đòi hỏi một cặp dấu ngoặc []. Mặc dù điều này là đúng, Python không phải lúc nào cũng yêu cầu dấu ngoặc để xác định một tuple.

Sử dụng danh sách Python:

Tương tự như các phương thức trước đó, danh sách cũng có thể được sử dụng để trả về nhiều giá trị. Trong trường hợp bạn không quen thuộc với danh sách, chúng là một tập hợp các mặt hàng. Chúng khá giống với các mảng tuy nhiên chúng có thể được sử dụng để lưu trữ các giá trị của các loại dữ liệu khác nhau.

Vì chúng là một tập hợp các mục, chúng tôi có thể thêm các giá trị vào danh sách và trả lại danh sách.

Mã để trả về nhiều giá trị bằng danh sách:

#Returning Multiple Values using List
def multiple[]:
    operation = "Sum" 
    total = 5+10
    return [operation, total];

values = multiple[]

print[values]
#Output = ["Sum", 15]

Trong phương thức này, bạn sẽ phải sử dụng chỉ mục của danh sách để sử dụng các giá trị riêng lẻ.

Sử dụng từ điển Python:

Trong phương thức trước, việc truy cập một giá trị cụ thể sẽ là một rắc rối. Tuy nhiên, đây sẽ không phải là vấn đề trong khi sử dụng từ điển để trả về nhiều giá trị. Điều này là do chúng tôi có thể sử dụng tên khóa có liên quan và chúng có thể được truy cập dễ dàng.

Mã để làm như vậy như sau:

#Returning Multiple Values using Dictionary
def multiple[]:
    values = dict[];
    values['operation'] = "Sum" 
    values['total'] = 5+10
    return values;

values = multiple[]

print[values]
#Output = {'operation': 'Sum', 'total': 15}

Trong phương thức này, các giá trị được trả về có thể dễ dàng được truy cập trong các khóa của chúng.

Sử dụng lớp dữ liệu Python:

Trong phương thức này, chúng tôi sử dụng các lớp dữ liệu để trả về nhiều giá trị. Các lớp dữ liệu là một phương pháp thêm các phương thức cụ thể vào lớp do người dùng xác định. Phương pháp này đã được giới thiệu trong Python phiên bản 3.7.

Mã để làm như vậy như sau:

#Returning Multiple Values using Data Classes
from dataclasses import dataclass

@dataclass
class multiplevalues[]:
    operation: str
    num1: int = 0
    num2: int = 0
    def values[self] -> float:
        return self.num1 + self.num2   

#passing arguments into the Data Class 
all_values = multiplevalues["Addition", 5, 10]
v = all_values.values[] 

print[v]
print[all_values]
#Output
#15
#multiplevalues[operation='Addition', num1=5, num2=10]

Hạn chế và cảnh báo - Python trả về nhiều giá trị

  • Python trả về nhiều giá trị:
  • Các chức năng được sử dụng để thực hiện một nhiệm vụ cụ thể mà rất có thể liên quan đến việc trả về một giá trị cụ thể. Tuy nhiên, một vài trường hợp sử dụng có thể yêu cầu bạn trả về hai hoặc nhiều giá trị. Trong các ngôn ngữ lập trình khác, mã để đạt được điều này có thể khá phức tạp nhưng Python cung cấp một vài phương pháp tiện dụng để trả về nhiều giá trị.
  • Hầu hết các phương pháp này liên quan đến việc sử dụng một loại dữ liệu thu thập để trả về các giá trị này. Chúng tôi đã xem xét kỹ tất cả chúng dưới đây.
  • Sử dụng các giá trị được phân tách bằng dấu phẩy [Tuples]:

Để trả về nhiều giá trị từ hàm Python, hãy sử dụng dấu phẩy để tách các giá trị trả về.

Chẳng hạn, hãy để tạo ra một hàm lấy hai số làm đối số. Hàm này trả về tổng, sự khác biệt, phép nhân và phân 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 các 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 những điều 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

Làm thế nào để trả lại nhiều giá trị hoạt động trong Python

Trong 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ị.

Nhưng tại sao và nó hoạt động như thế nào?

Tuples in Python

Mã ví dụ hoạt động vì nó trả về một tuple.

Trong trường hợp bạn không biết một tuple là gì, hãy xem bài viết chuyên sâu này. Nói tóm lại, một tuple là một nhóm không hoặc nhiều yếu tố.

Chẳng hạn, đây là một ví dụ về một 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 như:

coords = 1, 1, 3

Điều này tạo ra cùng một bộ ba của 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 tuple, bạn có thể truy cập nó giống như bạn sẽ truy cập một giá trị từ một danh sách. Nói cách khác, sử dụng toán tử [] với một chỉ mục.[] operator with an index.

Ví dụ, hãy để lưu trữ các điểm 3D thành 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:

#Returning Multiple Values using List
def multiple[]:
    operation = "Sum" 
    total = 5+10
    return [operation, total];

values = multiple[]

print[values]
#Output = ["Sum", 15]
0

Đ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.

Tuple phá hủy trong Python

Bạn có thể sử dụng Tuple Destrologuring để truy cập các giá trị Tuple và lưu trữ chúng thành các biến.tuple destructuring to access tuple values and store them into variables.

Tuple phá hủy 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 mỗi giá trị tuple 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 thể hiện ý tôi là gì

Chẳng hạn, trong ví dụ trước, bạn đã lưu trữ tọa độ 3D X, Y và Z trên các dòng riêng biệt bằng toán tử []. Thay vì thực hiện theo cách này, bạn có thể sử dụng Tuple Destrabiling như một tốc ký:x, y, and z on separate lines using the [] operator. Instead of doing it this way, you can utilize tuple destructuring as a shorthand:

#Returning Multiple Values using List
def multiple[]:
    operation = "Sum" 
    total = 5+10
    return [operation, total];

values = multiple[]

print[values]
#Output = ["Sum", 15]
1

Kết quả là, mỗi tọa độ trong điểm 3D được gán thành một biến riêng biệt.

#Returning Multiple Values using List
def multiple[]:
    operation = "Sum" 
    total = 5+10
    return [operation, total];

values = multiple[]

print[values]
#Output = ["Sum", 15]
0

Như bạn có thể thấy, giá trị đầu tiên của tuple được gắn vào biến X, giá trị thứ hai của Y và giá trị thứ ba đến z.x, the second one to y, and the third one to z.

Bây giờ bạn đã hiểu cách tạo các bộ dữ liệu và cách đọc các giá trị từ chúng.

Bây giờ bạn đã hiểu những điều cơ bản của các bộ dữ liệu trong Python, cuối cùng bạn có thể hiểu 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 tuple. Để truy cập/lưu trữ các giá trị này thành các biến, hãy sử dụng phá hủy tuple.

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ộ ba giá trị.

Để truy cập bốn giá trị này, bạn sử dụng Tuple Destructure:

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

Sự 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ị.

Một tuple 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 tuple 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 sự phá hủy Tuple.

Cảm ơn vì đã đọc. Mã hóa hạnh phúc!

Đọc thêm

Thủ thuật Python

Cách ghi vào một tệp trong Python

Với tuyên bố trong Python

Tôi có thể trả về nhiều giá trị từ một hàm trong Python không?

Bạn có thể trả về nhiều giá trị từ một hàm trong Python.Để làm như vậy, hãy trả về một cấu trúc dữ liệu chứa nhiều giá trị, như một danh sách chứa số dặm để chạy mỗi tuần.Các cấu trúc dữ liệu trong Python được sử dụng để lưu trữ các bộ sưu tập dữ liệu, có thể được trả về từ các chức năng.. To do so, return a data structure that contains multiple values, like a list containing the number of miles to run each week. Data structures in Python are used to store collections of data, which can be returned from functions.

Làm thế nào để bạn trả về nhiều đối tượng từ một hàm trong Python?

Sử dụng đối tượng: Điều này tương tự như C/C ++ và Java, chúng ta có thể tạo một lớp [trong C, Struct] để giữ nhiều giá trị và trả về một đối tượng của lớp.....
Sử dụng tuple: Một tuple là một chuỗi các mục được phân tách bằng dấu phẩy.....
Sử dụng danh sách: 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 ..

Làm thế nào để bạn trả về nhiều thứ từ một chức năng?

Nếu chúng ta muốn hàm trả về nhiều giá trị của cùng loại dữ liệu, chúng ta có thể trả lại con trỏ về mảng của các loại dữ liệu đó.Chúng ta cũng có thể làm cho hàm trả về nhiều giá trị bằng cách sử dụng các đối số của hàm.return the pointer to array of that data types. We can also make the function return multiple values by using the arguments of the function.

Bài Viết Liên Quan

Chủ Đề