Ví dụ về hàm Python: Gọi, Thụt lề, Đối số & Giá trị trả lại

Mục lục:

Anonim

Hàm trong Python là gì?

Một chức năng bằng Python là một đoạn mã mà chạy khi nó được tham chiếu. Nó được sử dụng để sử dụng mã ở nhiều nơi trong một chương trình. Nó còn được gọi là phương pháp hoặc thủ tục. Python cung cấp nhiều hàm có sẵn như print (), input (), compile (), execute (), v.v. nhưng nó cũng cho phép bạn tự do tạo các hàm của riêng mình.

Trong hướng dẫn này, chúng ta sẽ học

  • Cách định nghĩa và gọi một hàm trong Python
  • Tầm quan trọng của thụt lề (Dấu cách) trong Python
  • Hàm trả về giá trị như thế nào?
  • Đối số trong hàm

Cách định nghĩa và gọi một hàm trong Python

Hàm trong Python được định nghĩa bởi câu lệnh "def" theo sau là tên hàm và dấu ngoặc đơn (())

Thí dụ:

Chúng ta hãy xác định một hàm bằng cách sử dụng lệnh "def func1 (): và gọi hàm. Đầu ra của hàm sẽ là "Tôi đang học hàm Python".

Hàm print func1 () gọi hàm def func1 (): và in lệnh " Tôi đang học hàm Python None. "

Có một bộ quy tắc trong Python để xác định một hàm.

  • Bất kỳ args hoặc tham số đầu vào nào phải được đặt trong dấu ngoặc
  • Câu lệnh đầu tiên của hàm có thể là một câu lệnh tùy chọn- docstring hoặc chuỗi tài liệu của hàm
  • Mã trong mọi hàm đều bắt đầu bằng dấu hai chấm (:) và phải được thụt lề (dấu cách)
  • Câu lệnh return (biểu thức) thoát khỏi một hàm, tùy chọn chuyển lại một giá trị cho người gọi. Câu lệnh trả về không có args cũng giống như câu lệnh trả về Không có.

Tầm quan trọng của thụt lề (Dấu cách) trong Python

Trước khi làm quen với các hàm Python, điều quan trọng là chúng ta phải hiểu quy tắc thụt đầu dòng để khai báo các hàm Python và các quy tắc này có thể áp dụng cho các phần tử khác của Python cũng như khai báo điều kiện, vòng lặp hoặc biến.

Python tuân theo một kiểu thụt lề cụ thể để xác định mã, vì các hàm Python không có bất kỳ bắt đầu hoặc kết thúc rõ ràng nào giống như dấu ngoặc nhọn để chỉ ra điểm bắt đầu và điểm dừng cho hàm, chúng phải dựa vào thụt lề này . Ở đây chúng tôi lấy một ví dụ đơn giản với lệnh "print". Khi chúng ta viết hàm "print" ngay bên dưới hàm def func 1 (): Nó sẽ hiển thị " lỗi thụt đầu dòng: mong đợi một khối được thụt lề ".

Bây giờ, khi bạn thêm thụt lề (khoảng trắng) trước hàm "print", nó sẽ in như mong đợi.

Ít nhất, một thụt lề là đủ để làm cho mã của bạn hoạt động thành công. Nhưng cách tốt nhất là bạn nên để khoảng 3-4 thụt lề để gọi hàm của bạn .

Điều cần thiết là trong khi khai báo thụt lề, bạn phải duy trì cùng một thụt lề cho phần còn lại của mã . Ví dụ: trong ảnh chụp màn hình bên dưới khi chúng ta gọi một câu lệnh khác "vẫn trong func1" và khi nó không được khai báo ngay bên dưới câu lệnh in đầu tiên, nó sẽ hiển thị lỗi thụt lề "unindent không khớp với bất kỳ mức thụt lề nào khác."

Bây giờ, khi chúng ta áp dụng cùng một thụt lề cho cả hai câu lệnh và căn chỉnh chúng trên cùng một dòng, nó sẽ cho kết quả như mong đợi.

Hàm trả về giá trị như thế nào?

Lệnh return trong Python chỉ định giá trị nào sẽ trả lại cho người gọi hàm.

Hãy hiểu điều này với ví dụ sau

Bước 1) Ở đây - chúng ta thấy khi nào hàm không phải là "return". Ví dụ, chúng tôi muốn bình phương của 4 và nó sẽ trả lời là "16" khi mã được thực thi. Nó cung cấp khi chúng ta chỉ đơn giản sử dụng mã "print x * x", nhưng khi bạn gọi hàm "print square", nó sẽ đưa ra "None" dưới dạng đầu ra. Điều này là do khi bạn gọi hàm, đệ quy không xảy ra và nằm ở cuối hàm. Python trả về "Không có" nếu không kết thúc hàm.

Bước 2) Để làm rõ hơn điều này, chúng tôi thay thế lệnh in bằng lệnh gán. Hãy kiểm tra đầu ra.

Khi bạn chạy lệnh "print square (4)", nó thực sự trả về giá trị của đối tượng vì chúng ta không có bất kỳ hàm cụ thể nào để chạy ở đây, nó sẽ trả về "None".

Bước 3) Bây giờ, ở đây chúng ta sẽ xem cách lấy đầu ra bằng lệnh "return". Khi bạn sử dụng hàm "return" và thực thi mã, nó sẽ cho kết quả là "16."

Bước 4) Bản thân các hàm trong Python là một đối tượng và một đối tượng có một số giá trị. Ở đây chúng ta sẽ xem cách Python xử lý một đối tượng. Khi bạn chạy lệnh "print square", nó sẽ trả về giá trị của đối tượng. Vì chúng tôi chưa chuyển bất kỳ đối số nào, chúng tôi không có bất kỳ hàm cụ thể nào để chạy ở đây, nó trả về giá trị mặc định (0x021B2D30) là vị trí của đối tượng. Trong chương trình Python thực tế, có thể bạn sẽ không bao giờ cần phải làm điều này.

Đối số trong hàm

Đối số là một giá trị được truyền cho hàm khi nó được gọi.

Nói cách khác ở phía gọi, nó là một đối số và ở phía hàm, nó là một tham số.

Hãy xem cách hoạt động của Python Args -

Bước 1) Các đối số được khai báo trong định nghĩa hàm. Trong khi gọi hàm, bạn có thể chuyển các giá trị cho args đó như được hiển thị bên dưới

Bước 2) Để khai báo giá trị mặc định của một đối số, hãy gán cho nó một giá trị tại định nghĩa hàm.

Ví dụ: x không có giá trị mặc định. Giá trị mặc định của y = 0. Khi chúng ta chỉ cung cấp một đối số trong khi gọi hàm nhân, Python sẽ gán giá trị đã cung cấp cho x trong khi vẫn giữ giá trị y = 0. Do đó nhân của x * y = 0

Bước 3) Lần này chúng ta sẽ thay đổi giá trị thành y = 2 thay vì giá trị mặc định y = 0 và nó sẽ trả về đầu ra là (4x2) = 8.

Bước 4) Bạn cũng có thể thay đổi thứ tự mà các đối số có thể được truyền trong Python. Ở đây chúng ta đã đảo ngược thứ tự của giá trị x và y thành x = 4 và y = 2.

Bước 5) Nhiều đối số cũng có thể được chuyển dưới dạng một mảng. Ở đây trong ví dụ, chúng ta gọi nhiều args (1,2,3,4,5) bằng cách gọi hàm (* args).

Ví dụ: Chúng ta đã khai báo nhiều args là số (1,2,3,4,5) khi chúng ta gọi hàm (* args); nó in ra đầu ra là (1,2,3,4,5)

Lời khuyên :

  • Trong Python 2.7. tính năng nạp chồng hàm không được hỗ trợ trong Python. Nạp chồng hàm là khả năng tạo nhiều phương thức có cùng tên với một cách triển khai khác nhau. Nạp chồng hàm được hỗ trợ đầy đủ trong Python 3
  • Có khá nhiều nhầm lẫn giữa các phương thức và chức năng. Các phương thức trong Python được liên kết với các thể hiện đối tượng trong khi hàm thì không. Khi Python gọi một phương thức, nó sẽ liên kết tham số đầu tiên của cuộc gọi đó với tham chiếu đối tượng thích hợp. Nói một cách đơn giản, một hàm độc lập trong Python là một "hàm", trong khi một hàm là thuộc tính của một lớp hoặc một thể hiện là một "phương thức".

Đây là mã Python 3 hoàn chỉnh

#define a functiondef func1():print ("I am learning Python function")print ("still in func1")func1()def square(x):return x*xprint(square(4))def multiply(x,y=0):print("value of x=",x)print("value of y=",y)return x*yprint(multiply(y=2,x=4))

Đây là mã Python 2 hoàn chỉnh

#define a functiondef func1():print " I am learning Python function"print " still in func1"func1()def square(x):return x*xprint square(4)def multiply(x,y=0):print"value of x=",xprint"value of y=",yreturn x*yprint multiply(y=2,x=4)

Tóm lược:

Hàm trong Python là một đoạn mã có thể sử dụng lại được dùng để thực hiện một hành động liên quan. Trong bài viết này, chúng ta sẽ thấy

  • Hàm được xác định bởi câu lệnh def
  • Khối mã trong mọi hàm đều bắt đầu bằng dấu hai chấm (:) và phải được thụt lề (dấu cách)
  • Mọi đối số hoặc tham số đầu vào phải được đặt trong các dấu ngoặc đơn này, v.v.
  • Ít nhất một thụt lề phải được để lại trước mã sau khi khai báo hàm
  • Phải duy trì cùng một kiểu thụt lề trong suốt mã trong hàm def
  • Đối với các phương pháp hay nhất, ba hoặc bốn thụt lề được coi là tốt nhất trước tuyên bố
  • Bạn có thể sử dụng lệnh "return" để trả về các giá trị cho lời gọi hàm.
  • Python sẽ in một giá trị ngẫu nhiên như (0x021B2D30) khi đối số không được cung cấp cho hàm gọi. Ví dụ "chức năng in."
  • Ở phía gọi, nó là một đối số và ở phía hàm, nó là một tham số
  • Giá trị mặc định trong đối số - Khi chúng tôi chỉ cung cấp một đối số trong khi gọi hàm nhân hoặc bất kỳ hàm nào khác, Python sẽ gán đối số kia theo mặc định
  • Python cũng cho phép bạn đảo ngược thứ tự của đối số