第18节练习
0. 编写一个符合以下要求的函数:a) 计算打印所有参数的和乘以基数(base=3)的结果
b) 如果参数中最后一个参数为(base=5),则设定基数为5,基数不参与求和计算。
def firstfunction(*num, base =3):
if num == 5:
base = 5
print('结果为: ', (((num+num)*(len(num)-1))/2)* base)
else:
print('结果为: ', (((num+num)*len(num))/2) * base)
num (1,2,3,4,1,51,23,124,5)
想请问一下各位大佬,这个是18节的练习,我这么编程是否可以?为什么出不来结果?
谢谢各位大佬帮我解答! 你定义的函数名是firstfunction
但是你最后一行调用的是num啊
你改了再试试 昨非 发表于 2020-12-7 12:36
你定义的函数名是firstfunction
但是你最后一行调用的是num啊
修改后会出现 IndexError: tuple index out of range,应该如何解决啊? ldk4188 发表于 2020-12-7 14:09
修改后会出现 IndexError: tuple index out of range,应该如何解决啊?
索引超范围了,凡事你用len的地方,全改成len-1
昨非 发表于 2020-12-7 14:32
索引超范围了,凡事你用len的地方,全改成len-1
def firstfunction(*num, base =3):
if num == 5:
base = 5
print('结果为: ', (((num+num)*(len(num)-2))/2) * base)
else:
print('结果为: ', (((num+num)*(len(num)-1))/2) * base)
firstfunction (1,2,3)
大佬,你看一下,我这样修改后答案是错的,出来是12.0
ldk4188 发表于 2020-12-7 14:38
def firstfunction(*num, base =3):
if num == 5:
我不知道题目要求需要答案是几
只能说明你语法对了逻辑不对呗 题目要求求出所有参数的的和,你这个根本不满足要求啊 我刚刚看了,答案写的十分简洁标准
def firstfunction(*num, base=3):
result = 0
for each in num:#先遍历num求所有num的和
result += each
result *= base#然后再乘以基数base
print('结果是:', result) #打印
#注意:这里的base有3作为默认参数值,而一旦结尾为5,修改参数base=5就好了,比if-else判断简单
firstfunction(1, 2, 3, 4, 5, base=5)
题目要认真看呀,让你求和没有告诉你算等差数列的求和 tytommy 发表于 2020-12-7 15:44
题目要认真看呀,让你求和没有告诉你算等差数列的求和
突然发现了,脑子瓦特了
页:
[1]