Hướng dẫn input parameters in python - tham số đầu vào trong python

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ư
    # Call function with numeric values
    multiply_values[x = 0.7, y = 25.4]
    
    1, đại diện cho giá trị hoặc đối tượng sẽ được thực hiện trong hàm.

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]:
0

Bắ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]:
1

Bâ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]:
2
def multiply_values[x,y]:
3
def multiply_values[x,y]:
4
def multiply_values[x,y]:
5
def multiply_values[x,y]:
6
def multiply_values[x,y]:
7

Xá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]:
8
def multiply_values[x,y]:
9

Bạ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
1

Hà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
2

Câ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
3

Mã 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
4

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 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
5

Lư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]:
4
def multiply_values[x,y]:
5

Tuy 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
8

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

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:

  1. Tải xuống tệp dữ liệu từ URL:
    # Call function with pre-defined variables
    precip_jan_mm = multiply_values[
        x = precip_jan_in, 
        y = to_mm]
    
    precip_jan_mm
    
    1
  2. Nhập tệp dữ liệu vào Pandas DataFrame:
    # Call function with pre-defined variables
    precip_jan_mm = multiply_values[
        x = precip_jan_in, 
        y = to_mm]
    
    precip_jan_mm
    
    2pandas dataframe:
    # Call function with pre-defined variables
    precip_jan_mm = multiply_values[
        x = precip_jan_in, 
        y = to_mm]
    
    precip_jan_mm
    
    2

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:

  1. URL vào tệp dữ liệu
  2. đườ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
9

Tiế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
0

Tuy 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
1

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]:
    """Calculate product of two inputs. 
    
    Parameters
    ----------
    x : int or float
    y : int or float

    Returns
    ------
    z : int or float
    """
    z = x * y
    return z
2

Bâ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
3
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
4

Sử 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
5
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
6thángprecip_2002precip_2013các mùa01234567891011
Tháng một1.07 0.27 Mùa đông
Tháng Hai0.44 1.13 Mùa đông
Tháng Hai1.50 1.72 MAR
Mùa xuân0.20 4.14 MAR
Mùa xuân3.20 2.66 MAR
Mùa xuân1.18 0.61 APR
Có thể0.09 1.03 APR
Có thể1.44 1.40 Mùa hè
SEPT1.52 18.16 Rơi
Tháng 102.44 2.24 Rơi
Tháng 100.78 0.29 Rơi
Tháng 100.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
7

Tuy 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.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.precip_2002precip_2013
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
901234567891011
tháng1.07 0.27 Nov
Tháng mười hai0.44 1.13 Nov
Tháng mười hai1.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ơn0.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ơn3.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ơn1.18 0.61 Mùa hè
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ụ.
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
# 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!
1.44 1.40 Mùa hè
SEPT1.52 18.16 Rơi
Tháng 102.44 2.24 Rơi
Tháng 100.78 0.29 Rơi
Tháng 100.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]
0

Tuy 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

Bài Viết Liên Quan

Chủ Đề