Skip to content

形参和实参

面试题目

  • 级别: L1
  • 知识模块: Python 编程语言

形参和实参

公司

  • 小米外包

招聘类型

社招

题目解析

形参(Formal Parameters):

  1. 形参是在函数定义时声明的变量。
  2. 形参在函数体内被使用,等待实参传递进来。
  3. 形参在函数定义的括号内列出,并且在函数调用之前没有实际的值。
def add(a, b):  # 这里的 a 和 b 是形参
    return a + b

实参(Actual Parameters):

  1. 实参是在函数调用时传递给函数的实际值。
  2. 实参赋值给对应的形参,在函数体内使用。
  3. 实参可以是任何表达式,包括变量、字面值、甚至是另一个函数的返回值。
result = add(2, 3)  # 这里的 2 和 3 是实参
print(result)  # 输出结果为 5

形参和实参的匹配:在函数调用时,Python 会将实参按照位置或关键字传递给形参。

def greet(name, message):
    print(f"Hello, {name}! {message}")

greet("Alice", "Good morning!")  # 输出:Hello, Alice! Good morning!

位置参数:按照顺序将实参传递给形参。

def greet(name, message):
    print(f"Hello, {name}! {message}")

greet("Alice", "Good morning!")  # 输出:Hello, Alice! Good morning!

关键字参数:使用参数名进行传递,顺序可以不一致。

greet(message="Good evening!", name="Bob")  # 输出:Hello, Bob! Good evening!

默认参数值:在函数定义时,可以为形参设置默认值,如果调用时没有提供对应的实参,形参将使用默认值。

def greet(name, message="Hello!"):
    print(f"{message}, {name}")

greet("Charlie")  # 输出:Hello!, Charlie
greet("Dave", "Hi")  # 输出:Hi, Dave

可变数量的参数:Python 允许函数接受可变数量的参数,使用 *args 和 **kwargs。

  • *args 用于接收多个位置参数,作为一个元组传递。
def sum_all(*args):
    return sum(args)

print(sum_all(1, 2, 3, 4))  # 输出:10
  • **kwargs 用于接收多个关键字参数,作为一个字典传递。
def print_details(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

print_details(name="Eve", age=25, city="New York")
# 输出:
# name: Eve
# age: 25
# city: New York

答案

实参全称实际参数,是在调用函数时传入的数据,实参可以是变量,可以是数值,可以是一切可被赋值的数据。

形参全称形式参数,是在函数定义时圆括号中定义的变量,形参用来接收在函数调用时传入的对应的实参数据,当没有产生函数调用时,形参不代表任何值