Mục tiêu học tập
- Viết và thực hiện các hàm tùy chỉnh với nhiều tham số đầu vào trong Python.Python.
- Viết và thực hiện các chức năng tùy chỉnh với các tham số đầu vào tùy chọn trong Python.Python.
Nội phân Chính showShow
- Mục tiêu học tập
- Cách xác định một hàm với nhiều tham số trong Python
- Viết một chức năng với nhiều tham số trong Python
- Gọi các chức năng tùy chỉnh với nhiều tham số trong Python
- Kết hợp chuyển đổi đơn vị và tính toán thống kê thành một hàm
- Xác định các tham số đầu vào tùy chọn cho một hàm
- Kết hợp tải xuống và nhập các tệp dữ liệu vào một chức năng
- Làm cho các hàm hiệu quả hơn không phải lúc nào cũng có nghĩa là nhiều tham số hơn
- Thực hành viết các chức năng đa tham số
- Thực hành viết các chức năng đa tham số cho các mảng Numpy
Cách xác định một hàm với nhiều tham số trong Python
Viết một chức năng với nhiều tham số trong Python
Gọi các chức năng tùy chỉnh với nhiều tham số trong PythonPython, the required parameter can be defined using a placeholder variable, such as
# Call function with numeric values
multiply_values[x = 0.7, y = 25.4]
1, which represents the value or object that will be acted upon in the function.Kết hợp chuyển đổi đơn vị và tính toán thống kê thành một hàm
Xác định các tham số đầu vào tùy chọn cho một hàm
def function_name[data_1, data_2]:
Kết hợp tải xuống và nhập các tệp dữ liệu vào một chức năngnumpy array, pandas dataframe column].
Viết một chức năng với nhiều tham số trong Python
Gọi các chức năng tùy chỉnh với nhiều tham số trong Python
Kết hợp chuyển đổi đơn vị và tính toán thống kê thành một hàm
Xác định các tham số đầu vào tùy chọn cho một hàm
def multiply_values[x,y]:
Kết hợp tải xuống và nhập các tệp dữ liệu vào một chức năng
def multiply_values[x,y]:
z = x * y
return z
Làm cho các hàm hiệu quả hơn không phải lúc nào cũng có nghĩa là nhiều tham số hơn
def multiply_values[x,y]:
"""Calculate product of two inputs.
Parameters
----------
x : int or float
y : int or float
Returns
------
z : int or float
"""
z = x * y
return z
Gọi các chức năng tùy chỉnh với nhiều tham số trong Python
Kết hợp chuyển đổi đơn vị và tính toán thống kê thành một hàm
# Call function with numeric values
multiply_values[x = 0.7, y = 25.4]
Xác định các tham số đầu vào tùy chọn cho một hàm
# Average monthly precip [inches] for Jan in Boulder, CO
precip_jan_in = 0.7
# Conversion factor from inches to millimeters
to_mm = 25.4
# Call function with pre-defined variables
precip_jan_mm = multiply_values[
x = precip_jan_in,
y = to_mm]
precip_jan_mm
Kết hợp tải xuống và nhập các tệp dữ liệu vào một chức năng
Kết hợp chuyển đổi đơn vị và tính toán thống kê thành một hàm
Xác định các tham số đầu vào tùy chọn cho một hàmnumpy array from millimeters to inches and calculate the mean value along a specified axis for either columns or rows.
Kết hợp tải xuống và nhập các tệp dữ liệu vào một chức năng
def mm_to_in[mm]:
"""Convert input from millimeters to inches.
Parameters
----------
mm : int or float
Numeric value with units in millimeters.
Returns
------
inches : int or float
Numeric value with units in inches.
"""
inches = mm / 25.4
return inches
Làm cho các hàm hiệu quả hơn không phải lúc nào cũng có nghĩa là nhiều tham số hơnnumpy arrays as needed.
Thực hành viết các chức năng đa tham số
Thực hành viết các chức năng đa tham số cho các mảng Numpy
- Trước đây trong sách giáo khoa này, bạn đã học được rằng một tham số đầu vào là thông tin cần thiết mà bạn chuyển đến chức năng để nó chạy thành công. Hàm sẽ lấy giá trị hoặc đối tượng được cung cấp làm tham số đầu vào và sử dụng nó để thực hiện một số tác vụ.
- Bạn cũng đã học được rằng trong Python, tham số cần thiết có thể được xác định bằng cách sử dụng biến trình giữ chỗ, chẳng hạn như
1, đại diện cho giá trị hoặc đối tượng sẽ được thực hiện trong hàm.# Call function with numeric values multiply_values[x = 0.7, y = 25.4]
Tuy nhiên, đôi khi bạn có thể cần thêm thông tin cho chức năng để chạy thành công.
def mean_mm_to_in_arr[arr_mm, axis_value]:
May mắn thay, bạn có thể viết các chức năng có nhiều tham số bằng cách xác định càng nhiều tham số cần thiết, ví dụ:
Khi hàm được gọi, người dùng có thể cung cấp bất kỳ giá trị nào cho
# Call function with numeric values
multiply_values[x = 0.7, y = 25.4]
2 hoặc # Call function with numeric values
multiply_values[x = 0.7, y = 25.4]
3 mà hàm có thể lấy làm đầu vào cho tham số đó [ví dụ: biến giá trị đơn, danh sách, mảng numpy, cột DataFrame của Pandas].def mean_mm_to_in_arr[arr_mm, axis_value]:
mean_arr_mm = np.mean[arr_mm, axis = axis_value]
Hãy tưởng tượng rằng bạn muốn xác định một hàm sẽ lấy hai giá trị số làm đầu vào và trả về sản phẩm của các giá trị đầu vào này [nghĩa là nhân các giá trị].
def multiply_values[x,y]:
0Bắt đầu với từ khóa
# Call function with numeric values
multiply_values[x = 0.7, y = 25.4]
4 và tên hàm, giống như bạn có trước đây để xác định hàm:Cuối cùng, bao gồm một tài liệu để cung cấp các chi tiết về chức năng này, bao gồm một mô tả ngắn gọn về hàm [nghĩa là cách thức hoạt động, mục đích] cũng như xác định các tham số đầu vào [tức là loại, mô tả] và đầu ra được trả về [nghĩa là loại, mô tả ].
def multiply_values[x,y]:
1Bây giờ bạn đã xác định
# Call function with numeric values
multiply_values[x = 0.7, y = 25.4]
8, bạn có thể gọi hàm với các tham số đầu vào thích hợp.Tạo một số dữ liệu và kiểm tra chức năng mới của bạn với các giá trị đầu vào khác nhau cho tham số
# Call function with numeric values
multiply_values[x = 0.7, y = 25.4]
9.def multiply_values[x,y]:
2def multiply_values[x,y]:
3def multiply_values[x,y]:
4def multiply_values[x,y]:
5def multiply_values[x,y]:
6def multiply_values[x,y]:
7Xác định các tham số đầu vào tùy chọn cho một hàm
Chức năng được xác định trước đó của bạn hoạt động tốt nếu bạn muốn sử dụng một trục được chỉ định cho giá trị trung bình.
Tuy nhiên, hãy chú ý những gì xảy ra khi bạn cố gắng gọi hàm mà không cung cấp giá trị trục, chẳng hạn như cho một mảng một chiều.
def multiply_values[x,y]:
8def multiply_values[x,y]:
9Bạn gặp lỗi mà
# Call function with numeric values
multiply_values[x = 0.7, y = 25.4]
9 bị thiếu:def multiply_values[x,y]:
z = x * y
return z
0Điều gì sẽ xảy ra nếu bạn muốn làm cho chức năng trở nên khái quát hơn, để giá trị trục là tùy chọn?
Bạn có thể làm điều đó bằng cách chỉ định giá trị mặc định cho
# Call function with numeric values
multiply_values[x = 0.7, y = 25.4]
9 là # Average monthly precip [inches] for Jan in Boulder, CO
precip_jan_in = 0.7
# Conversion factor from inches to millimeters
to_mm = 25.4
2 như được hiển thị bên dưới:def multiply_values[x,y]:
z = x * y
return z
1Hàm sẽ cho rằng giá trị trục là
# Average monthly precip [inches] for Jan in Boulder, CO
precip_jan_in = 0.7
# Conversion factor from inches to millimeters
to_mm = 25.4
2 [nghĩa là giá trị đầu vào không được cung cấp bởi người dùng], trừ khi được chỉ định khác trong lệnh gọi hàm.Tuy nhiên, như đã viết, mã hàm gốc sử dụng giá trị trục để tính giá trị trung bình, do đó bạn cần thực hiện thêm một vài thay đổi, để mã trung bình chạy với giá trị trục nếu một giá trị được cung cấp hoặc chạy mà không có giá trị trục nếu một không được cung cấp.
May mắn thay, bạn đã tìm hiểu về các câu lệnh có điều kiện, bây giờ bạn có thể thêm vào chức năng của mình để chạy mã trung bình có hoặc không có giá trị trục khi cần thiết.
Sử dụng một câu lệnh có điều kiện, bạn có thể kiểm tra xem
# Call function with numeric values
multiply_values[x = 0.7, y = 25.4]
9 có bằng # Average monthly precip [inches] for Jan in Boulder, CO
precip_jan_in = 0.7
# Conversion factor from inches to millimeters
to_mm = 25.4
2 không, trong trường hợp đó, mã trung bình sẽ chạy mà không có giá trị trục.def multiply_values[x,y]:
z = x * y
return z
2Câu lệnh
# Average monthly precip [inches] for Jan in Boulder, CO
precip_jan_in = 0.7
# Conversion factor from inches to millimeters
to_mm = 25.4
6 có nghĩa là # Call function with numeric values
multiply_values[x = 0.7, y = 25.4]
9 không bằng # Average monthly precip [inches] for Jan in Boulder, CO
precip_jan_in = 0.7
# Conversion factor from inches to millimeters
to_mm = 25.4
2 [nghĩa là người dùng đã cung cấp giá trị đầu vào] và do đó sẽ chạy mã trung bình với giá trị trục được chỉ định.def multiply_values[x,y]:
z = x * y
return z
3Mã chuyển đổi đơn vị và
# Call function with numeric values
multiply_values[x = 0.7, y = 25.4]
5 vẫn giữ nguyên, chỉ với các tên được cập nhật:def multiply_values[x,y]:
z = x * y
return z
4Cuối cùng, bao gồm một tài liệu để cung cấp các chi tiết về chức năng sửa đổi này. Lưu ý rằng giá trị trục đã được dán nhãn tùy chọn trong DocString.
def multiply_values[x,y]:
z = x * y
return z
5Lưu ý rằng hàm sẽ trả về cùng đầu ra như trước đối với mảng hai chiều
# Call function with pre-defined variables
precip_jan_mm = multiply_values[
x = precip_jan_in,
y = to_mm]
precip_jan_mm
0.def multiply_values[x,y]:
4def multiply_values[x,y]:
5Tuy nhiên, bây giờ bạn cũng có thể cung cấp một mảng một chiều làm đầu vào mà không có trục được chỉ định và nhận đầu ra thích hợp.
def multiply_values[x,y]:
z = x * y
return z
8Kết hợp tải xuống và nhập các tệp dữ liệu vào một chức năng
Bạn cũng có thể viết các chức năng đa tham số để kết hợp các tác vụ khác vào một chức năng, chẳng hạn như tải xuống và nhập các tệp dữ liệu vào khung dữ liệu gấu trúc.pandas dataframe.
Hãy suy nghĩ về mã mà bạn cần đưa vào chức năng:
- Tải xuống tệp dữ liệu từ URL:
1# Call function with pre-defined variables precip_jan_mm = multiply_values[ x = precip_jan_in, y = to_mm] precip_jan_mm
- Nhập tệp dữ liệu vào Pandas DataFrame:
2pandas dataframe:# Call function with pre-defined variables precip_jan_mm = multiply_values[ x = precip_jan_in, y = to_mm] precip_jan_mm
2# Call function with pre-defined variables precip_jan_mm = multiply_values[ x = precip_jan_in, y = to_mm] precip_jan_mm
Từ mã này, bạn có thể thấy rằng bạn sẽ cần hai tham số đầu vào cho hàm kết hợp:
- URL vào tệp dữ liệu
- đường dẫn đến tệp đã tải xuống
Bắt đầu bằng cách chỉ định tên hàm và tên biến trình giữ chỗ cho các tham số đầu vào cần thiết.
def multiply_values[x,y]:
z = x * y
return z
9Tiếp theo, thêm mã để tải xuống và nhập.
def multiply_values[x,y]:
"""Calculate product of two inputs.
Parameters
----------
x : int or float
y : int or float
Returns
------
z : int or float
"""
z = x * y
return z
0Tuy nhiên, điều gì sẽ xảy ra nếu thư mục làm việc chưa được đặt trước khi hàm này được gọi và bạn không muốn sử dụng các đường dẫn tuyệt đối?
Vì bạn biết rằng hàm
# Call function with pre-defined variables
precip_jan_mm = multiply_values[
x = precip_jan_in,
y = to_mm]
precip_jan_mm
3 tạo thư mục # Call function with pre-defined variables
precip_jan_mm = multiply_values[
x = precip_jan_in,
y = to_mm]
precip_jan_mm
4 trong thư mục nhà nếu nó chưa tồn tại, bạn có thể giả định rằng chức năng kết hợp này cũng sẽ tạo ra thư mục đó.Do đó, bạn có thể bao gồm việc thiết lập thư mục làm việc trong chức năng, để bạn không phải lo lắng về việc cung cấp các đường dẫn tuyệt đối cho chức năng:
def multiply_values[x,y]:
"""Calculate product of two inputs.
Parameters
----------
x : int or float
y : int or float
Returns
------
z : int or float
"""
z = x * y
return z
1Cuối cùng, bao gồm một tài liệu để cung cấp các chi tiết về chức năng này, bao gồm một mô tả ngắn gọn về hàm [nghĩa là cách thức hoạt động, mục đích] cũng như xác định các tham số đầu vào [tức là loại, mô tả] và đầu ra được trả về [nghĩa là loại, mô tả ].
def multiply_values[x,y]:
"""Calculate product of two inputs.
Parameters
----------
x : int or float
y : int or float
Returns
------
z : int or float
"""
z = x * y
return z
2Bây giờ bạn đã xác định chức năng, bạn có thể nhập các gói cần thiết để chạy chức năng và xác định các biến mà bạn sẽ sử dụng làm tham số đầu vào.
def multiply_values[x,y]:
"""Calculate product of two inputs.
Parameters
----------
x : int or float
y : int or float
Returns
------
z : int or float
"""
z = x * y
return z
3def multiply_values[x,y]:
"""Calculate product of two inputs.
Parameters
----------
x : int or float
y : int or float
Returns
------
z : int or float
"""
z = x * y
return z
4Sử dụng các biến này, giờ đây bạn có thể gọi chức năng để tải xuống và nhập tệp vào khung dữ liệu gấu trúc.pandas dataframe.
def multiply_values[x,y]:
"""Calculate product of two inputs.
Parameters
----------
x : int or float
y : int or float
Returns
------
z : int or float
"""
z = x * y
return z
5def multiply_values[x,y]:
"""Calculate product of two inputs.
Parameters
----------
x : int or float
y : int or float
Returns
------
z : int or float
"""
z = x * y
return z
6Tháng một | 1.07 | 0.27 | Mùa đông |
Tháng Hai | 0.44 | 1.13 | Mùa đông |
Tháng Hai | 1.50 | 1.72 | MAR |
Mùa xuân | 0.20 | 4.14 | MAR |
Mùa xuân | 3.20 | 2.66 | MAR |
Mùa xuân | 1.18 | 0.61 | APR |
Có thể | 0.09 | 1.03 | APR |
Có thể | 1.44 | 1.40 | Mùa hè |
SEPT | 1.52 | 18.16 | Rơi |
Tháng 10 | 2.44 | 2.24 | Rơi |
Tháng 10 | 0.78 | 0.29 | Rơi |
Tháng 10 | 0.02 | 0.50 | Nov |
Tháng mười hai
Mùa đông
Làm cho các hàm hiệu quả hơn không phải lúc nào cũng có nghĩa là nhiều tham số hơn
Lưu ý rằng trước đây bạn đã xác định
# Call function with pre-defined variables
precip_jan_mm = multiply_values[
x = precip_jan_in,
y = to_mm]
precip_jan_mm
5 để lấy hai tham số, một cho URL và cho đường dẫn và hàm hoạt động tốt để hoàn thành nhiệm vụ.def multiply_values[x,y]:
"""Calculate product of two inputs.
Parameters
----------
x : int or float
y : int or float
Returns
------
z : int or float
"""
z = x * y
return z
7Tuy nhiên, với một cuộc điều tra nhỏ về chức năng
# Call function with pre-defined variables
precip_jan_mm = multiply_values[
x = precip_jan_in,
y = to_mm]
precip_jan_mm
6, bạn có thể thấy rằng đầu ra của chức năng đó thực sự là một đường dẫn đến tệp đã tải xuống!Trong các chi tiết DocString được cung cấp, bạn có thể thấy rằng đường dẫn đầy đủ đến dữ liệu đã tải xuống được trả về bởi chức năng:
def multiply_values[x,y]:
"""Calculate product of two inputs.
Parameters
----------
x : int or float
y : int or float
Returns
------
z : int or float
"""
z = x * y
return z
8Điều này có nghĩa là bạn có thể xác định lại
# Call function with pre-defined variables
precip_jan_mm = multiply_values[
x = precip_jan_in,
y = to_mm]
precip_jan_mm
5 để hiệu quả hơn bằng cách sử dụng đầu ra của hàm # Call function with pre-defined variables
precip_jan_mm = multiply_values[
x = precip_jan_in,
y = to_mm]
precip_jan_mm
6 làm đầu vào cho hàm # Call function with pre-defined variables
precip_jan_mm = multiply_values[
x = precip_jan_in,
y = to_mm]
precip_jan_mm
9.Bây giờ, bạn thực sự chỉ cần một tham số cho URL và bạn không phải xác định thư mục làm việc trong hàm, để tìm tệp thích hợp.
Chức năng sửa đổi của bạn bây giờ chỉ thực hiện một dòng, thay vì ba dòng! Lưu ý rằng DocString cũng được cập nhật để phản ánh rằng chỉ có một tham số đầu vào cho hàm này.tháng | 1.07 | 0.27 | Nov |
Tháng mười hai | 0.44 | 1.13 | Nov |
Tháng mười hai | 1.50 | 1.72 | Mùa đông |
Làm cho các hàm hiệu quả hơn không phải lúc nào cũng có nghĩa là nhiều tham số hơn | 0.20 | 4.14 | Mùa đông |
Làm cho các hàm hiệu quả hơn không phải lúc nào cũng có nghĩa là nhiều tham số hơn | 3.20 | 2.66 | Mùa đông |
Làm cho các hàm hiệu quả hơn không phải lúc nào cũng có nghĩa là nhiều tham số hơn | 1.18 | 0.61 | Mùa hè |
Lưu ý rằng trước đây bạn đã xác định 5 để lấy hai tham số, một cho URL và cho đường dẫn và hàm hoạt động tốt để hoàn thành nhiệm vụ. | 0.09 | 1.03 | Mùa hè |
Tuy nhiên, với một cuộc điều tra nhỏ về chức năng 6, bạn có thể thấy rằng đầu ra của chức năng đó thực sự là một đường dẫn đến tệp đã tải xuống! | 1.44 | 1.40 | Mùa hè |
SEPT | 1.52 | 18.16 | Rơi |
Tháng 10 | 2.44 | 2.24 | Rơi |
Tháng 10 | 0.78 | 0.29 | Rơi |
Tháng 10 | 0.02 | 0.50 | Nov |
Tháng mười hai
Mùa đôngnumpy array.
Làm cho các hàm hiệu quả hơn không phải lúc nào cũng có nghĩa là nhiều tham số hơnpandas dataframe, but now converting from inches to millimeters?
Lưu ý rằng trước đây bạn đã xác định
# Call function with pre-defined variables
precip_jan_mm = multiply_values[
x = precip_jan_in,
y = to_mm]
precip_jan_mm
5 để lấy hai tham số, một cho URL và cho đường dẫn và hàm hoạt động tốt để hoàn thành nhiệm vụ.numpy array] with the following code:# Call function with numeric values
multiply_values[x = 0.7, y = 25.4]
0Tuy nhiên, với một cuộc điều tra nhỏ về chức năng
# Call function with pre-defined variables
precip_jan_mm = multiply_values[
x = precip_jan_in,
y = to_mm]
precip_jan_mm
6, bạn có thể thấy rằng đầu ra của chức năng đó thực sự là một đường dẫn đến tệp đã tải xuống!Trong các chi tiết DocString được cung cấp, bạn có thể thấy rằng đường dẫn đầy đủ đến dữ liệu đã tải xuống được trả về bởi chức năng:
Điều này có nghĩa là bạn có thể xác định lại
# Call function with pre-defined variables
precip_jan_mm = multiply_values[
x = precip_jan_in,
y = to_mm]
precip_jan_mm
5 để hiệu quả hơn bằng cách sử dụng đầu ra của hàm # Call function with pre-defined variables
precip_jan_mm = multiply_values[
x = precip_jan_in,
y = to_mm]
precip_jan_mm
6 làm đầu vào cho hàm # Call function with pre-defined variables
precip_jan_mm = multiply_values[
x = precip_jan_in,
y = to_mm]
precip_jan_mm
9.pandas dataframe.Bây giờ, bạn thực sự chỉ cần một tham số cho URL và bạn không phải xác định thư mục làm việc trong hàm, để tìm tệp thích hợp.pandas series.
Chức năng sửa đổi của bạn bây giờ chỉ thực hiện một dòng, thay vì ba dòng! Lưu ý rằng DocString cũng được cập nhật để phản ánh rằng chỉ có một tham số đầu vào cho hàm này.
Bây giờ bạn có thể gọi chức năng chỉ với một tham số duy nhất cho URL.pandas dataframe, you can modify the function for other data structures such as a numpy array.
def multiply_values[x,y]:
"""Calculate product of two inputs.
Parameters
----------
x : int or float
y : int or float
Returns
------
z : int or float
"""
z = x * y
return z
9numpy arrays?thángnumpy array.
các mùa
Tháng một