Hướng dẫn functions in python 3 examples - các hàm trong python 3 ví dụ


Một chức năng là một khối của mã có tổ chức, có thể tái sử dụng được sử dụng để thực hiện một hành động duy nhất, liên quan. Các chức năng cung cấp mô -đun tốt hơn cho ứng dụng của bạn và mức độ tái sử dụng mã cao.

Như bạn đã biết, Python cung cấp cho bạn nhiều hàm tích hợp như in (), v.v. nhưng bạn cũng có thể tạo các chức năng của riêng mình. Các chức năng này được gọi là các chức năng do người dùng xác định.

Xác định một chức năng

Bạn có thể xác định các chức năng để cung cấp các chức năng cần thiết. Dưới đây là các quy tắc đơn giản để xác định một chức năng trong Python.

  • Các khối chức năng bắt đầu với từ khóa def theo sau là tên hàm và dấu ngoặc đơn (()).def followed by the function name and parentheses ( ( ) ).

  • Bất kỳ tham số đầu vào hoặc đối số nên được đặt trong các dấu ngoặc đơn này. Bạn cũng có thể xác định các tham số bên trong các dấu ngoặc đơn này.

  • Câu lệnh đầu tiên của một hàm có thể là một câu lệnh tùy chọn - chuỗi tài liệu của hàm hoặc tài liệu.

  • Khối mã trong mọi chức năng bắt đầu bằng một dấu hai chấm (:) và được thụt vào.

  • Câu lệnh trả về [Biểu thức] thoát ra một hàm, tùy chọn chuyển lại một biểu thức cho người gọi. Một câu lệnh trả về không có đối số giống như trả về không.

Cú pháp

def functionname( parameters ):
   "function_docstring"
   function_suite
   return [expression]

Theo mặc định, các tham số có hành vi vị trí và bạn cần thông báo cho chúng theo cùng thứ tự mà chúng được xác định.

Thí dụ

Hàm sau đây lấy một chuỗi làm tham số đầu vào và in nó trên màn hình tiêu chuẩn.

def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return

Gọi một chức năng

Xác định một hàm cho nó một tên, chỉ định các tham số được bao gồm trong hàm và cấu trúc các khối mã.

Khi cấu trúc cơ bản của hàm được hoàn thiện, bạn có thể thực hiện nó bằng cách gọi nó từ một hàm khác hoặc trực tiếp từ dấu nhắc Python. Sau đây là một ví dụ để gọi hàm printme () -printme() function −

#!/usr/bin/python3

# Function definition is here
def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return

# Now you can call printme function
printme("This is first call to the user defined function!")
printme("Again second call to the same function")

Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau -

This is first call to the user defined function!
Again second call to the same function

Vượt qua bởi tham chiếu vs giá trị

Tất cả các tham số (đối số) trong ngôn ngữ Python được truyền qua tham chiếu. Điều đó có nghĩa là nếu bạn thay đổi những gì một tham số đề cập đến trong một hàm, thay đổi cũng phản ánh lại trong hàm gọi. Ví dụ -

#!/usr/bin/python3

# Function definition is here
def changeme( mylist ):
   "This changes a passed list into this function"
   print ("Values inside the function before change: ", mylist)
   
   mylist[2]=50
   print ("Values inside the function after change: ", mylist)
   return

# Now you can call changeme function
mylist = [10,20,30]
changeme( mylist )
print ("Values outside the function: ", mylist)

Ở đây, chúng tôi đang duy trì tham chiếu của đối tượng được truyền và nối thêm các giá trị trong cùng một đối tượng. Do đó, điều này sẽ tạo ra kết quả sau -

Values inside the function before change:  [10, 20, 30]
Values inside the function after change:  [10, 20, 50]
Values outside the function:  [10, 20, 50]

Có một ví dụ nữa trong đó đối số được truyền bằng tham chiếu và tham chiếu đang được ghi đè bên trong hàm được gọi.

#!/usr/bin/python3

# Function definition is here
def changeme( mylist ):
   "This changes a passed list into this function"
   mylist = [1,2,3,4] # This would assi new reference in mylist
   print ("Values inside the function: ", mylist)
   return

# Now you can call changeme function
mylist = [10,20,30]
changeme( mylist )
print ("Values outside the function: ", mylist)

Tham số mylist là cục bộ với chức năng thay đổi. Thay đổi Mylist trong hàm không ảnh hưởng đến Mylist. Chức năng không hoàn thành không có gì và cuối cùng điều này sẽ tạo ra kết quả sau -mylist is local to the function changeme. Changing mylist within the function does not affect mylist. The function accomplishes nothing and finally this would produce the following result −

Values inside the function:  [1, 2, 3, 4]
Values outside the function:  [10, 20, 30]

Đối số chức năng

Bạn có thể gọi một hàm bằng cách sử dụng các loại đối số chính thức sau -

  • Lập luận bắt buộc
  • Từ khóa đối số
  • Đối số mặc định
  • Đối số có độ dài thay đổi

Lập luận bắt buộc

Các đối số bắt buộc là các đối số được truyền đến một hàm theo thứ tự vị trí chính xác. Ở đây, số lượng đối số trong cuộc gọi hàm sẽ khớp chính xác với định nghĩa hàm.

Để gọi hàm printme (), bạn chắc chắn cần phải chuyển một đối số, nếu không nó sẽ gây ra lỗi cú pháp như sau -printme(), you definitely need to pass one argument, otherwise it gives a syntax error as follows −

#!/usr/bin/python3

# Function definition is here
def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return

# Now you can call printme function
printme()

Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau -

Traceback (most recent call last):
   File "test.py", line 11, in <module>
      printme();
TypeError: printme() takes exactly 1 argument (0 given)

Vượt qua bởi tham chiếu vs giá trị

Tất cả các tham số (đối số) trong ngôn ngữ Python được truyền qua tham chiếu. Điều đó có nghĩa là nếu bạn thay đổi những gì một tham số đề cập đến trong một hàm, thay đổi cũng phản ánh lại trong hàm gọi. Ví dụ -

Ở đây, chúng tôi đang duy trì tham chiếu của đối tượng được truyền và nối thêm các giá trị trong cùng một đối tượng. Do đó, điều này sẽ tạo ra kết quả sau -printme() function in the following ways −

def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return
0

Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau -

def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return
1

Vượt qua bởi tham chiếu vs giá trị

def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return
2

Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau -

def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return
3

Vượt qua bởi tham chiếu vs giá trị

Tất cả các tham số (đối số) trong ngôn ngữ Python được truyền qua tham chiếu. Điều đó có nghĩa là nếu bạn thay đổi những gì một tham số đề cập đến trong một hàm, thay đổi cũng phản ánh lại trong hàm gọi. Ví dụ -

def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return
4

Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau -

def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return
5

Vượt qua bởi tham chiếu vs giá trị

Tất cả các tham số (đối số) trong ngôn ngữ Python được truyền qua tham chiếu. Điều đó có nghĩa là nếu bạn thay đổi những gì một tham số đề cập đến trong một hàm, thay đổi cũng phản ánh lại trong hàm gọi. Ví dụ -

Ở đây, chúng tôi đang duy trì tham chiếu của đối tượng được truyền và nối thêm các giá trị trong cùng một đối tượng. Do đó, điều này sẽ tạo ra kết quả sau -

def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return
6

Có một ví dụ nữa trong đó đối số được truyền bằng tham chiếu và tham chiếu đang được ghi đè bên trong hàm được gọi.

def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return
7

Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau -

def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return
8

Các chức năng ẩn danh

Các chức năng này được gọi là ẩn danh vì chúng không được khai báo theo cách tiêu chuẩn bằng cách sử dụng từ khóa DEF. Bạn có thể sử dụng từ khóa Lambda để tạo các hàm ẩn danh nhỏ.def keyword. You can use the lambda keyword to create small anonymous functions.

  • Các biểu mẫu Lambda có thể lấy bất kỳ số lượng đối số nào nhưng chỉ trả về một giá trị dưới dạng biểu thức. Chúng không thể chứa các lệnh hoặc nhiều biểu thức.

  • Một hàm ẩn danh không thể là một cuộc gọi trực tiếp để in vì Lambda yêu cầu biểu thức.

  • Các hàm Lambda có không gian tên cục bộ riêng và không thể truy cập các biến khác với các biến trong danh sách tham số của họ và các biến trong không gian tên toàn cầu.

  • Mặc dù có vẻ như Lambdas là phiên bản một dòng của một hàm, nhưng chúng không tương đương với các câu lệnh nội tuyến trong C hoặc C ++, có mục đích là xếp chồng phân bổ bằng cách chuyển chức năng, trong quá trình gọi vì lý do hiệu suất.

Cú pháp

Cú pháp của các hàm Lambda chỉ chứa một câu lệnh, như sau -lambda functions contains only a single statement, which is as follows −

def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return
9

Sau đây là một ví dụ để hiển thị cách dạng chức năng Lambda hoạt động -lambda form of function works −

#!/usr/bin/python3

# Function definition is here
def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return

# Now you can call printme function
printme("This is first call to the user defined function!")
printme("Again second call to the same function")
0

Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau -

#!/usr/bin/python3

# Function definition is here
def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return

# Now you can call printme function
printme("This is first call to the user defined function!")
printme("Again second call to the same function")
1

Tuyên bố trả lại

Câu lệnh trả về [Biểu thức] thoát ra một hàm, tùy chọn chuyển lại một biểu thức cho người gọi. Một câu lệnh trả về không có đối số giống như trả về không.

Tất cả các ví dụ được đưa ra dưới đây không trả lại bất kỳ giá trị nào. Bạn có thể trả về một giá trị từ một hàm như sau -

#!/usr/bin/python3

# Function definition is here
def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return

# Now you can call printme function
printme("This is first call to the user defined function!")
printme("Again second call to the same function")
2

Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau -

#!/usr/bin/python3

# Function definition is here
def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return

# Now you can call printme function
printme("This is first call to the user defined function!")
printme("Again second call to the same function")
3

Phạm vi của các biến

Tất cả các biến trong một chương trình có thể không thể truy cập được tại tất cả các vị trí trong chương trình đó. Điều này phụ thuộc vào nơi bạn đã tuyên bố một biến.

Phạm vi của một biến xác định phần của chương trình nơi bạn có thể truy cập một định danh cụ thể. Có hai phạm vi cơ bản của các biến trong Python -

  • Biến toàn cầu
  • Các biến cục bộ

Các biến toàn cầu so với địa phương

Các biến được xác định bên trong một cơ thể chức năng có phạm vi cục bộ và những biến được xác định bên ngoài có phạm vi toàn cầu.

Điều này có nghĩa là các biến cục bộ chỉ có thể được truy cập bên trong hàm mà chúng được khai báo, trong khi các biến toàn cầu có thể được truy cập trên toàn bộ cơ thể chương trình bởi tất cả các chức năng. Khi bạn gọi một hàm, các biến được khai báo bên trong nó được đưa vào phạm vi. Sau đây là một ví dụ đơn giản -

#!/usr/bin/python3

# Function definition is here
def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return

# Now you can call printme function
printme("This is first call to the user defined function!")
printme("Again second call to the same function")
4

Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau -

#!/usr/bin/python3

# Function definition is here
def printme( str ):
   "This prints a passed string into this function"
   print (str)
   return

# Now you can call printme function
printme("This is first call to the user defined function!")
printme("Again second call to the same function")
5

3 chức năng trong Python là gì?

Có ba loại chức năng trong Python:..
Các hàm tích hợp, chẳng hạn như trợ giúp () để yêu cầu trợ giúp, min () để có được giá trị tối thiểu, in () để in một đối tượng vào thiết bị đầu cuối, trên ....
Các chức năng do người dùng xác định (UDF), là các chức năng mà người dùng tạo để giúp họ; Và..

Ví dụ về chức năng Python là gì?

Trong Python, một chức năng là một nhóm các tuyên bố liên quan thực hiện một nhiệm vụ cụ thể.Các chức năng giúp phá vỡ chương trình của chúng tôi thành các khối nhỏ hơn và mô -đun.Khi chương trình của chúng tôi phát triển lớn hơn và lớn hơn, các chức năng làm cho nó được tổ chức và quản lý hơn.Hơn nữa, nó tránh được sự lặp lại và làm cho mã có thể tái sử dụng.a group of related statements that performs a specific task. Functions help break our program into smaller and modular chunks. As our program grows larger and larger, functions make it more organized and manageable. Furthermore, it avoids repetition and makes the code reusable.

Làm thế nào để bạn viết một chức năng trong Python 3?

Một hàm được xác định bằng cách sử dụng từ khóa DEF, theo sau là tên bạn chọn, theo sau là một tập hợp dấu ngoặc đơn chứa bất kỳ tham số nào mà hàm sẽ lấy (chúng có thể trống) và kết thúc bằng dấu hai chấm.using the def keyword, followed by a name of your choosing, followed by a set of parentheses which hold any parameters the function will take (they can be empty), and ending with a colon.

4 loại chức năng trong Python là gì?

Sau đây là các loại chức năng Python khác nhau:..
Chức năng tích hợp Python ..
Chức năng đệ quy Python ..
Chức năng Python Lambda ..
Các chức năng do người dùng Python xác định ..