Làm cách nào chúng ta có thể trả về nhiều giá trị từ một hàm trong Python?

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ệu

Cá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
2
3
def complexfunction(a,b):
sum = a +b
return sum

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ại

Tạ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

Trong hướng dẫn này, bạn sẽ học cách sử dụng Python để trả về nhiều giá trị từ hàm của mình. Đây là một nhiệm vụ thường khá khó với một số ngôn ngữ khác, nhưng lại rất dễ thực hiện với Python

Bạn sẽ học cách sử dụng bộ dữ liệu, ngầm định hoặc rõ ràng, danh sách và từ điển để trả về nhiều giá trị từ một hàm. Bạn cũng sẽ tìm hiểu cách xác định phương pháp nào phù hợp nhất cho trường hợp sử dụng của mình. Bạn cũng sẽ học cách giải nén các mục có độ dài không bằng nhau, sử dụng toán tử giải nén (

# Defining Simple Functions to Return One and Two Values

def return_one():
    return 'x'

def return_two():
    return 'x', 'y'
5)

Khả năng làm việc với các hàm là một kỹ năng cực kỳ hữu ích cho phép bạn dễ dàng tuân theo nguyên tắc KHÔ (không lặp lại chính mình). Hàm cho phép mã của bạn dễ đọc hơn và ít lặp lại hơn. Tất cả điều này cho phép mã của bạn dễ bảo trì hơn và giảm độ phức tạp của mã

Câu trả lời nhanh. Sử dụng Giải nén Tuple

Làm cách nào chúng ta có thể trả về nhiều giá trị từ một hàm trong Python?
Làm cách nào chúng ta có thể trả về nhiều giá trị từ một hàm trong Python?

Mục lục

  • Làm cách nào để Hàm trả về giá trị trong Python?
  • Cách trả về nhiều giá trị từ một hàm Python với Tuples
  • Cách giải nén nhiều giá trị từ hàm Python thành độ dài không bằng nhau
  • Cách trả về nhiều giá trị từ hàm Python có danh sách
  • Cách trả về nhiều giá trị từ hàm Python với từ điển
  • Sự kết luận

Làm cách nào để Hàm trả về giá trị trong Python?

Các hàm Python là những cách dễ dàng để cấu trúc mã thành các quy trình động có thể đọc và sử dụng lại được. Mặc dù các hàm Python có thể chấp nhận đầu vào, nhưng trong hướng dẫn này, chúng ta sẽ xem xét đầu ra của hàm. Cụ thể, chúng ta sẽ xem xét cách hàm trả về giá trị

Chúng ta hãy xem cách một hàm trong Python được thiết kế và cách trả về một giá trị và cách trả về hai giá trị

# Defining Simple Functions to Return One and Two Values

def return_one():
    return 'x'

def return_two():
    return 'x', 'y'

Trong ví dụ trên, chúng ta đã định nghĩa hai hàm khác nhau,

# Returning Multiple Values with Tuples
def return_multiple():
    return 1, 2, 3

variable = return_multiple()
print(type(variable))

# Returns: <class 'tuple'>
0 và
# Returning Multiple Values with Tuples
def return_multiple():
    return 1, 2, 3

variable = return_multiple()
print(type(variable))

# Returns: <class 'tuple'>
1. Cái trước chỉ trả về một giá trị duy nhất. Trong khi đó, hàm thứ hai,
# Returning Multiple Values with Tuples
def return_multiple():
    return 1, 2, 3

variable = return_multiple()
print(type(variable))

# Returns: <class 'tuple'>
1, trả về hai giá trị. Điều này được thực hiện bằng cách tách các giá trị bằng dấu phẩy

Trong phần tiếp theo, bạn sẽ tìm hiểu cách thức và lý do trả về nhiều giá trị thực sự hoạt động

Bạn muốn tìm hiểu thêm về cách tính căn bậc hai trong Python?

Cách trả về nhiều giá trị từ một hàm Python với Tuples

Trong phần trước, bạn đã học cách định cấu hình hàm Python để trả về nhiều hơn một giá trị

Cách thức hoạt động của nó là Python thực sự biến các giá trị (được phân tách bằng dấu phẩy) thành một bộ. Chúng ta có thể thấy điều này hoạt động như thế nào bằng cách gán hàm cho một biến và kiểm tra kiểu của nó

# Returning Multiple Values with Tuples
def return_multiple():
    return 1, 2, 3

variable = return_multiple()
print(type(variable))

# Returns: <class 'tuple'>

Chúng ta có thể thấy trong đoạn mã trên rằng khi chúng ta gán hàm của mình cho một biến, thì một bộ sẽ được tạo

Tuy nhiên, điều này có thể làm bạn ngạc nhiên vì bạn không thực sự ra lệnh cho hàm đó với

# Returning Multiple Values with Tuples
def return_multiple():
    return 1, 2, 3

variable = return_multiple()
print(type(variable))

# Returns: <class 'tuple'>
3. Python ngầm xử lý việc chuyển đổi các giá trị trả về thành một bộ. Không phải dấu ngoặc đơn biến giá trị trả về thành một bộ, mà là dấu phẩy cùng với dấu ngoặc đơn

Chúng tôi có thể xác minh điều này bằng cách kiểm tra loại giá trị (1), ví dụ:. Điều này trả về.

# Returning Multiple Values with Tuples
def return_multiple():
    return 1, 2, 3

variable = return_multiple()
print(type(variable))

# Returns: <class 'tuple'>
4

>>> print(type((1))
<class 'int'>

Một lần nữa, điều này có thể làm bạn ngạc nhiên. Tuy nhiên, nếu chúng tôi đã thay đổi giá trị của mình thành

# Returning Multiple Values with Tuples
def return_multiple():
    return 1, 2, 3

variable = return_multiple()
print(type(variable))

# Returns: <class 'tuple'>
5, chúng tôi sẽ trả về một kết quả khác

def complexfunction(a,b):
sum = a +b
return sum
1

Rất nhiều điều này có vẻ giống như ngữ nghĩa, nhưng nó cho phép bạn hiểu tại sao những điều này thực sự hoạt động. Bây giờ, hãy tìm hiểu cách gán nhiều biến này cho các biến khác nhau

Hãy xem chức năng tương tự như trước đây. Thay vì gán các giá trị trả về cho một bộ dữ liệu, hãy giải nén bộ dữ liệu của chúng ta và trả về ba giá trị riêng biệt

def complexfunction(a,b):
sum = a +b
return sum
2

Lý do điều này hoạt động là vì Python đang xử lý việc giải nén các giá trị này cho chúng tôi. Bởi vì chúng ta có cùng số lượng biến gán như khi chúng ta thực hiện các giá trị trong câu lệnh trả về, Python sẽ xử lý việc gán các giá trị này cho chúng ta

Trong phần tiếp theo, bạn sẽ tìm hiểu cách giải nén nhiều giá trị từ Python thành các biến có độ dài không khớp

Bạn muốn tìm hiểu thêm về các vòng lặp Python? . Thay vào đó, bạn muốn xem một video?

Cách giải nén nhiều giá trị từ hàm Python thành độ dài không bằng nhau

Trong ví dụ trên, bạn đã học cách trả về nhiều giá trị từ một hàm Python bằng cách giải nén các giá trị từ bộ dữ liệu trả về

Có thể nhiều khi hàm của bạn trả về nhiều giá trị, nhưng bạn chỉ quan tâm đến một số. Bạn không thực sự quan tâm đến các giá trị khác, nhưng Python sẽ không cho phép bạn chỉ trả lại một vài trong số chúng

Hãy xem nó trông như thế nào

def complexfunction(a,b):
sum = a +b
return sum
3

Điều này xảy ra vì nhiệm vụ của chúng tôi cần khớp với số mục được trả về

Tuy nhiên, Python cũng đi kèm với một toán tử giải nén, được ký hiệu là

# Defining Simple Functions to Return One and Two Values

def return_one():
    return 'x'

def return_two():
    return 'x', 'y'
5. Nói rằng chúng tôi chỉ quan tâm đến mặt hàng đầu tiên được trả lại. Chúng ta vẫn cần gán các giá trị còn lại cho một biến khác, nhưng chúng ta có thể dễ dàng nhóm chúng thành một biến duy nhất bằng cách sử dụng toán tử giải nén

Hãy xem cách nó hoạt động trong Python

def complexfunction(a,b):
sum = a +b
return sum
4

Ở đây, chúng tôi đã giải nén giá trị đầu tiên cho biến

# Returning Multiple Values with Tuples
def return_multiple():
    return 1, 2, 3

variable = return_multiple()
print(type(variable))

# Returns: <class 'tuple'>
7 của chúng tôi và tất cả các biến khác cho biến
# Returning Multiple Values with Tuples
def return_multiple():
    return 1, 2, 3

variable = return_multiple()
print(type(variable))

# Returns: <class 'tuple'>
8, sử dụng ký hiệu của
# Returning Multiple Values with Tuples
def return_multiple():
    return 1, 2, 3

variable = return_multiple()
print(type(variable))

# Returns: <class 'tuple'>
9

Trong phần tiếp theo, bạn sẽ tìm hiểu cách trả về nhiều giá trị từ một hàm Python bằng danh sách

Bạn muốn tìm hiểu cách sử dụng hàm Python

>>> print(type((1))
<class 'int'>
0 để lặp qua hai danh sách?

Cách trả về nhiều giá trị từ hàm Python có danh sách

Tương tự như việc trả về nhiều giá trị bằng cách sử dụng bộ dữ liệu, như đã trình bày trong các ví dụ trước, chúng ta có thể trả về nhiều giá trị từ một hàm Python bằng cách sử dụng danh sách

Một trong những điểm khác biệt lớn giữa các bộ và danh sách trong Python là các danh sách có thể thay đổi trong Python, nghĩa là chúng có thể được thay đổi. Nếu đây là một đặc điểm quan trọng của các giá trị bạn trả về, thì đây là một cách tốt để thực hiện

Hãy xem cách chúng ta có thể trả về nhiều giá trị từ một hàm, sử dụng cả phép gán cho một biến và cho nhiều biến

# Defining Simple Functions to Return One and Two Values

def return_one():
    return 'x'

def return_two():
    return 'x', 'y'
0

Trong phần tiếp theo, bạn sẽ học cách sử dụng từ điển Python để hiểu rõ hơn về giá trị trả về

Bạn muốn tìm hiểu thêm về cách hiểu danh sách Python? . Thêm một người học trực quan, hãy xem hướng dẫn YouTube của tôi tại đây

Cách trả về nhiều giá trị từ hàm Python với từ điển

Trong cả hai ví dụ trên, nếu bạn đang trả về tất cả các giá trị cho một biến, thì có thể khó xác định mỗi giá trị đại diện cho điều gì. Ví dụ: mặc dù bạn có thể truy cập tất cả các mục trong một bộ hoặc trong danh sách bằng cách sử dụng chỉ mục, nhưng có thể khó xác định mỗi giá trị đại diện cho điều gì

Chúng ta hãy xem xét một hàm phức tạp hơn để tạo các biến cho

>>> print(type((1))
<class 'int'>
2,
>>> print(type((1))
<class 'int'>
3 và
>>> print(type((1))
<class 'int'>
4 đã đi ô tô

Nếu chúng tôi trả về giá trị này dưới dạng một bộ hoặc dưới dạng danh sách, thì chúng tôi sẽ cần biết biến nào đại diện cho mục nào. Tuy nhiên, chúng tôi cũng có thể trả lại các mục này dưới dạng từ điển. Khi chúng tôi làm điều này, chúng tôi có thể truy cập từng mục bằng khóa của nó

Hãy xem cách chúng ta có thể làm điều này trong Python

# Defining Simple Functions to Return One and Two Values

def return_one():
    return 'x'

def return_two():
    return 'x', 'y'
4

Cần kiểm tra xem một khóa có tồn tại trong từ điển Python không?

Sự kết luận

Trong hướng dẫn này, bạn đã học cách trả về nhiều giá trị từ các hàm Python. Bạn đã tìm hiểu cách thức và lý do có thể trả về nhiều giá trị cũng như cách tối ưu hóa cách trả về giá trị cho các trường hợp sử dụng của bạn bằng cách tìm hiểu cách trả về bộ dữ liệu, danh sách và từ điển. Bạn cũng đã học cách giải nén nhiều giá trị thành các biến có độ dài khác nhau

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ề cấu trúc dữ liệu chứa nhiều giá trị, chẳng hạn như danh sách chứa số dặm chạy mỗi tuần. 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 hàm.

Làm cách nào tôi có thể trả về nhiều giá trị từ một hàm?

Nếu chúng ta muốn hàm trả về nhiều giá trị của cùng một kiểu dữ liệu, chúng ta có thể trả con trỏ về mảng của kiểu 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.