首页 新闻 会员 周边 捐助

执行以下Python3程序,下列说法中,错误的是()

0
[已解决问题] 解决于 2025-12-01 15:37

def fn(a, b):

    return a + b
 
lst = [12]
f = fn(*lst)
print(f)
 
 
A
函数fn的参数a和b都是位置参数
B
不能使用参数解包来将列表或元组中的元素传递给函数
C
语句print(f)的输出结果为3
D
程序不会抛出异常
*Tesla*的主页 *Tesla* | 小虾三级 | 园豆:1188
提问于:2025-12-01 15:25
< >
分享
最佳答案
0

Python支持使用星号(*)操作符对列表或元组进行参数解包(unpacking),将元素作为位置参数传递给函数。
程序中fn(*lst)将列表lst解包为fn(1, 2),完全合法且正确。因此,该说法错误。

斜杠(/)用于分隔仅位置参数(左侧必须位置传递)

星号(*)用于分隔仅关键字参数(右侧必须关键字传递)

未使用/:无强制限制,参数默认允许位置或关键字传递。

两者可组合使用:

def func(a, /, b, *, c): # a仅位置,b位置或关键字,c仅关键字
  pass

 

正确答案:B

fn(*lst) # 等价于 fn(1, 2),是Python的标准特性

*Tesla* | 小虾三级 |园豆:1188 | 2025-12-01 15:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册