Đầu ra hàm python dưới dạng biến

Hầu hết các hàm đều yêu cầu đối số, giá trị kiểm soát cách thức thực hiện công việc của hàm. Ví dụ muốn tìm giá trị tuyệt đối của một số thì phải chỉ ra số đó là gì. Python có chức năng tích hợp để tính giá trị tuyệt đối

Trong ví dụ này, các đối số của hàm

def addEm[x, y, z]:
    print[x + y + z]
4 là 5 và -5

Một số hàm nhận nhiều hơn một đối số. Ví dụ: mô-đun toán học chứa một hàm có tên là

def addEm[x, y, z]:
    print[x + y + z]
5, hàm này nhận hai đối số, cơ số và số mũ

Ghi chú

Tất nhiên, chúng ta đã thấy rằng việc nâng cơ số lên số mũ có thể được thực hiện bằng toán tử **

Một hàm tích hợp khác nhận nhiều hơn một đối số là

def addEm[x, y, z]:
    print[x + y + z]
6

def addEm[x, y, z]:
    print[x + y + z]
6 có thể được gửi bất kỳ số lượng đối số nào, được phân tách bằng dấu phẩy và sẽ trả về giá trị tối đa được gửi. Các đối số có thể là các giá trị hoặc biểu thức đơn giản. Trong ví dụ trước, 503 được trả về vì nó lớn hơn 33, 125 và 1. Lưu ý rằng
def addEm[x, y, z]:
    print[x + y + z]
6 cũng hoạt động trên danh sách các giá trị

Hơn nữa, các hàm như

def addEm[x, y, z]:
    print[x + y + z]
9,
def addEm[x, y, z]:
    print[x + y + z]
0,
def addEm[x, y, z]:
    print[x + y + z]
4 đều trả về các giá trị có thể được sử dụng để xây dựng các biểu thức phức tạp hơn

Vì vậy, một điểm khác biệt quan trọng giữa các hàm này và một hàm như

def addEm[x, y, z]:
    print[x + y + z]
0 là
def addEm[x, y, z]:
    print[x + y + z]
0 không được thực thi vì chúng tôi muốn nó tính toán một giá trị — ngược lại, chúng tôi đã viết
def addEm[x, y, z]:
    print[x + y + z]
0 vì chúng tôi muốn nó thực hiện một chuỗi các bước khiến con rùa vẽ một

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 đoạn không trả về giá trị được gọi là thủ tục, nhưng chúng tôi sẽ gắn bó ở đây với cách Python gọi nó là một hàm hoặc nếu chúng tôi muốn nhấn mạnh nó, một hàm không hiệu quả

Các chức năng hiệu quả vẫn cho phép người dùng cung cấp thông tin [đối số]. Tuy nhiên, hiện tại có thêm một phần dữ liệu được trả về từ hàm

Làm thế nào để chúng ta viết chức năng hiệu quả của riêng mình? . Hàm bình phương sẽ lấy một số làm tham số và trả về kết quả bình phương số đó. Đây là sơ đồ hộp đen với mã Python sau

Câu lệnh return được theo sau bởi một biểu thức được đánh giá. Kết quả của nó được trả về cho người gọi là “kết quả” của việc gọi hàm này. Vì câu lệnh return có thể chứa bất kỳ biểu thức Python nào nên chúng ta có thể tránh tạo biến tạm thời

def addEm[x, y, z]:
    print[x + y + z]
4 và chỉ cần sử dụng
def addEm[x, y, z]:
    print[x + y + z]
5. Hãy thử sửa đổi hàm vuông ở trên để thấy rằng hàm này hoạt động giống nhau. Mặt khác, việc sử dụng các biến tạm thời như
def addEm[x, y, z]:
    print[x + y + z]
4 trong chương trình trên giúp việc gỡ lỗi dễ dàng hơn. Các biến tạm thời này là ví dụ về các biến cục bộ, được theo dõi thêm trong phần tiếp theo

Chú ý một cái gì đó quan trọng ở đây. Tên của biến chúng ta truyền dưới dạng đối số —

def addEm[x, y, z]:
    print[x + y + z]
7 — không liên quan gì đến tên của tham số hình thức —
def addEm[x, y, z]:
    print[x + y + z]
8. Như thể
def addEm[x, y, z]:
    print[x + y + z]
9 được thực thi khi
def addEm[x, y, z]:
    print[x + y + z]
3 được gọi. Không quan trọng giá trị được đặt tên trong trình gọi là gì. Trong
def addEm[x, y, z]:
    print[x + y + z]
3, nó tên là
def addEm[x, y, z]:
    print[x + y + z]
8. Bạn có thể thấy điều này rất rõ ràng trong codelens, trong đó các biến toàn cục [các biến được xác định bên ngoài bất kỳ hàm nào] và các biến cục bộ cho hàm bình phương nằm trong các hộp riêng biệt

Khi bạn xem qua ví dụ trong codelens, hãy lưu ý rằng câu lệnh return không chỉ khiến hàm trả về một giá trị mà còn trả về luồng điều khiển trở lại vị trí trong chương trình nơi thực hiện lệnh gọi hàm. điều này đúng nói chung

Ghi chú

Lời gọi hàm kết thúc sau khi thực hiện câu lệnh return. Điều này khá rõ ràng nếu câu lệnh return là câu lệnh cuối cùng trong hàm, nhưng sau này chúng ta sẽ thấy việc có một câu lệnh return ngay cả khi các câu lệnh khác theo sau và các câu lệnh tiếp theo không được thực hiện ở đâu là hợp lý

Hoạt động. MãLens 6. 2. 5 [ch04_clsquare]

Một điều quan trọng khác cần lưu ý khi bạn bước qua phần trình diễn codelens này là chuyển động của các mũi tên màu đỏ và xanh lục. Codelens sử dụng các mũi tên này để chỉ cho bạn nơi nó hiện đang được thực thi. Nhớ lại rằng mũi tên màu đỏ luôn trỏ đến dòng mã tiếp theo sẽ được thực thi. Mũi tên màu xanh nhạt chỉ đến dòng vừa được thực hiện ở bước cuối cùng

Khi bạn bắt đầu chạy trình diễn codelens này lần đầu tiên, bạn sẽ nhận thấy rằng chỉ có một mũi tên màu đỏ và nó trỏ đến dòng 1. Điều này là do dòng 1 là dòng tiếp theo được thực thi và vì nó là dòng đầu tiên nên không có dòng mã nào được thực thi trước đó

Khi bấm vào nút chuyển tiếp, bạn để ý mũi tên đỏ di chuyển đến dòng 5, bỏ qua dòng 2 và 3 của hàm [và mũi tên xanh nhạt hiện đã xuất hiện ở dòng 1]. Tại sao lại thế này? . Dòng 2 và 3 sẽ không được thực thi cho đến khi hàm được gọi ở dòng 6. Dòng 1 định nghĩa hàm và tên

def addEm[x, y, z]:
    print[x + y + z]
3 được thêm vào các biến toàn cục, nhưng đó là tất cả những gì mà
def addEm[x, y, z]:
    print[x + y + z]
44 làm tại thời điểm đó. Phần thân của hàm sẽ được thực hiện sau. Tiếp tục nhấp vào nút chuyển tiếp để xem luồng điều khiển di chuyển như thế nào từ lệnh gọi, sao lưu đến phần thân của hàm, rồi cuối cùng quay lại dòng 7, sau khi hàm đã trả về giá trị của nó và giá trị đã được gán cho
def addEm[x, y, z]:
    print[x + y + z]
45

Cuối cùng, có một khía cạnh nữa của các giá trị trả về của hàm cần được lưu ý. Tất cả các hàm Python trả về giá trị

def addEm[x, y, z]:
    print[x + y + z]
46 trừ khi có một câu lệnh trả về rõ ràng có giá trị khác với giá trị
def addEm[x, y, z]:
    print[x + y + z]
47 Hãy xem xét lỗi phổ biến sau đây của những người mới bắt đầu lập trình Python. Khi bạn xem qua ví dụ này, hãy chú ý đến giá trị trả về trong danh sách các biến cục bộ. Sau đó xem nội dung được in khi hàm trả về

Hoạt động. MãLens 6. 2. 6 [ch04_clsquare_bad]

Vấn đề với chức năng này là mặc dù nó in giá trị của hình vuông, nhưng giá trị đó sẽ không được trả về nơi thực hiện lệnh gọi. Vì dòng 6 sử dụng giá trị trả về làm vế phải của câu lệnh gán, nên việc đánh giá hàm sẽ là

def addEm[x, y, z]:
    print[x + y + z]
46. Trong trường hợp này,
def addEm[x, y, z]:
    print[x + y + z]
45 sẽ tham chiếu đến giá trị đó sau câu lệnh gán và do đó kết quả được in ở dòng 7 là không chính xác. Thông thường, các hàm sẽ trả về các giá trị mà người gọi có thể in hoặc xử lý theo cách khác

Làm cách nào để đặt đầu ra của hàm thành một biến trong Python?

Chỉ cần gán một hàm cho biến mong muốn nhưng không có [] i. e. chỉ với tên của chức năng . Nếu biến được gán với hàm cùng với dấu ngoặc [], Không có gì sẽ được trả về. Thí dụ. Python3.

Bạn có thể trả về một biến từ hàm Python không?

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.

Hàm có thể in đầu ra và trả về giá trị không?

Tất cả các hàm sẽ trả về một giá trị và nếu không có câu lệnh trả về nào [hoặc có lãi nhưng đừng lo lắng về điều đó], thì hàm sẽ trả về Không có. Sau đó, giá trị được trả về bởi hàm có thể được sử dụng thêm làm đối số được truyền cho hàm khác, được lưu dưới dạng biến hoặc chỉ được in ra vì lợi ích của người dùng.

Chủ Đề