快速提问以确保我理解正确。
1)通过定义val = 1000
,然后a, b, c = secret_formula(val)
,secret_formula(started)
使用a, b, c
变量(调用val
)作为已启动< / strong>参数
2)secret_formula
然后存储前进使用的3个返回值
def secret_formula(started):
jelly_beans = started * 500
jars = jelly_beans / 1000
crates = jars / 100
return jelly_beans, jars, crates
val = 10000
a, b, c = secret_formula(val)
print "With a starting point of: %d" % val
print "We'd have %d beans, %d jars and %d crates." % (a, b, c)
d = secret_formula(10)
print "we can also do that this way:"
print "Wed have %d beans, %d jars, and %d crates." % d
答案 0 :(得分:1)
不确定你的意思 - 然后a, b, c = secret_formula(val)
secret_formula(已启动)使用a,b,c变量(调用val)作为已启动的参数。
但是当你这样做 - a, b, c = secret_formula(val)
时,使用参数secret_formula()
调用函数val
,这基本上意味着它开始执行函数{{1 secret_formula()
的{{1}}变量具有started
的值(同一对象的引用,但我不会进入那里)。
然后在函数完成并使用val
语句返回值后,返回的值将分配给return
。当你这样做 -
a,b,c
某些内容必须是一个可迭代的(如列表或元组),它提供三个元素(因此在a, b, c = <something>
或list
的情况下,它必须是三个元素的元组列表)。然后,它将第一个值存储在tuple
中,第二个值存储在a
中,第三个值存储在b
中。有关赋值语句的更多详细信息,请参阅the documentation。
当你做 - c
时 - 它在内部返回一个由三个元素组成的元组。
当你这样做时 -
return jelly_beans, jars, crates
d = secret_formula(10)
完全存储返回的元组。
答案 1 :(得分:1)
int main()
{
int array[SIZE];
int index, count, target, size;
printf("Enter array size: ");
scanf("%d", &size);
printf("Enter %d numbers: ", size);
for (index = 0; index < size; index++)
scanf("%d", &array[index]);
printf("Enter the target: ");
scanf("%d", &target);
count = rCountArray(array, size, target);
printf("rCountArray() = %d", count);
return 0;
}
上调用<secret_formula
,其值为10000,因此val
运行时其secret_formula
参数等于10000.它使用10000值started
计算started
,jelly_beans
和jars
的值,并返回所有这三个变量的值。由于crates
,a
和b
(3个变量)设置为c
的返回值,因此它们会收到secret_formula
中存储的值,{在jelly_beans
内{1}}和jars
。
设置变量等于函数返回值的基本结构如下:
crates
答案 2 :(得分:1)
总体思路是正确的,但是a, b, c
并没有调用函数或输入函数,至少是你发出的声音。
通过调用函数来执行secret_formula(val)
操作的顺序。由于已为return
提供了3个jelly_beans, jars, crates
值,因此它们分别被分配到a, b, c
。
这可以通过代码中的print "We'd have %d beans, %d jars and %d crates." % (a, b, c)
进行检查。
d
获取这些值的列表,因为只分配了一个变量。
但是,调用函数时不能分配两个变量,必须有3个(每个返回一个)或1个(获取列表)。