Hướng dẫn can python function return single value? - hàm python có thể trả về một giá trị không?

Tôi muốn trả lại từ hàm một mảng các từ được tạo từ nltk. Tại sao chức năng này chỉ trả về một từ và nếu tôi nhận xét việc trả về và giải nén, in sẽ trả về 5 từ.

Tôi muốn trả lại chúng và sử dụng chúng trong một chức năng khác.

    file = open('Text/Walden.txt', 'r',encoding="utf8")
walden = file.read()
walden = walden.split()





def makePairs(arr):
    pairs = []
    for i in range(len(arr)):
        if i < len(arr)-1:
            temp = (arr[i], arr[i+1])
            pairs.append(temp)
    return pairs

def generate(cfd, word = 'the', num = 5):
    for i in range(num):
        arr = []                                      # make an array with the words shown by proper count
        for j in cfd[word]:
            for k in range(cfd[word][j]):
                arr.append(j)

        word = arr[int((len(arr))*random.random())] # choose the word randomly from the conditional distribution
    print(word, end=' ')
    return(word)
            #return random.choices(arr, k=num)


pairs = makePairs(walden)
cfd = nltk.ConditionalFreqDist(pairs)
generate(cfd)

Đầu ra bây giờ là như thế này:

little The print The
had 
>>> 

hoặc

But girl?"— print girl?"—
cases 
>>> 

  • Câu lệnh Python Return được sử dụng trong một hàm để trả về một cái gì đó cho chương trình người gọi.function to return something to the caller program.
  • Chúng ta chỉ có thể sử dụng câu lệnh trả về bên trong một hàm.
  • Trong Python, mọi chức năng đều trả về một cái gì đó. Nếu không có câu lệnh hoàn trả, thì nó không trả về không.None.
  • Nếu câu lệnh trả về chứa một biểu thức, nó đã đánh giá trước và sau đó giá trị được trả về.
  • Câu lệnh trả về chấm dứt thực thi chức năng.
  • Một chức năng có thể có nhiều câu lệnh trả về. Khi bất kỳ trong số chúng được thực thi, chức năng chấm dứt.
  • Một hàm có thể trả về nhiều loại giá trị.
  • Hàm Python có thể trả về nhiều giá trị trong một câu lệnh trả về.

Hãy cùng xem một ví dụ đơn giản để thêm hai số và trả lại tổng số cho người gọi.

def add(x, y):
    total = x + y
    return total

Chúng ta có thể tối ưu hóa chức năng bằng cách có biểu thức trong câu lệnh trả về.

def add(x, y):
    return x + y


Mỗi chức năng trả về một cái gì đó

Hãy để xem những gì được trả lại khi một hàm không có câu lệnh trả lại.

>>> def foo():
...     pass
... 
>>> 
>>> print(foo())
None
>>>

Hướng dẫn can python function return single value? - hàm python có thể trả về một giá trị không?
Python không trả lại


Điều gì xảy ra khi tuyên bố trả lại không có gì?

Khi câu lệnh trả về không có giá trị, hàm không trả về không.None.

>>> def return_none():
...     return
... 
>>> print(return_none())
None
>>> 


Các chức năng Python có thể có nhiều câu lệnh hoàn trả

def type_of_int(i):
    if i % 2 == 0:
        return 'even'
    else:
        return 'odd'


Hàm Python có thể trả về nhiều loại giá trị

Không giống như các ngôn ngữ lập trình khác, các hàm Python không bị hạn chế để trả về một loại giá trị duy nhất. Nếu bạn nhìn vào định nghĩa chức năng, nó không có bất kỳ thông tin nào về những gì nó có thể trả lại.

Hãy cùng xem xét một ví dụ trong đó hàm sẽ trả về nhiều loại giá trị.

def get_demo_data(object_type):
    if 'str' == object_type:
        return 'test'
    elif 'tuple' == object_type:
        return (1, 2, 3)
    elif 'list' == object_type:
        return [1, 2, 3]
    elif 'dict' == object_type:
        return {"1": 1, "2": 2, "3": 3}
    else:
        return None


Trả về nhiều giá trị trong một câu lệnh trả về

Chúng ta có thể trả về nhiều giá trị từ một câu lệnh trả về duy nhất. Các giá trị này được phân tách bằng dấu phẩy và được trả lại dưới dạng một tuple cho chương trình người gọi.

def return_multiple_values():
    return 1, 2, 3


print(return_multiple_values())
print(type(return_multiple_values()))

Output:

little The print The
had 
>>> 
0

Hướng dẫn can python function return single value? - hàm python có thể trả về một giá trị không?
Python trả về nhiều giá trị


Câu lệnh trả về Python với khối cuối cùng

Khi câu lệnh trả về được thực thi bên trong khối Except Try-Except, mã khối cuối cùng được thực thi trước khi trả lại giá trị cho người gọi.

little The print The
had 
>>> 
1

Output:

little The print The
had 
>>> 
2

Nếu khối cuối cùng có câu lệnh trả về, thì câu lệnh trả về trước đó sẽ bị bỏ qua và giá trị từ khối cuối cùng được trả về.

little The print The
had 
>>> 
3

Output::

little The print The
had 
>>> 
4


References:

  • Tài liệu chính thức của Python

Hàm Python có thể trả về chỉ một giá trị duy nhất không?

Hàm Python có thể trả về nhiều loại giá trị không giống như các ngôn ngữ lập trình khác, các hàm Python không bị hạn chế để trả về một loại giá trị duy nhất.Nếu bạn nhìn vào định nghĩa chức năng, nó không có bất kỳ thông tin nào về những gì nó có thể trả về.python functions are not restricted to return a single type of value. If you look at the function definition, it doesn't have any information about what it can return.

Một hàm có thể trả về một giá trị duy nhất?

Hàm trả lại giá trị chỉ có thể trả lại một giá trị duy nhất cho người gọi mỗi khi nó được gọi..

Hàm Python có thể trả về nhiều hơn một giá trị 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.

Có chức năng Python luôn trả về một giá trị?

Tất cả các hàm Python trả về giá trị Không có gì trừ khi có câu lệnh trả về rõ ràng với một giá trị không phải là không có.Hãy xem xét các sai lầm phổ biến sau đây được thực hiện bởi các lập trình viên Python bắt đầu.