Tại sao hàm trả về Không Python

Trả lại Không rõ ràng

Sử dụng câu lệnh return trong Python một cách hiệu quả
02. 53

Đánh dấu là đã hoàn thành

Vật liệu hỗ trợ

Các slide khóa học hướng dẫn được đề xuất [. pdf] Mã mẫu [. nén]

Trở thành Thành viên để tham gia cuộc trò chuyện

Phù hợp với những gì @Jonatan nói, bạn cần kiểm tra định dạng của mã mà bạn đã gửi tới trình thông dịch Python cho bài tập này. Trong mã mà bạn đã đăng ở đây, phần thân của hàm chưa được thụt vào, nhưng nó cần được

Tuy nhiên, ngay cả khi mã mà bạn đã gửi cho trình thông dịch Python được thụt lề chính xác, thì bạn sẽ không thấy giá trị được trả về bởi hàm

Shutting down
1 của mình, vì nó hiện được viết, bởi vì bạn không có bất kỳ câu lệnh
Shutting down
2 nào trong mã của mình. Vì vậy, nếu bạn thấy
Shutting down
3 được in, đó không phải là dấu hiệu cho thấy hàm của bạn đã trả về
Shutting down
3

Vì bạn đã gán giá trị

Shutting down
5 cho một biến toàn cục,
Shutting down
6, nên bạn có thể thấy giá trị được trả về bởi hàm của mình bằng cách sửa đổi câu lệnh cuối cùng của bạn, để nó trở thành…

print shut_down[s]

Sau đó, bạn nên xem…

Shutting down

Tuy nhiên, hãy đảm bảo rằng câu lệnh

Shutting down
2 không được thụt lề để nó không bị hiểu là một phần của hàm

Bạn cũng cần kiểm tra lại các hướng dẫn để lưu ý rằng khi hàm được truyền giá trị

Shutting down
8, nó phải trả về giá trị
Shutting down
0 chứ không phải
Shutting down
1 và rằng
Shutting down
2 cần bắt đầu bằng chữ hoa
Shutting down
3

không phải là một biểu thức [trả về mong đợi] mà là một câu lệnh [trả về không thể gửi] nên lợi nhuận từ append được gửi lại. Do đó,

Shutting down
3

Tên hàm của bạn cho biết chức năng đó làm gì và không ngụ ý trả về. Điều đó có nghĩa là nó là một chức năng thực hiện một hành động và kết thúc tại đó. Không có nhu cầu thực sự trả lại trừ khi chúng tôi muốn in kết quả. Cấu trúc dữ liệu bị thay đổi và lợi nhuận không quan trọng

Không giống như các ngôn ngữ lập trình khá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 hàm, nó không có bất kỳ thông tin nào về những gì nó có thể trả về

Hãy xem 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 return

Chúng ta có thể trả về nhiều giá trị từ một câu lệnh return. Các giá trị này được phân tách bằng dấu phẩy và được trả về dưới dạng một bộ 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[]]]

đầu ra

________số 8

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 return được thực thi bên trong khối try-ngoại trừ, mã khối cuối cùng được thực thi trước khi trả lại giá trị cho người gọi

def hello[]:
    try:
        return 'hello try'
    finally:
        print['finally block']


def hello_new[]:
    try:
        raise TypeError
    except TypeError as te:
        return 'hello except'
    finally:
        print['finally block']


print[hello[]]
print[hello_new[]]

đầu ra

Shutting down
0

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ề

Thông thường, khi đọc mã Python, bạn sẽ bắt gặp các hàm tiện ích sẽ trả về

Shutting down
3. Mặc dù trong một số trường hợp, việc trả về
Shutting down
3 có vẻ tự nhiên, nhưng nên tránh việc này vì có thể dễ xảy ra lỗi

Hãy xem tại sao việc trả về Không dễ xảy ra lỗi

Giả sử bạn muốn viết một hàm thư viện đơn giản để chia hai số

Hàm trả về

Shutting down
3 khi mẫu số bằng 0. Điều này hợp lý vì kết quả không xác định nên việc gửi
Shutting down
3 nghe có vẻ tự nhiên. Tuy nhiên người dùng hàm có thể sử dụng sai như hình bên dưới

Khi tử số là 0, hàm sẽ trả về 0, điều này được mong đợi nhưng hãy xem điều gì xảy ra trong câu lệnh

Shutting down
4

Nó đang tìm kiếm một giá trị tương đương với

Shutting down
5 và sẽ thực thi không chính xác, thông báo cho người dùng biết rằng đầu vào của bạn không hợp lệ, điều này không đúng. Việc đánh giá phản hồi trong điều kiện
Shutting down
4 như thế này rất dễ xảy ra lỗi

Thay vào đó nên trả lại những gì?

Cách chính xác là ném một ngoại lệ vào chức năng thư viện như hình bên dưới

Bằng cách này, người gọi hàm chịu trách nhiệm xử lý các trường hợp sử dụng không hợp lệ bằng cách bắt ngoại lệ thay thế và thực hiện hành động thích hợp. Không có phỏng đoán hoặc bất kỳ giả định nào được đưa ra bởi người gọi và kết quả rõ ràng hơn

Tại sao chức năng của tôi không trả về Python?

Hàm Python không có câu lệnh return . Nếu hàm không có bất kỳ câu lệnh trả về nào, thì hàm sẽ trả về Không có .

Tại sao đầu ra hiển thị Không có trong Python?

Python Rất đơn giản, nếu hàm của bạn không có bất kỳ giá trị trả về nào thì hàm sẽ trả về Không có.

Không trả lại Python là gì?

Null trong Python . when there are no return statements.

Chủ Đề