Python 3 – Hàm, Hàm là một khối mã có tổ chức, có thể sử dụng lại được dùng để thực hiện một hành động có 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à

Bạn đang xem: cách gọi một hàm trong python 3

Python 3 – Hàm

Quảng cáo

Hàm là một khối mã có tổ chức, có thể sử dụng lại được dùng để thực hiện một hành động có 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 sẵn như print (), v.v. nhưng bạn cũng có thể tạo các hàm của riêng mình. Các chức năng này được gọi là

Xác định một hàm

Bạn có thể xác định các chức năng để cung cấp 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 hàm trong Python.

  • Các khối hàm bắt đầu bằng từ khóa def theo sau là tên hàm và dấu ngoặc đơn (()).

  • Mọi tham số hoặc đối số đầu vào phải đượ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.

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

  • 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 biểu thức cho người gọi. Câu lệnh trả về không có đối số cũng giống như câu lệnh trả về Không có.

Cú pháp

def functionname (tham số):
   "function_docstring"
   function_suite
   return [biểu thức]

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 đúng thứ tự mà chúng đã được xác định.

Ví dụ

Hàm sau nhận một chuỗi làm tham số đầu vào và in nó ra màn hình chuẩn.

def printme (str):
   "Thao tác này in một chuỗi được truyền vào hàm này"
   print (str)
   trở về

Gọi một hàm

Việc xác định một hàm sẽ đặt tên cho nó, chỉ định các tham số 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 một hàm được hoàn thiện, bạn có thể thực thi nó bằng cách gọi nó từ một hàm khác hoặc trực tiếp từ lời nhắc Python. Sau đây là một ví dụ để gọi hàm printme ()

#! / usr / bin / python3

# Định nghĩa hàm ở đây
def printme (str):
   "Thao tác này in một chuỗi được truyền vào hàm này"
   print (str)
   trở về

# Bây giờ bạn có thể gọi hàm printme
printme ("Đây là lần gọi đầu tiên đến hàm do người dùng xác định!")
printme ("Một lần nữa cuộc gọi thứ hai đến cùng một hàm")

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

Đây là lần gọi đầu tiên đến hàm do người dùng xác định!
Một lần nữa cuộc gọi thứ hai đến cùng một chức năng

Chuyển theo tham chiếu so với giá trị

Tất cả các tham số (đối số) trong ngôn ngữ Python được truyền bằng tham chiếu. Nó 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 đang gọi. Ví dụ –

#! / usr / bin / python3

# Định nghĩa hàm ở đây
def changeme (mylist):
   "Điều này thay đổi một danh sách đã chuyển thành chức năng này"
   print ("Các giá trị bên trong hàm trước khi thay đổi:", mylist)
   
   mylist [2] = 50
   print ("Các giá trị bên trong hàm sau khi thay đổi:", mylist)
   trở về

# Bây giờ bạn có thể gọi hàm changeme
mylist = [10,20,30]
changeme (danh sách của tôi)
print ("Các giá trị bên ngoài hàm:", mylist)

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

Các giá trị bên trong hàm trước khi thay đổi: [10, 20, 30]
Giá trị bên trong hàm sau khi thay đổi: [10, 20, 50]
Giá trị bên ngoài chức năng: [10, 20, 50]

Có một ví dụ nữa trong đó đối số đang đượ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

# Định nghĩa hàm ở đây
def changeme (mylist):
   "Điều này thay đổi một danh sách đã chuyển thành chức năng này"
   mylist = [1,2,3,4] # Điều này sẽ cung cấp tài liệu tham khảo mới trong danh sách của tôi
   print ("Các giá trị bên trong hàm:", mylist)
   trở về

# Bây giờ bạn có thể gọi hàm changeme
mylist = [10,20,30]
changeme (danh sách của tôi)
print ("Các giá trị bên ngoài hàm:", mylist)

Tham số danh sách của tôi là cục bộ của hàm changeme. Thay đổi danh sách của tôi trong hàm không ảnh hưởng đến danh sách của tôi. Hàm không thực hiện được gì và cuối cùng điều này sẽ tạo ra kết quả sau –

Giá trị bên trong hàm: [1, 2, 3, 4]
Giá trị bên ngoài chức năng: [10, 20, 30]

Đối số hàm

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 –

  • Đối số bắt buộc
  • Đối số từ khóa
  • Đối số mặc định
  • Đối số có độ dài thay đổi
Xem Thêm  20 tài liệu học Python thiết thực để trở thành lập trình viên chuyên nghiệp - sách python

Đối số bắt buộc

Các đối số bắt buộc là các đối số được truyền cho một hàm theo đúng thứ tự vị trí. Ở đây, số lượng đối số trong lệnh gọi hàm phải 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 –

#! / usr / bin / python3

# Định nghĩa hàm ở đây
def printme (str):
   "Thao tác này in một chuỗi được truyền vào hàm này"
   print (str)
   trở về

# Bây giờ bạn có thể gọi hàm printme
printme ()

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

Traceback (cuộc gọi gần đây nhất cuối cùng):
   Tệp "test.py", dòng 11, trong & lt; mô-đun & gt;
      printme ();
TypeError: printme () nhận đúng 1 đối số (0 cho trước)

Đối số từ khóa

Các đối số từ khóa có liên quan đến các lệnh gọi hàm. Khi bạn sử dụng các đối số từ khóa trong một lệnh gọi hàm, trình gọi sẽ xác định các đối số bằng tên tham số.

Điều này cho phép bạn bỏ qua các đối số hoặc sắp xếp chúng không theo thứ tự vì trình thông dịch Python có thể sử dụng các từ khóa được cung cấp để đối sánh các giá trị với các tham số. Bạn cũng có thể thực hiện lệnh gọi từ khóa tới hàm printme () theo những cách sau –

#! / usr / bin / python3

# Định nghĩa hàm ở đây
def printme (str):
   "Thao tác này in một chuỗi được truyền vào hàm này"
   print (str)
   trở về

# Bây giờ bạn có thể gọi hàm printme
printme (str = "Chuỗi của tôi")

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

Chuỗi của tôi

Ví dụ sau đây cho ta một bức tranh rõ ràng hơn. Lưu ý rằng thứ tự của các tham số không quan trọng.

#! / usr / bin / python3

# Định nghĩa hàm ở đây
def printinfo (tên, tuổi):
   "Điều này in một thông tin được chuyển vào chức năng này"
   print ("Tên:", tên)
   print ("Tuổi", tuổi)
   trở về

# Bây giờ bạn có thể gọi hàm printinfo
printinfo (age = 50, name = "miki")

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

Tên: miki
Tuổi 50

Đối số mặc định

Đối số mặc định là đối số giả định giá trị mặc định nếu giá trị không được cung cấp trong lệnh gọi hàm cho đối số đó. Ví dụ sau đây đưa ra ý tưởng về các đối số mặc định, nó sẽ in tuổi mặc định nếu nó không được thông qua –

#! / usr / bin / python3

# Định nghĩa hàm ở đây
def printinfo (name, age = 35):
   "Điều này in một thông tin được chuyển vào chức năng này"
   print ("Tên:", tên)
   print ("Tuổi", tuổi)
   trở về

# Bây giờ bạn có thể gọi hàm printinfo
printinfo (age = 50, name = "miki")
printinfo (name = "miki")

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

Tên: miki
Tuổi 50
Tên: miki
Tuổi 35

Đối số có độ dài thay đổi

Bạn có thể cần xử lý một hàm cho nhiều đối số hơn bạn đã chỉ định trong khi xác định hàm. Các đối số này được gọi là đối số và không có tên trong định nghĩa hàm, không giống như các đối số bắt buộc và mặc định.

Xem Thêm  Chuyển đổi mảng sang JavaScript đối tượng JSON - mảng sang json javascript

Cú pháp cho một hàm có các đối số không phải là biến từ khóa được đưa ra bên dưới –

def functionname ([formal_args,] * var_args_tuple):
   "function_docstring"
   function_suite
   return [biểu thức]

Dấu hoa thị (*) được đặt trước tên biến chứa các giá trị của tất cả các đối số của biến không có từ khóa. Bộ giá trị này vẫn trống nếu không có đối số bổ sung nào được chỉ định trong khi gọi hàm. Sau đây là một ví dụ đơn giản –

#! / usr / bin / python3

# Định nghĩa hàm ở đây
def printinfo (arg1, * vartuple):
   "Điều này in ra một đối số được truyền vào biến"
   print ("Đầu ra là:")
   print (arg1)
   
   cho var trong vartuple:
      print (var)
   trở về

# Bây giờ bạn có thể gọi hàm printinfo
printinfo (10)
printinfo (70, 60, 50)

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

Đầu ra là:
10
Đầu ra là:
70
60
50

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

Các hàm này được gọi là ẩn danh vì chúng không được khai báo theo cách chuẩn bằng cách sử dụng deftừ khóa . Bạn có thể sử dụng từ khóa lambda để tạo các hàm ẩn danh nhỏ.

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

  • Một hàm ẩn danh không thể là một lệnh gọi trực tiếp để in vì lambda yêu cầu một 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 chúng và các biến trong không gian tên chung.

  • < / p>

Cú pháp

Cú pháp của các hàm lambda chỉ chứa một câu lệnh duy nhất, như sau –

lambda [arg1 [, arg2, ..... argn]]: biểu thức

Sau đây là một ví dụ cho thấy cách hoạt động của dạng hàm lambda

#! / usr / bin / python3

# Định nghĩa hàm ở đây
sum = lambda arg1, arg2: arg1 + arg2

# Bây giờ bạn có thể gọi sum dưới dạng một hàm
print ("Giá trị của tổng:", sum (10, 20))
print ("Giá trị của tổng:", sum (20, 20))

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

Tổng giá trị: 30
Tổng giá trị: 40

Tuyên bố trả lại

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 biểu thức cho người gọi. Câu lệnh trả về không có đối số cũng giống như câu lệnh trả về Không có.

Tất cả các ví dụ được đưa ra bên dưới không trả về 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

# Định nghĩa hàm ở đây
def sum (arg1, arg2):
   # Thêm cả hai tham số và trả về. "
   tổng = arg1 + arg2
   print ("Bên trong hàm:", tổng)
   tổng trở lại

# Bây giờ bạn có thể gọi hàm sum
tổng = sum (10, 20)
print ("Bên ngoài hàm:", tổng)

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

Bên trong chức năng: 30
Ngoài chức năng: 30

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 truy cập được ở 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 đã khai báo một biến.

Xem Thêm  Kiểm tra xem Mảng có chứa giá trị trong JavaScript hay không - javascript kiểm tra xem mảng có chứa

Phạm vi của một biến xác định phần chương trình mà bạn có thể truy cập vào một số nhận dạng cụ thể. Có hai phạm vi cơ bản của các biến trong Python –

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

Biến toàn cục so với biến cục bộ

Các biến được xác định bên trong thân hàm có phạm vi cục bộ và các biến được xác định bên ngoài có phạm vi toàn cục.

Đ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ục có thể được truy cập trong toàn bộ phần thân chương trình bởi tất cả các hàm. Khi bạn gọi một hàm, các biến được khai báo bên trong nó sẽ được đưa vào phạm vi. Sau đây là một ví dụ đơn giản –

#! / usr / bin / python3

Total = 0 # Đây là biến toàn cục.
# Định nghĩa hàm ở đây
def sum (arg1, arg2):
   # Thêm cả hai tham số và trả về. "
   tổng = arg1 + arg2; # Ở đây tổng là biến cục bộ.
   print ("Bên trong hàm local total:", total)
   tổng trở lại

# Bây giờ bạn có thể gọi hàm sum
tổng (10, 20)
print ("Bên ngoài tổng số toàn cục của hàm:", tổng số)

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

Tổng số bên trong chức năng cục bộ: 30
Bên ngoài chức năng tổng số toàn cầu: 0

Quảng cáo


Xem thêm những thông tin liên quan đến chủ đề cách gọi một hàm trong python 3

Ngôn ngữ lập trình Python – Cơ bản || Chương 5. Hàm trong Python

  • Tác giả: EPS Online Education
  • Ngày đăng: 2020-04-08
  • Đánh giá: 4 ⭐ ( 3846 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Ngôn ngữ lập trình Python – Cơ bản. Chương 5. Hàm trong Python:
    1.1. Hàm
    1.2. Phân loại hàm
    1.2.1. Hàm không có tham số và không có giá trị trả về
    1.2.2. Hàm có tham số và không có giá trị trả về:
    1.2.3. Hàm với nhiều tham số
    1.2.4. Hàm với số lượng tham số có thể thay đổi được:
    1.2.5. Hàm với tham số có giá trị mặc đinh:
    1.2.6. Hàm có giá trị trả về:
    1.3. Tổ chức và sử dụng hàm
    1.4. Bài tập thực hành
    NgônNgữLậpTrình Python LậpTrìnhCơBản

Hàm (function) và cách xây dựng hàm trong Python

  • Tác giả: gochocit.com
  • Đánh giá: 4 ⭐ ( 4090 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Function (hàm) trong Python

  • Tác giả: tuhocict.com
  • Đánh giá: 3 ⭐ ( 1014 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Trong bài học này sẽ chúng ta sẽ xem xét chi tiết các vấn đề liên quan đến việc xây dựng và sử dụng hàm tự tạo trong Python.

Hàm trong Python

  • Tác giả: viettuts.vn
  • Đánh giá: 4 ⭐ ( 3043 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Hàm trong Python là một khối lệnh được tổ chức và có thể tái sử dụng, để thực hiện một hành động nào đó.Ví dụ print() là một hàm được xây dựng sẵn.

Function: Hàm trong Python

  • Tác giả: phannhatchanh.com
  • Đánh giá: 4 ⭐ ( 2261 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Cho đến nay, các bài viết trong chuyên mục lập trình Python cơ bản có nhiều hàm được tích hợp sẵn của python được sử dụng như print(), len(…

Python: Các hàm toán học trong Python

  • Tác giả: www.v1study.com
  • Đánh giá: 4 ⭐ ( 5954 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Trong Python, một số phép toán toán học có thể được thực hiện một cách dễ dàng bằng cách import một mô-đun có tên là math để xác định các hàm khác nhau g

Hàm trong Python

  • Tác giả: o2.edu.vn
  • Đánh giá: 4 ⭐ ( 9038 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Để khai báo một hàm trong Python chúng ta sử dụng từ khóa def với cú pháp:

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

By ads_php