形参和实参
面试题目
- 级别: L1
- 知识模块: Python 编程语言
形参和实参
公司
- 小米外包
招聘类型
社招
题目解析
形参(Formal Parameters):
- 形参是在函数定义时声明的变量。
- 形参在函数体内被使用,等待实参传递进来。
- 形参在函数定义的括号内列出,并且在函数调用之前没有实际的值。
def add(a, b): # 这里的 a 和 b 是形参
return a + b
实参(Actual Parameters):
- 实参是在函数调用时传递给函数的实际值。
- 实参赋值给对应的形参,在函数体内使用。
- 实参可以是任何表达式,包括变量、字面值、甚至是另一个函数的返回值。
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
答案
实参全称实际参数,是在调用函数时传入的数据,实参可以是变量,可以是数值,可以是一切可被赋值的数据。
形参全称形式参数,是在函数定义时圆括号中定义的变量,形参用来接收在函数调用时传入的对应的实参数据,当没有产生函数调用时,形参不代表任何值