序列传参问题

来源:3-2 项目作业

慕前端7267698

2020-02-24 17:43:44

题目是:下列调用函数之后会报错的是()

def calc(a, b, c):

    return (a + b) * c

A. 

l = [1, 2, 5]

print(calc(*l))


B.

l =(1, 2, 5)

print(calc(*l))


C.

l = {a:1, b:2, c:5}

print(calc(**l))


选项中为什么要加*或者**在序列前?

写回答

1回答

好帮手乔木

2020-02-24

同学你好:

使用“*”号的原因就是因为要对容器tuple中的数据进行解包操作,即将容器中的每一个元素逐个取出来(这一操作是Python自动完成的)。

使用“**”号的原因就是因为要对容器dict中的数据进行解包操作,即将容器中的每一个元素逐个取出来(这一操作是Python自动完成的)。

例如:

http://img.mukewang.com/climg/5e53b4f8094c1e0107040432.jpg

如果我解决了同学的问题,请采纳!学习愉快^_^。

0

0 学习 · 8160 问题

查看课程