Các nguyên tắc cơ bản của các hàm Python, bao gồm chúng là gì, cú pháp của chúng, các phần chính của chúng, từ khóa trả về và các loại chính, sẽ được đề cập trong hướng dẫn này. Ngoài ra, chúng ta sẽ kiểm tra một số ví dụ về định nghĩa hàm Python
Hàm Python là gì?
Hàm là một tập hợp các xác nhận có liên quan thực hiện một phép toán, phân tích hoặc đánh giá. Một tập hợp các câu lệnh có tên Hàm Python trả về tác vụ cụ thể. Các hàm Python rất đơn giản để xác định và cần thiết cho lập trình cấp trung cấp. Các tiêu chí chính xác áp dụng cho tên hàm cũng như đối với tên biến. Mục tiêu là nhóm một số hành động thường được thực hiện và xác định một chức năng. Chúng ta có thể gọi hàm và sử dụng lại mã có trong nó với các biến khác nhau thay vì tạo nhiều lần cùng một khối mã cho các biến đầu vào khác nhau
Hàm do người dùng định nghĩa và hàm tích hợp là hai loại hàm chính trong Python. Nó giúp duy trì chương trình ngắn gọn, độc đáo và có cấu trúc tốt
Ưu điểm của Hàm trong Python
Các hàm Python có các Đặc quyền sau
- Bằng cách bao gồm các chức năng, chúng ta có thể ngăn lặp đi lặp lại cùng một khối mã trong một chương trình
- Các hàm Python sau khi được định nghĩa có thể được gọi nhiều lần và từ bất kỳ đâu trong chương trình
- Nếu chương trình Python của chúng tôi lớn, nó có thể được tách thành nhiều hàm để dễ theo dõi
- Thành tựu quan trọng của các hàm Python là chúng ta có thể trả về bao nhiêu đầu ra tùy thích với các đối số khác nhau
Tuy nhiên, việc gọi các hàm luôn được sử dụng trong chương trình Python
Cú pháp hàm Python
Các phần tử sau tạo thành để xác định một hàm, như đã thấy ở trên
- Phần đầu của tiêu đề hàm được chỉ định bởi một từ khóa có tên là def
- function_name là tên của hàm mà chúng ta có thể sử dụng để phân biệt nó với những cái khác. Chúng ta sẽ sử dụng tên này để gọi hàm sau này trong chương trình. Trong Python, các hàm đặt tên phải tuân theo các quy tắc giống như đặt tên biến
- Chúng tôi truyền đối số cho hàm đã xác định bằng cách sử dụng tham số. Tuy nhiên, chúng là tùy chọn
- Tiêu đề hàm được kết thúc bằng dấu hai chấm [. ]
- Chúng ta có thể sử dụng một chuỗi tài liệu gọi là docstring ở dạng ngắn để giải thích mục đích của chức năng
- Phần thân của hàm được tạo thành từ một số câu lệnh Python hợp lệ. Độ sâu thụt đầu dòng của toàn bộ khối mã phải giống nhau [thường là 4 dấu cách]
- Chúng ta có thể sử dụng biểu thức trả về để trả về một giá trị từ một hàm đã xác định
Ví dụ về hàm do người dùng xác định
Chúng ta sẽ định nghĩa một hàm mà khi được gọi sẽ trả về bình phương của số được truyền cho nó dưới dạng đối số
Mã số
đầu ra
The square of the given number is: 36
Gọi một chức năng
Một hàm được xác định bằng cách sử dụng từ khóa def và đặt tên cho nó, chỉ định các đối số phải được truyền cho hàm và cấu trúc khối mã
Sau khi khung cơ bản của hàm hoàn tất, chúng ta có thể gọi nó từ bất kỳ đâu trong chương trình. Sau đây là một ví dụ về cách sử dụng hàm a_function
Mã số
đầu ra
Length of the string Functions is: 9 Length of the string Python is: 6
Vượt qua Tham chiếu vs. Vượt qua giá trị
Tất cả các tham số trong ngôn ngữ lập trình Python được cung cấp bằng cách tham khảo. Nó chỉ ra rằng nếu chúng ta thay đổi giá trị của một đối số bên trong một hàm, thì hàm gọi cũng sẽ phản ánh sự thay đổi đó. Ví dụ,
Mã số
đầu ra
Squares of the list are: [289, 2704, 64]
Đối số chức năng
Sau đây là các loại đối số mà chúng ta có thể sử dụng để gọi một hàm
- đối số mặc định
- Đối số từ khóa
- Đối số bắt buộc
- Đối số có độ dài thay đổi
1] Đối số mặc định
Đối số mặc định là một loại tham số nhận giá trị mặc định đầu vào nếu không có giá trị nào được cung cấp cho đối số khi hàm được gọi. Các đối số mặc định được thể hiện trong ví dụ sau
Mã số
đầu ra
Passing only one argument number 1 is: 30 number 2 is: 20 Passing two arguments number 1 is: 50 number 2 is: 30
2] Đối số từ khóa
Các đối số của một hàm được gọi là được liên kết với các đối số từ khóa. Khi gọi một hàm với các đối số từ khóa, người dùng có thể biết đó là giá trị tham số nào bằng cách nhìn vào nhãn tham số
Chúng ta có thể loại bỏ một số đối số hoặc sắp xếp chúng theo một thứ tự khác vì trình thông dịch Python sẽ kết nối các từ khóa được cung cấp để liên kết các giá trị với các tham số của nó. Một cách khác để sử dụng từ khóa để gọi phương thức function[] như sau
Mã số
đầu ra
Without using keyword number 1 is: 50 number 2 is: 30 With using keyword number 1 is: 30 number 2 is: 50
3] Đối số bắt buộc
Các đối số được cung cấp cho một hàm trong khi gọi theo trình tự vị trí được xác định trước là các đối số bắt buộc. Số đối số bắt buộc trong lệnh gọi phương thức phải bằng với số đối số được cung cấp khi định nghĩa hàm
Chúng ta phải gửi hai đối số đến hàm function[] theo đúng thứ tự, nếu không nó sẽ trả về lỗi cú pháp, như bên dưới
Mã số
đầu ra
Passing out of order arguments number 1 is: 30 number 2 is: 20 Passing only one argument Function needs two positional arguments
4] Đối số có độ dài thay đổi
Chúng ta có thể sử dụng các ký tự đặc biệt trong các hàm Python để truyền bao nhiêu đối số mà chúng ta muốn trong một hàm. Có hai loại ký tự mà chúng ta có thể sử dụng cho mục đích này
- *args -Đây là các đối số không phải từ khóa
- **kwargs -Đây là các Đối số Từ khoá
Dưới đây là một ví dụ để làm rõ các đối số Độ dài thay đổi
Mã số
đầu ra
['PYTHON', 'FUNCTIONS', 'TUTORIAL'] [['First', 'Python'], ['Second', 'Functions'], ['Third', 'Tutorial']]
tuyên bố trở lại
Chúng ta viết một câu lệnh return trong một hàm để rời khỏi một hàm và đưa ra giá trị được tính toán khi một hàm xác định được gọi
cú pháp
Câu lệnh trả về, được cung cấp dưới dạng đầu ra khi một công việc hoặc chức năng cụ thể kết thúc, có thể ở dạng một đối số, một câu lệnh hoặc một giá trị. Một hàm được khai báo sẽ trả về một đối tượng Không có nếu không có câu lệnh trả về nào được viết
Dưới đây là một ví dụ về câu lệnh trả về trong các hàm Python
Mã số
đầu ra
With return statement 2704 Without return statement None
Các chức năng ẩn danh
Các loại hàm Python này là ẩn danh vì chúng tôi không khai báo chúng, vì chúng tôi khai báo các hàm thông thường, sử dụng từ khóa def. Chúng ta có thể sử dụng từ khóa lambda để xác định các hàm ẩn danh, đầu ra đơn, ngắn
Biểu thức lambda có thể chấp nhận số lượng đối số không giới hạn; . Họ không thể có nhiều biểu thức hoặc hướng dẫn trong đó. Vì lambda cần một biểu thức, một hàm ẩn danh không thể được gọi trực tiếp để in
Các hàm lambda chứa miền cục bộ duy nhất của chúng, nghĩa là chúng chỉ có thể tham chiếu các biến trong danh sách đối số và tên miền toàn cầu
Mặc dù các biểu thức lambda dường như là biểu diễn một dòng của hàm, nhưng chúng không giống như các biểu thức nội tuyến trong C và C++, chuyển các phân bổ ngăn xếp hàm khi thực thi vì lý do hiệu quả
cú pháp
Các hàm lambda có đúng một dòng trong cú pháp của chúng
Dưới đây là hình minh họa cách sử dụng hàm lambda
Mã số
đầu ra
________số 8_______
Phạm vi và thời gian tồn tại của các biến
Phạm vi của một biến đề cập đến miền của một chương trình bất cứ nơi nào nó được khai báo. Không thể truy cập đối số và biến của hàm bên ngoài hàm đã xác định. Do đó, họ chỉ có một miền địa phương
Tuổi thọ của một biến trong RAM là thời gian nó tồn tại ở đó. Tuổi thọ của một hàm cũng giống như tuổi thọ của các biến nội bộ của nó. Chúng được lấy đi sau khi chúng tôi thoát khỏi chức năng. Do đó, một hàm không giữ giá trị của một biến từ các lần thực hiện trước đó
Đây là một ví dụ đơn giản về phạm vi của một biến trong một hàm
Mã số
đầu ra
Value of num inside the function: 50 Value of num outside the function: 10
Ở đây, chúng ta có thể thấy rằng num bắt đầu với giá trị là 10. Giá trị của num bên ngoài hàm vẫn nguyên vẹn mặc dù hàm number[] đã thay đổi giá trị của num thành 50
Điều này là do biến nội bộ của hàm num khác với biến bên ngoài [cục bộ của hàm]. Mặc dù có cùng tên biến nhưng chúng là hai biến riêng biệt với phạm vi riêng biệt
Ngược lại, các biến bên ngoài chức năng có thể truy cập được bên trong chức năng. Các biến này có phạm vi tiếp cận toàn cầu. Chúng ta có thể truy xuất các giá trị của chúng bên trong hàm nhưng không thể thay đổi hoặc thay đổi chúng. Nếu chúng ta khai báo một biến toàn cục bằng cách sử dụng từ khóa toàn cầu, chúng ta cũng có thể thay đổi giá trị của biến bên ngoài hàm
Chức năng Python trong một chức năng khác
Hàm được coi là đối tượng hạng nhất trong Python. Trong một ngôn ngữ lập trình, các đối tượng hạng nhất được đối xử như nhau ở bất cứ nơi nào chúng được sử dụng. Chúng có thể được sử dụng trong các biểu thức điều kiện, làm đối số và được lưu trong cấu trúc dữ liệu tích hợp. Một ngôn ngữ lập trình được coi là triển khai các hàm hạng nhất nếu nó coi các hàm là đối tượng hạng nhất. Khái niệm về các hàm First Class được hỗ trợ bởi Python
Hàm bên trong hoặc lồng nhau đề cập đến một hàm được xác định trong một hàm được xác định khác. Các chức năng bên trong có thể truy cập các tham số của phạm vi bên ngoài. Các chức năng bên trong được xây dựng để bảo vệ chúng khỏi những thay đổi xảy ra bên ngoài chức năng. Nhiều nhà phát triển coi quá trình này là đóng gói