Khai báo và gọi hàm python

Hướng dẫn bằng video này giải thích các Hàm Python và các loại của chúng như hàm do người dùng xác định & hàm tích hợp. Bạn sẽ học cách định nghĩa và gọi Hàm Python

Mặc dù người tạo ra Python “Guido Van Rossum” không có ý định Python trở thành một ngôn ngữ chức năng, nhưng các chức năng đóng một vai trò quan trọng trong Python

Chúng ta có thể định nghĩa Hàm là một hộp chứa các câu lệnh được sử dụng và sử dụng lại bất cứ khi nào có nhu cầu. Trong hướng dẫn này, chúng ta sẽ thảo luận về các hàm Python cùng với các ví dụ đơn giản

Các hàm Python có một số thuộc tính khiến chúng trở nên lý tưởng cho các chương trình lớn và phức tạp. Python có ba loại chức năng – Chức năng tích hợp, Người dùng xác định và Hàm ẩn danh

=> Truy cập vào đây để học Python từ đầu

Bạn sẽ học được gì

Hàm Trong Python. Video hướng dẫn

Đối số hàm trong Python. Video #1

Hàm, gọi hàm và câu lệnh trả về trong Python. Video #2

Tại sao nên sử dụng hàm Python

Các chức năng là rất nhiều, ngay cả đối với các ngôn ngữ lập trình khác. Các hàm quan trọng trong Python ở điểm chúng ta có các hàm dựng sẵn [các hàm được xác định trước trong Python]

Trước khi đi vào chi tiết, chúng ta hãy hiểu tại sao các chức năng lại quan trọng

  • Là đối tượng hạng nhất
  • Là các hàm bậc cao
  • Cung cấp khả năng sử dụng lại mã
  • Cung cấp phân rã thủ tục

Đối tượng hạng nhất

Các hàm trong Python là các đối tượng hạng nhất giống như số nguyên, chuỗi và từ điển. Là một đối tượng hạng nhất đi kèm với các thuộc tính cho phép lập trình với kiểu chức năng

Những thuộc tính này

  • Có thể được tạo trong thời gian chạy
  • Có thể được gán cho các biến và được sử dụng làm thành phần trong cấu trúc dữ liệu
  • Có thể được truyền dưới dạng đối số cho các chức năng khác
  • Có thể được trả về do kết quả của các chức năng khác

Đừng lo lắng nếu các thuộc tính trên khó hiểu. Khi chúng ta tiến bộ trong hướng dẫn này, chúng ta sẽ hiểu chúng tốt hơn

Hàm bậc cao

Trong Python, các hàm có thể lấy các hàm khác làm đối số và/hoặc trả về kết quả của một hàm. Điều này làm cho cuộc sống dễ dàng đối với một số chức năng như bản đồ, bộ lọc là một số chức năng bậc cao nổi tiếng

Ví dụ 1. Sử dụng hàm map[], tính danh sách các số nguyên từ một chuỗi số.

Hàm dựng sẵn sẽ nhận hai đối số, một hàm [] và chuỗi số của chúng ta. Sau đó, nó sẽ chuyển từng phần tử của chuỗi vào hàm đối số của nó để được tính toán. Điều này sẽ không thể thực hiện được nếu các hàm Python không có bậc cao hơn

# string of numbers
str_numb = "123456789" 
# create a list of integers from a string of numbers
result = list[map[int, str_numb]] 

print["RESULT: ", result]

đầu ra

Sử dụng lại mã

Như đã đề cập ở trên, các chức năng kèm theo báo cáo. Điều này giúp chúng ta không phải viết đi viết lại cùng một câu lệnh mỗi khi chúng ta cần chúng và điều này thường dẫn đến việc sao chép mã

Nếu chúng ta có một logic mà chúng ta muốn sử dụng ở các vùng khác nhau trong mã của mình, thì sẽ là khôn ngoan và chuyên nghiệp khi đóng gói chúng trong một chức năng thay vì lặp lại logic ở các vùng khác nhau

Thuật ngữ được sử dụng để mô tả hiện tượng này là "khả năng sử dụng lại" và nó tuân theo một nguyên tắc mạnh mẽ trong phát triển phần mềm có tên là Don't Repeat Yourself [DRY]

Phân tách thủ tục

Trong Python, hàm giúp phân chia hệ thống thành nhiều phần [mô-đun], do đó giúp quản lý và bảo trì dễ dàng hơn

Các chức năng cho phép chúng tôi triển khai một mô hình thiết kế thuật toán rất mạnh có tên là “Chia để trị”, về cơ bản chia nhỏ một ý tưởng thành hai hoặc nhiều ý tưởng phụ và làm cho chúng đủ đơn giản để thực hiện

Hãy tưởng tượng rằng chúng ta muốn thực hiện quy trình chúng ta “ra khỏi nhà đi làm” mỗi sáng

Nếu bạn là người

  • Thức dậy lúc 6 giờ sáng,
  • Suy gẫm lời Chúa trong 30 phút,
  • Làm mới trong 15 phút,
  • Ăn sáng trong 10 phút,
  • Rồi cuối cùng đi làm

Sau đó, bạn sẽ nhận ra một vài quy trình phụ chi phối quá trình chúng ta “rời nhà đi làm”

Chúng tôi đã chia nhỏ quy trình thành các quy trình con và việc triển khai sẽ dễ dàng vì chúng tôi có thể tách biệt rõ ràng các quy trình con và triển khai từng quy trình một bằng cách sử dụng các hàm

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

Trước đó trong hướng dẫn này, chúng ta đã thấy hai chức năng tích hợp sẵn [map, int]. Trong khi Python có các hàm dựng sẵn, chúng ta cũng có thể định nghĩa các hàm của riêng mình. Trong phần này, chúng ta sẽ thảo luận về dạng tổng quát của một hàm trong Python

Một hàm Python có cú pháp sau

def function_name[arg1, arg2,...,argN]:
    # function code

Như đã thấy ở trên, một hàm Python bắt đầu bằng từ khóa def, theo sau là tên hàm, [các] tham số trong dấu ngoặc đơn [[]], sau đó là dấu hai chấm và cuối cùng là mã hàm được thụt lề và thường chứa câu lệnh trả về

Để kỹ lưỡng hơn, hãy xem xét hàm dưới đây nhân hai số và trả về kết quả

Hình 2. Định nghĩa hàm có chú thích

Chúng ta có thể thấy rằng một hàm có các phần chính sau

từ khóa chắc chắn. “Từ khóa def” được sử dụng để viết các hàm tạo đối tượng mới và gán nó cho tên của hàm. Sau khi gán, tên của hàm bây giờ trở thành một tham chiếu đến đối tượng hàm

Tên chức năng. Tên của hàm giữ một tham chiếu đến đối tượng hàm sau khi được tạo bởi câu lệnh def. Điều này cho phép chúng tôi xác định các chức năng một lần và gọi chúng trong nhiều phần mã của chúng tôi. Trong Python, một hàm ẩn danh không có tên hàm

thông số chức năng. Khi một hàm được xác định để lấy dữ liệu, các tham số được sử dụng để giữ dữ liệu đó và chuyển dữ liệu đó vào phần thân của hàm

Đại tràng. Dấu hai chấm[. ] là một gợi ý cho phần thân của hàm. Đó là, thân hàm được thụt vào sau dấu hai chấm

mã chức năng. Mã hàm còn được gọi là thân hàm chứa các câu lệnh thụt lề được thực thi khi hàm được gọi. Nó thường chứa một câu lệnh trả về để thoát khỏi hàm và xác định giá trị sẽ được trả về cho người gọi

Các tham số và đối số của hàm

Người gọi hàm có thể kiểm soát dữ liệu đi vào hàm bằng cách sử dụng các tham số của hàm. Hàm không có tham số không thể nhận dữ liệu từ người gọi. Như chúng ta sẽ thấy ở phần sau của phần này, các tham số và đối số có các định nghĩa khác nhau, mặc dù được cho là có nghĩa giống nhau.

Tham số chức năng Vs Đối số

Tham số thuật ngữ và đối số được cho là được sử dụng cho cùng một thứ. Tuy nhiên, từ quan điểm của hàm, tham số là một trình giữ chỗ [biến] được đặt bên trong dấu ngoặc đơn trong định nghĩa hàm trong khi đối số là giá trị được truyền cho hàm khi nó được gọi

Ví dụ 2. Xét hình 2 bên trên và đoạn code bên dưới, tham số ở đây là x và y. Nhưng khi chúng ta gọi hàm với answer = Multiply[3, 4] như bên dưới, chúng ta chuyển các giá trị 3 và 4 làm đối số.

def multiply[x, y]:
    print["Multiply {} and {}".format[x, y]]
    result = x * y
    return result

if __name__ == "__main__":
    answer = multiply[3,4]
    print["Answer: ", answer] 

đầu ra

Xác định chức năng không có tham số

Trước khi chúng ta đi sâu vào việc xác định các tham số của hàm, cần lưu ý rằng các hàm có thể được xác định mà không cần tham số. Trong trường hợp này, người gọi không thể truyền dữ liệu vào hàm

Ví dụ 3. Định nghĩa một hàm gọi là display không nhận đối số và in ra dòng chữ “Hello World. ”

def display[]: # no parameters in []
    print["Hello World!"]

if __name__ == '__main__':
    display[] # called without arguments

đầu ra

Xác định tham số với giá trị mặc định

Trong Python, nếu một hàm được xác định với các tham số và người gọi không truyền vào các đối số khớp với số lượng tham số, thì a sẽ được nâng lên

Ví dụ 4. Kiểm tra mã mẫu bên dưới.

# define function with two parameters 
def display[x, y]:
    print["X: ", x]
    print["Y: ", y]
    
if __name__ == '__main__':
    # function called and passed only one argument
    display[4]

đầu ra

Đôi khi, chúng ta muốn xác định hàm của mình bằng các tham số nhưng sẽ mong đợi một số tham số chuyển một số giá trị mặc định vào phần thân của hàm khi chúng ta không cung cấp cho chúng các đối số

Điều này có thể đạt được bằng cách đưa ra các giá trị mặc định cho các tham số được tôn trọng trong định nghĩa hàm

Xem xét mẫu mã trong ví dụ 4 ở trên. Khi hàm được gọi, chỉ có một đối số được truyền vào tham số x. Tuy nhiên, y không nhận được bất kỳ đối số nào. Để ngăn Python đưa ra một ngoại lệ khi điều này xảy ra, chúng ta có thể cung cấp cho tham số y một giá trị mặc định trong quá trình định nghĩa

Bây giờ, x trở thành tham số không mặc định và y trở thành tham số mặc định

Ví dụ 5. Đặt giá trị mặc định cho tham số y.

# define function with two parameters where ‘y’ is a default parameter
def display[x, y=0]:
    print["X: ", x]
    print["Y: ", y]
    
if __name__ == '__main__':
    # function called and passed only one argument
    display[4]

đầu ra

NB. Trong khi đưa ra các giá trị mặc định của tham số chức năng, hãy đảm bảo rằng các tham số không mặc định xuất hiện trước bất kỳ tham số mặc định nào.

Xác định tham số Với *args

Một hàm có thể nhận vào càng nhiều đối số vị trí càng tốt. Tuy nhiên, chúng ta cần đảm bảo rằng số lượng đối số được truyền phải khớp với số lượng tham số được xác định trong dấu ngoặc đơn của hàm

Ví dụ 6. Giả sử chúng ta muốn thêm một số số nguyên nhưng chúng ta không biết tại thời điểm chạy chúng ta muốn thêm bao nhiêu số nguyên. Điều này có thể gây cho chúng ta rất nhiều rắc rối nếu chúng ta sử dụng các tham số vị trí.

Kiểm tra mã mẫu bên dưới

# define function with 4 positional parameters 
def add[a, b, c , d]:
    return a + b + c + d
    
if __name__ == '__main__':
    # call function with 4 arguments
    result1 = add[4,5,3,2]
    print[" 1 Result: ", result1]

    # call function with 6 arguments
    result2 = add[4,6,2,7,8,9]
    print[" 2 Result: ", result2

đầu ra

Từ kết quả trên, lệnh gọi hàm đầu tiên trả về kết quả do 4 đối số được truyền khớp với 4 tham số đã xác định. Tuy nhiên, lệnh gọi hàm thứ hai phát sinh một ngoại lệ TypeError khi sáu đối số được truyền nhưng hàm dự kiến ​​bốn đối số theo số lượng tham số

Ví dụ 7. Chúng ta có thể khắc phục điều này bằng cách xác định hàm của mình bằng một tham số duy nhất và gọi hàm với danh sách các số nguyên cần thêm. Kiểm tra ví dụ dưới đây.

# define function with 1 parameters 
def add[l]:
    result = 0
    for items in l:
        result += items
    return result
    
if __name__ == '__main__':
    # call function with a list of 4 integers
    list1 = [4,5,3,2]
    result1 = add[list1]
    print[" 1 Result: ", result1]
    # call function with a list of 6 integers
    list2 = [4,6,2,7,8,9]
    result2 = add[list2]
    print[" 2 Result: ", result2]
]

đầu ra

Mặc dù điều này hoạt động, nhưng nó có thể trở nên bất tiện vì chúng ta sẽ cần tạo một danh sách tất cả các đối số trước khi chuyển chúng vào hàm

Ví dụ 8. Cách đơn giản nhất để giải quyết vấn đề này là sử dụng *args cho phép chúng ta truyền bao nhiêu đối số vị trí mà không cần biết số đếm.

________số 8_______

đầu ra

Ví dụ 9. Nếu chúng ta có một iterable và chúng ta muốn chuyển từng mục vào hàm đã được xác định bằng *args, thì chúng ta có thể sử dụng toán tử giải nén[*] để làm như vậy.

# define function with *args
def add[*args]:
    result = 0
    # args becomes a tuple of all the arguments passed into this function.
    for items in args:
        result += items
    return result
    
if __name__ == '__main__':
    # define a list of integers
    list_ints = [4,5,3,2]
    # use the unpacking operator[*] to unpack the list.
    result = add[*list_ints]
    print["Result: ", result]

đầu ra

NB. Vài điều cần lưu ý ở đây

  • args trong *args chỉ là tên và có thể thay thế bằng bất kỳ tên nào chúng ta muốn
  • args được coi như một bộ trong phần thân của hàm và chứa tất cả các đối số được cung cấp cho hàm
  • *args phải xuất hiện sau bất kỳ tham số không mặc định nào và trước bất kỳ tham số mặc định nào trong quá trình định nghĩa hàm

Xác định tham số Với **kwargs

Trong phần trước, chúng ta đã thấy *args. Trong phần này, chúng ta sẽ xem xét **kwargs, bằng cách nào đó hoạt động tương tự, nhưng không giống như *args xử lý các đối số vị trí, **kwargs xử lý các đối số từ khóa

Trước khi chúng ta xem xét một số ví dụ, điều đáng chú ý là

  • kwargs trong **kwargs chỉ là tên và có thể thay thế bằng bất kỳ tên nào
  • kwargs được coi như một từ điển trong thân hàm chứa các đối số từ khóa được truyền cho nó
  • **kwargs phải là tham số cuối cùng trong quá trình định nghĩa hàm

Ví dụ 10. Đoạn mã dưới đây định nghĩa một hàm với tham số **kwargs, nhận các đối số từ khóa và nối các giá trị của chúng.

def function_name[arg1, arg2,...,argN]:
    # function code
0

đầu ra

Ví dụ 11. Nếu chúng ta có một từ điển và chúng ta muốn chuyển từng cặp khóa-giá trị vào hàm được xác định bằng **kwargs, thì chúng ta có thể sử dụng toán tử giải nén [**] để làm như vậy.

def function_name[arg1, arg2,...,argN]:
    # function code
1

đầu ra

Hàm Vs Phương thức

Các thuật ngữ chức năng và phương pháp đôi khi được sử dụng thay thế cho nhau. Tuy nhiên, trong phát triển phần mềm, các phương thức đơn giản là các hàm được định nghĩa trong một lớp i. e. chúng được gắn vào một đối tượng và không giống như các chức năng, chúng không thể chỉ được gọi bằng tên

Ví dụ: chúng tôi có mô-đun toán học tích hợp Python. Sau khi nhập nó, chúng ta có thể truy cập các phương thức của nó, chẳng hạn như , và hơn thế nữa. Chúng được gọi là các phương thức vì chúng được định nghĩa trong mô-đun. Tuy nhiên, tất cả chúng đều đã định nghĩa các hàm giống nhau mà chúng ta đã xử lý trong hướng dẫn này.

Ví dụ 12. Nhập mô-đun toán học và sử dụng phương pháp thích hợp để tìm căn bậc hai của 44.

def function_name[arg1, arg2,...,argN]:
    # function code
2

đầu ra

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

Trong một chương trình, các biến có thể hoặc không thể truy cập được trong mọi phần của chương trình. Các biến chỉ có thể truy cập được trong phạm vi của chúng và Python có bốn loại phạm vi biến [Cục bộ, Kèm theo, Toàn cầu, Tích hợp] giúp xây dựng nền tảng của quy tắc LEGB [thêm về điều này sau]

Phạm vi địa phương

Một biến được xác định trong một hàm chỉ có thể truy cập được trong hàm đó và tồn tại khi hàm đó đang thực thi. Có nghĩa là chúng ta không thể truy cập biến cục bộ của hàm bên ngoài phần thân của nó

Ví dụ 13. Xem xét ví dụ bên dưới.

def function_name[arg1, arg2,...,argN]:
    # function code
3

đầu ra

Từ đầu ra ở trên, việc truy cập biến cục bộ của hàm bên ngoài phần thân của nó đã tạo ra một ngoại lệ

Phạm vi kèm theo

Phạm vi kèm theo tồn tại trong các chức năng lồng nhau i. e. một hàm được định nghĩa bên trong một hàm khác

Như chúng ta sẽ thấy trong ví dụ bên dưới, trong một hàm lồng nhau, hàm cha giữ phạm vi cục bộ của nó [là phạm vi bao quanh của hàm con của nó] trong khi hàm con giữ phạm vi cục bộ của chính nó và dựa trên quy tắc LEGB, trình thông dịch Python trông

def function_name[arg1, arg2,...,argN]:
    # function code
4

Điều này có nghĩa là, cha mẹ không thể truy cập phạm vi cục bộ của con nhưng một đứa trẻ có thể truy cập phạm vi cục bộ của cha mẹ [là phạm vi kèm theo của nó] mặc dù hàm con là thành viên của phạm vi cục bộ của cha mẹ nó

Ví dụ 14. Xem đoạn mã dưới đây

def function_name[arg1, arg2,...,argN]:
    # function code
5

đầu ra

Phạm vi toàn cầu

Các biến được xác định ở cấp cao nhất của tập lệnh hoặc mô-đun hoặc chương trình của chúng tôi trở thành biến toàn cục và được truy cập ở bất kỳ đâu trong chương trình. e. bất kỳ hàm nào được xác định trong chương trình đó đều có thể truy cập các biến này

Ví dụ 15. Xem xét ví dụ bên dưới.

def function_name[arg1, arg2,...,argN]:
    # function code
6

đầu ra

NB. Trình thông dịch Python trước tiên tìm kiếm biến hello trong phạm vi cục bộ của hàm, nếu không tìm thấy, nó sẽ xem xét phạm vi kèm theo, nếu vẫn không có gì, thì nó sẽ xem xét phạm vi toàn cầu thực sự ở đâu .

từ khóa toàn cầu

Chúng ta đã thấy rằng một biến được định nghĩa trong một hàm là cục bộ của hàm đó và không thể truy cập được bên ngoài phần thân của nó. Từ khóa toàn cục xuất hiện khi chúng ta muốn truy cập biến cục bộ của hàm bên ngoài phần thân của nó. e. biến cục bộ của hàm thành toàn cục

Tất cả những gì chúng ta phải làm là khai báo biến cụ thể với từ khóa toàn cầu như bên dưới

def function_name[arg1, arg2,...,argN]:
    # function code
7

Ví dụ 16. Hãy sửa đổi ví dụ 13 để đặt biến cục bộ của hàm thành toàn cục và truy cập nó bên ngoài phần thân của nó.

def function_name[arg1, arg2,...,argN]:
    # function code
8

đầu ra

Phạm vi tích hợp

Phạm vi này là lớn nhất trong Python và nó chứa các hàm dựng sẵn, và các thuộc tính khác được xác định trước trong Python

Dựa trên quy tắc LEGB, phạm vi cuối cùng trình thông dịch Python sẽ tra cứu tên và nếu không tìm thấy, NameError sẽ xuất hiện. Điều này có nghĩa là bất kỳ biến nào được xác định trong phạm vi tích hợp đều có thể được truy cập ở bất kỳ đâu trong chương trình mà không cần chúng tôi xác định [không giống như phạm vi toàn cầu]

Ví dụ 17. Làm tròn số 43. 9853 đến hai chữ số thập phân.

def function_name[arg1, arg2,...,argN]:
    # function code
9

đầu ra

Câu lệnh trả về hàm

Trong Python, một câu lệnh return kết thúc quá trình thực thi hàm của nó và trả về một giá trị cụ thể cho người gọi nó

Vài điều mà chúng ta nên biết về báo cáo Return là

  • Chúng không thể được sử dụng bên ngoài một chức năng
  • Bất kỳ câu lệnh nào sau câu lệnh return đều bị bỏ qua
  • Câu lệnh trả về không có bất kỳ biểu thức nào trả về Không làm mặc định

Ví dụ 18. Tạo một hàm nhận hai số và trả về tổng của chúng.

def multiply[x, y]:
    print["Multiply {} and {}".format[x, y]]
    result = x * y
    return result

if __name__ == "__main__":
    answer = multiply[3,4]
    print["Answer: ", answer] 
0

đầu ra

Trả về nhiều giá trị

Một câu lệnh return không chỉ trả về một giá trị duy nhất. Nó có thể 'trả về' nhiều giá trị được xác định trong bất kỳ cấu trúc dữ liệu nào như bộ dữ liệu, danh sách, từ điển, v.v.

Ví dụ 19. Sửa ví dụ 18 để trả về tổng và tích của các số có hai đối số.

def multiply[x, y]:
    print["Multiply {} and {}".format[x, y]]
    result = x * y
    return result

if __name__ == "__main__":
    answer = multiply[3,4]
    print["Answer: ", answer] 
1

đầu ra

Trả về một chức năng

Một câu lệnh return cũng có thể trả về một hàm. Như chúng ta đã thấy trước đó trong hướng dẫn này, các hàm là các đối tượng bậc nhất và bậc cao hơn giúp chúng có thể được trả về từ câu lệnh return

Ví dụ 20. Đoạn mã dưới đây định nghĩa một hàm nhận một đối số và trả về một hàm nhận đối số thứ hai, sau đó tính tổng các số.

def multiply[x, y]:
    print["Multiply {} and {}".format[x, y]]
    result = x * y
    return result

if __name__ == "__main__":
    answer = multiply[3,4]
    print["Answer: ", answer] 
2

đầu ra

Các câu hỏi thường gặp

Câu hỏi 1] Bạn có thể trả về câu lệnh in bằng Python không?

Câu trả lời. Bản thân câu lệnh in “in” nội dung của nó ra bàn điều khiển và không trả lại bất kỳ thứ gì. Vì vậy, trả về câu lệnh in trước tiên sẽ thực thi câu lệnh in và trả về bất kỳ thứ gì được trả về từ câu lệnh in này

Tóm lại, trả về câu lệnh in sẽ trả về Không có

def multiply[x, y]:
    print["Multiply {} and {}".format[x, y]]
    result = x * y
    return result

if __name__ == "__main__":
    answer = multiply[3,4]
    print["Answer: ", answer] 
3

đầu ra

Q #2] Làm thế nào để bạn kết thúc một hàm mà không quay lại trong Python?

Câu trả lời. Các hàm Python luôn trả về một giá trị. Nếu không được xác định rõ ràng, nó sẽ trả về Không và thoát khỏi chức năng

Q #3] Có bao nhiêu loại hàm trong Python?

Câu trả lời

Trong Python, có 3 loại chức năng cụ thể là

  • Chức năng tích hợp sẵn
  • Hàm do người dùng định nghĩa
  • chức năng ẩn danh

Thông tin thêm về chức năng

Hàm là một khối mã được sử dụng để thực hiện một số hành động cụ thể. Một chức năng cung cấp khả năng sử dụng lại mã và mô đun cao hơn

Các chức năng giúp chia mã lớn thành các mô-đun nhỏ hơn

cú pháp

def multiply[x, y]:
    print["Multiply {} and {}".format[x, y]]
    result = x * y
    return result

if __name__ == "__main__":
    answer = multiply[3,4]
    print["Answer: ", answer] 
4

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

  • Khối chức năng phải luôn bắt đầu bằng từ khóa 'def, theo sau là tên chức năng và dấu ngoặc đơn
  • Chúng ta có thể chuyển bất kỳ số lượng tham số hoặc đối số nào bên trong dấu ngoặc đơn
  • Khối mã của mọi chức năng phải bắt đầu bằng dấu hai chấm [. ]
  • Câu lệnh 'return' tùy chọn để trả về giá trị từ hàm

Thí dụ

def multiply[x, y]:
    print["Multiply {} and {}".format[x, y]]
    result = x * y
    return result

if __name__ == "__main__":
    answer = multiply[3,4]
    print["Answer: ", answer] 
5

Chỉ cần xác định một chức năng là vô ích trừ khi bạn gọi nó

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

Khi cấu trúc của hàm được hoàn thiện, bạn có thể thực thi nó bằng cách gọi hàm bằng tên hàm

Thí dụ

def multiply[x, y]:
    print["Multiply {} and {}".format[x, y]]
    result = x * y
    return result

if __name__ == "__main__":
    answer = multiply[3,4]
    print["Answer: ", answer] 
6

đầu ra

Xin chào con trăn

Gọi hàm sử dụng tham số

Chúng ta có thể xác định bất kỳ số lượng tham số nào trong khi xác định hàm

cú pháp

def multiply[x, y]:
    print["Multiply {} and {}".format[x, y]]
    result = x * y
    return result

if __name__ == "__main__":
    answer = multiply[3,4]
    print["Answer: ", answer] 
7

Thí dụ

def multiply[x, y]:
    print["Multiply {} and {}".format[x, y]]
    result = x * y
    return result

if __name__ == "__main__":
    answer = multiply[3,4]
    print["Answer: ", answer] 
8

đầu ra

ngôn ngữ hiện tại là. con trăn
ngôn ngữ hiện tại là. Java

Tuyên bố trả lại

Một câu lệnh return được sử dụng để trả về một giá trị từ hàm

Thí dụ

def multiply[x, y]:
    print["Multiply {} and {}".format[x, y]]
    result = x * y
    return result

if __name__ == "__main__":
    answer = multiply[3,4]
    print["Answer: ", answer] 
9

đầu ra

tổng là. 5

đầu ra

Đối số chức năng

Trong python, chúng ta có thể gọi một hàm bằng 4 loại đối số

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

#1] Đối số bắt buộc

Đối số bắt buộc là đối số được truyền cho hàm theo thứ tự tuần tự, số lượng đối số được xác định trong hàm phải khớp với định nghĩa hàm

Thí dụ

def display[]: # no parameters in []
    print["Hello World!"]

if __name__ == '__main__':
    display[] # called without arguments
0

đầu ra

Tổng của hai số là. 11

đầu ra

#2] Đối số từ khóa

Khi chúng ta sử dụng các đối số từ khóa trong một lệnh gọi hàm, người gọi sẽ xác định các đối số theo tên đối số

Thí dụ

def display[]: # no parameters in []
    print["Hello World!"]

if __name__ == '__main__':
    display[] # called without arguments
1

đầu ra

ngôn ngữ hiện tại là. con trăn

đầu ra

#3] Đối số mặc định

Khi một hàm được gọi mà không có bất kỳ đối số nào, thì nó sẽ sử dụng đối số mặc định

Thí dụ

def display[]: # no parameters in []
    print["Hello World!"]

if __name__ == '__main__':
    display[] # called without arguments
2

đầu ra

Quốc gia hiện tại là. Newyork
Quốc gia hiện tại là. London
Quốc gia hiện tại là. Ấn Độ

đầu ra

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

Nếu bạn muốn xử lý nhiều đối số hơn trong một hàm so với những gì bạn đã chỉ định khi xác định hàm, thì có thể sử dụng các loại đối số này

ví dụ 1

Đối số không có từ khóa

def display[]: # no parameters in []
    print["Hello World!"]

if __name__ == '__main__':
    display[] # called without arguments
3

đầu ra

tổng là. 7
tổng là. 13
tổng là. 176

ví dụ 2

đối số từ khóa

def display[]: # no parameters in []
    print["Hello World!"]

if __name__ == '__main__':
    display[] # called without arguments
4

đầu ra

Tên là John
Tuổi là 20

Tên là John
Tuổi là 20
Điện thoại là 123456789

đầu ra

Phần kết luận

Trong hướng dẫn này, chúng ta đã xem xét các hàm do người dùng định nghĩa, đây là một loại hàm trong Python. Chúng ta đã thảo luận về một số thuộc tính của nó và xem tại sao chúng ta nên sử dụng các hàm

Chúng tôi cũng đã xem xét việc xác định các chức năng mà chúng tôi đã giải quyết. tham số, đối số, phạm vi biến và câu lệnh trả về

Chức năng gọi và gọi trong Python là gì?

Một hàm là một khối mã chỉ chạy khi nó được gọi . Bạn có thể truyền dữ liệu, được gọi là tham số, vào một hàm. Kết quả là một hàm có thể trả về dữ liệu.

Python có cho phép gọi hàm trước khi khai báo không?

Không thể . Python không cho gọi hàm trước khi khai báo như C. Điều này có thể thực hiện được ở một số ngôn ngữ như JavaScript nhưng không phải bằng Python. Điều này có nghĩa là Python không cho phép gọi trước khi khai báo.

Làm thế nào để gọi một hàm hoạt động trong Python?

00. 05 Để gọi một hàm—để sử dụng một hàm hoặc gọi, là các thuật ngữ khác mà chúng tôi sử dụng— bạn chỉ cần cung cấp tên của hàm và sau đó, đặt trong ngoặc đơn, các giá trị đối số—nếu có . 00. 18 Hàm không nhận đối số thì vẫn phải có dấu ngoặc. . 00:18 Even if the function doesn't take any arguments, you still have to have the parentheses.

Chủ Đề