Các hàm Python có thể trả về và in không?

Hàm print() viết, i. e. , "prints", một chuỗi hoặc một số trên bảng điều khiển. Câu lệnh return không in ra giá trị mà nó trả về khi hàm được gọi. Tuy nhiên, nó khiến hàm thoát hoặc kết thúc ngay lập tức, ngay cả khi đó không phải là câu lệnh cuối cùng của hàm

Hàm trả về giá trị đôi khi được gọi là hàm hiệu quả. Trong nhiều ngôn ngữ khác, một hàm không trả về giá trị được gọi là thủ tục

Trong mã đã cho, giá trị được trả về (tức là 2) khi hàm foo() được gọi được sử dụng trong hàm bar(). Các giá trị trả về này chỉ được in trên bảng điều khiển khi các câu lệnh in được sử dụng như hình bên dưới

Ví dụ

def foo():
    print("Hello from within foo")
    return 2
def bar():
    return 10*foo()
print foo()
print bar()

đầu ra

Hello from within foo
2
Hello from within foo
20

Chúng tôi thấy rằng khi foo() được gọi từ bar(), 2 không được ghi vào bàn điều khiển. Thay vào đó, nó được sử dụng để tính toán giá trị trả về từ bar()

Nhiều lập trình viên mới bắt đầu thấy sự khác biệt giữa in và trả về rất khó hiểu, đặc biệt là vì hầu hết các hình minh họa về giá trị trả về trong các văn bản giới thiệu như thế này đều hiển thị giá trị trả về từ lệnh gọi hàm bằng cách in ra, như trong print(square(g(2)))

Câu lệnh in khá dễ hiểu. Nó lấy một đối tượng python và xuất ra một bản in của nó trong cửa sổ đầu ra. Bạn có thể coi câu lệnh in như một thứ lấy một đối tượng từ vùng đất của chương trình và làm cho nó hiển thị với vùng đất của người quan sát.

Ghi chú

In là dành cho người. Hãy nhớ khẩu hiệu đó. Việc in không ảnh hưởng đến việc thực hiện chương trình đang diễn ra. Nó không gán giá trị cho một biến. Nó không trả về giá trị từ lệnh gọi hàm

Nếu bạn bối rối, rất có thể nguồn gốc của sự nhầm lẫn của bạn thực sự là về các giá trị được trả về và việc đánh giá các biểu thức phức tạp. Một hàm trả về một giá trị đang tạo ra một giá trị để chương trình sử dụng, đặc biệt là để sử dụng trong phần mã nơi hàm được gọi. Hãy nhớ rằng khi một hàm được gọi, khối mã của hàm đó sẽ được thực thi – tất cả mã được thụt lề bên dưới câu lệnh def sẽ được thực thi, tuân theo các quy tắc của ngôn ngữ hình thức Python về những gì nên và không nên thực thi khi nó diễn ra. Nhưng khi hàm trả về, điều khiển sẽ quay lại vị trí đang gọi và giá trị trả về có thể quay lại cùng với nó

Bạn đã thấy một số lời gọi hàm trong Chương 1. Khi chúng tôi nói với bạn về hàm

Hello from within foo
2
Hello from within foo
20
0 mà chúng tôi đã định nghĩa, bạn đã thấy rằng biểu thức
Hello from within foo
2
Hello from within foo
20
1 được đánh giá bằng giá trị số nguyên
Hello from within foo
2
Hello from within foo
20
2

Đó là bởi vì hàm

Hello from within foo
2
Hello from within foo
20
0 trả về một giá trị. bình phương của bất kỳ đầu vào nào được truyền vào nó

Nếu một giá trị được trả về là để chương trình sử dụng, tại sao bạn lại gọi hàm đó để trả về một giá trị?

  1. Lưu nó cho sau này

    Giá trị trả về có thể là

    • Được gán cho một biến. Ví dụ,

      Hello from within foo
      2
      Hello from within foo
      20
      4

    • Đặt trong một danh sách. Ví dụ,

      Hello from within foo
      2
      Hello from within foo
      20
      5

    • Cho vào từ điển. Ví dụ,

      def square(x):
          return x*x
      
      def g(y):
          return y + 3
      
      def h(y):
          return square(y) + 3
      
      print(g(h(2))
      
      0

  2. Sử dụng nó trong một biểu thức phức tạp hơn

    Trong trường hợp đó, hãy coi giá trị trả về là thay thế toàn bộ văn bản của lệnh gọi hàm. Ví dụ: nếu có một dòng mã

    def square(x):
        return x*x
    
    def g(y):
        return y + 3
    
    def h(y):
        return square(y) + 3
    
    print(g(h(2))
    
    1, hãy nghĩ đến giá trị trả về 9 thay thế văn bản square(3) trong lời gọi đó, để nó trở thành
    def square(x):
        return x*x
    
    def g(y):
        return y + 3
    
    def h(y):
        return square(y) + 3
    
    print(g(h(2))
    
    2

  3. In nó cho con người

    Ví dụ:

    def square(x):
        return x*x
    
    def g(y):
        return y + 3
    
    def h(y):
        return square(y) + 3
    
    print(g(h(2))
    
    3 xuất 9 vào vùng đầu ra. Lưu ý rằng, trừ khi giá trị trả về được lưu lần đầu tiên như trong khả năng 1, nó sẽ chỉ khả dụng đối với những người đang xem khu vực đầu ra, không dành cho chương trình khi nó tiếp tục thực thi

Nếu mục đích duy nhất của bạn khi chạy một chức năng là làm cho đầu ra hiển thị cho người tiêu dùng, thì có hai cách để thực hiện. Bạn có thể đặt một hoặc nhiều câu lệnh in bên trong định nghĩa hàm và không cần trả lại bất kỳ thứ gì từ hàm (giá trị Không có sẽ được trả về). Trong trường hợp đó, hãy gọi hàm mà không có câu lệnh in. Ví dụ: bạn có thể có toàn bộ dòng mã có nội dung

def square(x):
    return x*x

def g(y):
    return y + 3

def h(y):
    return square(y) + 3

print(g(h(2))
4. Điều đó sẽ chạy hàm f và loại bỏ giá trị trả về. Tất nhiên, nếu hình vuông không in ra bất cứ thứ gì hoặc có bất kỳ tác dụng phụ nào, thì việc gọi nó là vô ích và không làm gì với giá trị trả về. Nhưng với một hàm có các câu lệnh in bên trong nó, nó có thể khá hữu ích

Khả năng khác là trả về một giá trị từ hàm và in ra, như trong

def square(x):
    return x*x

def g(y):
    return y + 3

def h(y):
    return square(y) + 3

print(g(h(2))
5. Khi bạn bắt đầu viết các chương trình lớn hơn, phức tạp hơn, điều này sẽ trở nên điển hình hơn. Thật vậy, câu lệnh in thường sẽ chỉ là biện pháp tạm thời trong khi bạn đang phát triển chương trình. Cuối cùng, bạn sẽ gọi f và lưu giá trị trả về hoặc sử dụng nó như một phần của biểu thức phức tạp hơn

Bạn sẽ biết mình đã thực sự tiếp thu ý tưởng về các hàm khi bạn không còn bối rối về sự khác biệt giữa in và trả lại. Tiếp tục làm việc với nó cho đến khi nó có ý nghĩa với bạn

Hàm có thể trả về và in không?

Điều đầu tiên cần lưu ý là return và print là câu lệnh, không phải hàm , nhưng đó chỉ là ngữ nghĩa. Tôi sẽ bắt đầu với một lời giải thích cơ bản. print chỉ hiển thị cho người dùng một chuỗi đại diện cho những gì đang diễn ra bên trong máy tính. Máy tính không thể sử dụng bản in đó.

Các chức năng trong Python có thể in được không?

Định nghĩa và cách sử dụng. Hàm print() in thông báo đã chỉ định ra màn hình hoặc thiết bị xuất tiêu chuẩn khác . Thông báo có thể là một chuỗi, hoặc bất kỳ đối tượng nào khác, đối tượng sẽ được chuyển thành chuỗi trước khi ghi ra màn hình.

Hàm có thể trả về bằng Python không?

Hàm trả về một hàm khác trong Python . Đối tượng hạng nhất là một đối tượng có thể được gán cho một biến, được truyền dưới dạng đối số cho hàm hoặc được sử dụng làm giá trị trả về trong hàm. we can return a function from another function. A first-class object is an object that can be assigned to a variable, passed as an argument to a function, or used as a return value in a function.