Hướng dẫn understanding functions in python - hiểu hàm trong python

Hướng dẫn understanding functions in python - hiểu hàm trong python

Trong bất kỳ ngôn ngữ lập trình nào, các chức năng tạo điều kiện cho việc tái sử dụng mã. Nói một cách đơn giản, khi bạn muốn làm điều gì đó nhiều lần, bạn có thể xác định rằng một cái gì đó là một hàm và chức năng gọi điện bất cứ khi nào bạn cần.

Trong hướng dẫn này, chúng ta sẽ tìm hiểu về các chức năng do người dùng xác định trong Python.

Khi bạn bắt đầu mã hóa trong Python, bạn đã sử dụng chức năng

def my_func():
  print("Hello! Hope you're doing well")

6 tích hợp trong chương trình
def my_func():
  print("Hello! Hope you're doing well")

7 của mình và chức năng
def my_func():
  print("Hello! Hope you're doing well")

8 để đọc trong đầu vào từ người dùng.

Miễn là bạn biết cách sử dụng các chức năng này, bạn không phải lo lắng về cách chúng được thực hiện.

Trong lập trình, điều này được gọi là trừu tượng. Nó cho phép bạn sử dụng các chức năng bằng cách gọi hàm với các đối số cần thiết mà không phải lo lắng về cách chúng thực sự hoạt động.

Có một loạt các chức năng tích hợp trong Python. Trong bài đăng này, chúng ta sẽ thấy cách chúng ta có thể xác định và sử dụng các chức năng của riêng mình. Bắt đầu nào!

Cú pháp chức năng Python

Đoạn trích sau đây cho thấy cú pháp chung để xác định hàm trong Python:

def function_name(parameters):
    # What the function does goes here
    return result 
  • Bạn cần sử dụng từ khóa
    def my_func():
      print("Hello! Hope you're doing well")
    
    
    9, đặt tên cho chức năng của bạn, theo sau là một cặp dấu ngoặc đơn và kết thúc dòng bằng một dấu hai chấm (:).
  • Nếu chức năng của bạn có các đối số, tên của các đối số (tham số) được đề cập bên trong dấu ngoặc đơn mở và đóng.
  • Xin lưu ý rằng trong định nghĩa chức năng, các đối số mà hàm của bạn tiêu thụ được gọi là tham số.
  • Khi bạn gọi hàm với các giá trị cụ thể cho các tham số này, chúng được gọi là đối số hoặc tham số thực tế. Điều này là do các đối số trong lệnh gọi hàm là các giá trị được sử dụng cho các tham số của hàm.
  • Sau đó, bạn bắt đầu một khối thụt lề. Đây là phần thân của chức năng mô tả những gì chức năng của bạn làm.
  • Có một tuyên bố
    my_func()
    
    # Output
    Hello! Hope you're doing well
    0 trả về kết quả của hoạt động trên các đối số. Câu lệnh
    my_func()
    
    # Output
    Hello! Hope you're doing well
    0 trả về kiểm soát đến điểm mà hàm ban đầu được gọi là.

Lưu ý rằng câu lệnh

my_func()

# Output
Hello! Hope you're doing well
2 và
my_func()

# Output
Hello! Hope you're doing well
0 là tùy chọn. Điều này có nghĩa là bạn có thể có một chức năng không có đối số và không trả lại gì. 😀

Bây giờ chúng ta hãy cố gắng hiểu các câu trên bằng cách sử dụng các ví dụ đơn giản.

Cách tạo một chức năng đơn giản trong Python

Bây giờ chúng ta hãy tạo một chức năng đơn giản trong Python chào người dùng, như được hiển thị bên dưới:

def my_func():
  print("Hello! Hope you're doing well")

Như bạn có thể thấy, hàm

my_func()

# Output
Hello! Hope you're doing well
4:

  • Không có tranh luận,
  • trả lại không có gì, và
  • In ra
    my_func()
    
    # Output
    Hello! Hope you're doing well
    5 bất cứ khi nào nó được gọi.

Lưu ý rằng định nghĩa hàm trên là tính toán hàm được kích hoạt hoặc gọi. Hãy tiếp tục và gọi chức năng

my_func()

# Output
Hello! Hope you're doing well
4 và kiểm tra đầu ra.

my_func()

# Output
Hello! Hope you're doing well

Cách tạo chức năng với các đối số trong Python

Bây giờ, chúng tôi sẽ sửa đổi chức năng

my_func()

# Output
Hello! Hope you're doing well
4 để bao gồm
my_func()

# Output
Hello! Hope you're doing well
8 và
my_func()

# Output
Hello! Hope you're doing well
9 của người dùng.

def my_func(name,place):
  print(f"Hello {name}! Are you from {place}?")

Bây giờ chúng ta có thể gọi

my_func()

# Output
Hello! Hope you're doing well
4 bằng cách chuyển hai chuỗi cho
my_func()

# Output
Hello! Hope you're doing well
8 và
my_func()

# Output
Hello! Hope you're doing well
9 của người dùng, như được hiển thị bên dưới.

my_func("Jane","Paris")

# Output
Hello Jane! Are you from Paris?

Điều gì xảy ra nếu bạn chỉ định

my_func()

# Output
Hello! Hope you're doing well
9 trước và sau đó là
my_func()

# Output
Hello! Hope you're doing well
8? Hãy cùng tìm hiểu.

my_func("Hawaii","Robert")

# Output
Hello Hawaii! Are you from Robert?

Chúng tôi nhận được

def my_func(name,place):
  print(f"Hello {name}! Are you from {place}?")
5 - và điều này không có ý nghĩa. 🙂 Cái gì gây ra vấn đề này?

Các đối số trong cuộc gọi hàm là đối số vị trí. Điều này có nghĩa là đối số đầu tiên trong lệnh gọi hàm được sử dụng làm giá trị của tham số đầu tiên (

my_func()

# Output
Hello! Hope you're doing well
8) & nbsp; và đối số thứ hai trong lệnh gọi hàm được sử dụng làm giá trị của tham số thứ hai (
my_func()

# Output
Hello! Hope you're doing well
9)

Xem đoạn mã bên dưới. Thay vì chỉ xác định các đối số, chúng tôi đã đề cập đến các tham số và các giá trị chúng.

my_func(place="Hawaii",name="Robert")

# Output
Hello Robert! Are you from Hawaii?

Chúng được gọi là đối số từ khóa. Thứ tự của các đối số trong lệnh gọi hàm không quan trọng miễn là tên của các tham số là chính xác.

Cách tạo chức năng với các đối số mặc định trong Python

Điều gì sẽ xảy ra nếu chúng ta có các tham số nhất định lấy một giá trị cụ thể trong hầu hết thời gian trong các cuộc gọi chức năng?

Chúng ta có thể không làm tốt hơn là gọi hàm có cùng giá trị cho một tham số cụ thể không?

Vâng, chúng tôi có thể làm tốt hơn, và đó là những gì

def my_func(name,place):
  print(f"Hello {name}! Are you from {place}?")
8 dành cho! 😀

Hãy tạo một chức năng

def my_func(name,place):
  print(f"Hello {name}! Are you from {place}?")
9 giúp chúng tôi tính toán và in tổng số tiền được trả tại một nhà hàng. Đưa ra một
my_func("Jane","Paris")

# Output
Hello Jane! Are you from Paris?
0 và tỷ lệ phần trăm của
my_func("Jane","Paris")

# Output
Hello Jane! Are you from Paris?
0 bạn chọn trả dưới dạng mẹo (
my_func("Jane","Paris")

# Output
Hello Jane! Are you from Paris?
2), hàm này tính toán tổng số tiền mà bạn nên trả.

Lưu ý cách định nghĩa hàm bao gồm giá trị mặc định của tham số

my_func("Jane","Paris")

# Output
Hello Jane! Are you from Paris?
2 sẽ được sử dụng khi người dùng không chỉ định tỷ lệ phần trăm mẹo.

Chạy đoạn mã bên dưới.👇🏽 Bây giờ bạn đã sẵn sàng chức năng của mình!

def total_calc(bill_amount,tip_perc=10):
  total = bill_amount*(1 + 0.01*tip_perc)
  total = round(total,2)
  print(f"Please pay ${total}")

Bây giờ chúng ta hãy gọi chức năng theo một vài cách khác nhau. Đoạn mã bên dưới hiển thị như sau:

  • Khi bạn gọi hàm
    my_func("Jane","Paris")
    
    # Output
    Hello Jane! Are you from Paris?
    4 chỉ bằng
    my_func("Jane","Paris")
    
    # Output
    Hello Jane! Are you from Paris?
    0, theo mặc định, phần trăm đầu của 10 được sử dụng.
  • Khi bạn chỉ định rõ ràng mẹo phần trăm, tỷ lệ phần trăm đầu được đề cập trong cuộc gọi chức năng được sử dụng.
# specify only bill_amount
# default value of tip percentage is used

 total_calc(150)
 # Output
 Please pay $165.0
 
 # specify both bill_amount and a custom tip percentage
 # the tip percentage specified in the function call is used
 
 total_calc(200,15)
 # Output
 Please pay $230.0
 
 total_calc(167,7.5)
 # Output
 Please pay $179.53
 

Cách tạo hàm trả về giá trị trong Python

Cho đến nay, chúng tôi chỉ tạo ra các chức năng có thể hoặc không có đối số và không trả lại bất cứ điều gì. Bây giờ, chúng ta hãy tạo một hàm đơn giản trả về khối lượng của một hình khối được đưa ra

my_func("Jane","Paris")

# Output
Hello Jane! Are you from Paris?
6,
my_func("Jane","Paris")

# Output
Hello Jane! Are you from Paris?
7 và
my_func("Jane","Paris")

# Output
Hello Jane! Are you from Paris?
8.

def volume_of_cuboid(length,breadth,height):
  return length*breadth*height
  
  

Hãy nhớ lại rằng từ khóa

my_func()

# Output
Hello! Hope you're doing well
0 trả về kiểm soát đến điểm mà hàm được gọi. Cuộc gọi chức năng được thay thế bằng
my_func("Hawaii","Robert")

# Output
Hello Hawaii! Are you from Robert?
0 từ hàm.

Hãy gọi hàm

my_func("Hawaii","Robert")

# Output
Hello Hawaii! Are you from Robert?
1 với các đối số kích thước cần thiết, như được hiển thị trong đoạn mã bên dưới. Lưu ý cách chúng tôi sử dụng biến
my_func("Hawaii","Robert")

# Output
Hello Hawaii! Are you from Robert?
2 để thu được giá trị được trả về từ hàm.

def my_func():
  print("Hello! Hope you're doing well")

0

Cách tạo một hàm trả về nhiều giá trị trong Python

Trong ví dụ trước đây của chúng tôi, hàm

my_func("Hawaii","Robert")

# Output
Hello Hawaii! Are you from Robert?
1 chỉ trả về một giá trị, cụ thể là khối lượng của một hình khối đưa ra kích thước của nó. Hãy xem làm thế nào chúng ta có thể trả về nhiều giá trị từ một hàm.

  • Để trả về nhiều giá trị từ một hàm, chỉ cần chỉ định các giá trị được trả về, được phân tách bằng dấu phẩy.
  • Theo mặc định, hàm trả về các giá trị dưới dạng tuple. Nếu có giá trị trả về
    my_func("Hawaii","Robert")
    
    # Output
    Hello Hawaii! Are you from Robert?
    4, chúng ta sẽ nhận được
    my_func("Hawaii","Robert")
    
    # Output
    Hello Hawaii! Are you from Robert?
    5Tuple.

Chúng ta hãy tạo một hàm đơn giản

my_func("Hawaii","Robert")

# Output
Hello Hawaii! Are you from Robert?
6 trả về khối lượng và tổng diện tích bề mặt của một khối, với chiều dài của bên của nó.

def my_func():
  print("Hello! Hope you're doing well")

1

Để xác minh rằng một tuple được trả về, hãy thu thập nó trong một biến

my_func("Hawaii","Robert")

# Output
Hello Hawaii! Are you from Robert?
7, như được hiển thị bên dưới:

def my_func():
  print("Hello! Hope you're doing well")

2

Bây giờ, chúng tôi sẽ giải nén tuple và lưu trữ các giá trị trong hai biến khác nhau.

def my_func():
  print("Hello! Hope you're doing well")

3

Cách tạo một hàm có số lượng đối số khác nhau trong Python

Hãy bắt đầu bằng cách hỏi một vài câu hỏi:

  • Điều gì sẽ xảy ra nếu chúng ta không biết chính xác số lượng đối số trước?
  • Chúng ta có thể tạo các chức năng hoạt động với một số lượng đối số khác nhau không?

Câu trả lời là có! Và chúng tôi sẽ tạo ra một chức năng như vậy ngay lập tức.

Chúng ta hãy tạo một hàm đơn giản

my_func("Hawaii","Robert")

# Output
Hello Hawaii! Are you from Robert?
8 trả về tổng của tất cả các số được truyền dưới dạng đối số. Tuy nhiên, số lượng đối số có thể có khả năng khác nhau mỗi khi chúng ta gọi hàm.

Lưu ý cách định nghĩa hàm bây giờ có

my_func("Hawaii","Robert")

# Output
Hello Hawaii! Are you from Robert?
9 thay vì chỉ tên của tham số. Trong phần thân của chức năng, chúng ta lặp qua
my_func(place="Hawaii",name="Robert")

# Output
Hello Robert! Are you from Hawaii?
0 cho đến khi chúng ta sử dụng tất cả các đối số. Hàm
my_func(place="Hawaii",name="Robert")

# Output
Hello Robert! Are you from Hawaii?
1 trả về tổng của tất cả các số được truyền dưới dạng đối số.

def my_func():
  print("Hello! Hope you're doing well")

4

Bây giờ chúng ta hãy gọi hàm

my_func("Hawaii","Robert")

# Output
Hello Hawaii! Are you from Robert?
8 với một số lượng đối số khác nhau mỗi lần và nhanh chóng kiểm tra xem các câu trả lời được trả lại có chính xác không! 🙂

def my_func():
  print("Hello! Hope you're doing well")

5

⌛ Một bản tóm tắt nhanh chóng

Hãy nhanh chóng tóm tắt những gì chúng tôi đã đề cập. Trong hướng dẫn này, chúng tôi đã học được:

  • cách xác định các chức năng,
  • cách truyền đối số cho một chức năng,
  • cách tạo các chức năng với số lượng đối số mặc định và biến đổi và
  • cách tạo một hàm với giá trị trả về (các) giá trị.

Hy vọng tất cả các bạn thích đọc bài viết này. Cảm ơn bạn đã đọc. Như mọi khi, cho đến lần sau! 😀



Học mã miễn phí. Chương trình giảng dạy nguồn mở của Freecodecamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu