[课后作业] 第018讲:函数:灵活即强大(与答案不一样)
0. 编写一个符合以下要求的函数:a) 计算打印所有参数的和乘以基数(base=3)的结果
b) 如果参数中最后一个参数为(base=5),则设定基数为5,基数不参与求和计算。
#习题答案如下:
def mFun(*param, base=3):
result = 0
for each in param:
result += each
result *= base
print('结果是:', result)
mFun(1, 2, 3, 4, 5, base=5)
我第一反应就是把5作为条件判断
#代码部分
def he(*x):
if x[-1] == 5:
a1=sum(x)*3-15 #或者a1=sum(x)*3-x[-1] *3,其实感觉还很粗糙
return a1
else:
a1=sum(x)*3
return a1
#运行结果
>>> he(1,3,5,7)
48
>>> he(1,-2,8,5)
21
------------------------分割线--------------
本来没想到使用收集参数*,那么每次调用函数先x=(1,2,3,4,5)
再he(x)
#代码部分
def he(x):
if x[-1] == 5:
a1=sum(x)*3-15
return a1
else:
a1=sum(x)*3
return a1
--------------------------其实本来想使用input()做出可输入的,但是运行一输入就一堆报错,我这种初学者只能想想,请问下各位大神有啥建议没?-------------------------------------
x=input('请输入数字,使用“,”分隔:')
x=int(x)
def he(x):
if x[-1] == 5:
a1=sum(x)*3-15
return a1
else:
a1=sum(x)*3
return a1 分割线,请使用表示。 永恒的蓝色梦想 发表于 2020-7-9 23:23
分割线,请使用表示。
是啥意思呢 后面哪个模块呢请问下
你的代码可以改成这样:
def he(x):
if x[-1] == 5:
a1=sum(x)*5-25 # 当最后一个参数为 5 的时候 设置基数为 5 了,而不是 3 ,此时要 *5,而且要减去 25
return a1
else:
a1=sum(x)*3
return a1
x=input('请输入数字,使用“,”分隔:')# 注意这边是英文的逗号
result =
print(he(result)) dong811019 发表于 2020-7-9 23:28
是啥意思呢 后面哪个模块呢请问下
你看看你的回复里,是不是有了一条分割线? 本帖最后由 Twilight6 于 2020-7-9 23:34 编辑
input 是返回字符串类型的值
int 则是把其他类型的值转化为整数
你直接这样用肯定会报错,因为逗号不能转为整数
就算你只输入一个数,不输入逗号,进入函数后也会报错,因为整型不能进行索引
我们用 split 切割下逗号,就会将字符串转化为字符串列表了
然后在用列表推导式 将列表里的元素全部转为整型即可
永恒的蓝色梦想 发表于 2020-7-9 23:30
你看看你的回复里,是不是有了一条分割线?
难得这么晚看见你在线{:7_139:} Twilight6 发表于 2020-7-9 23:33
难得这么晚看见你在线
{:10_256:}看看力扣 Twilight6 发表于 2020-7-9 23:28
你的代码可以改成这样:
你的代码这里当基数等于 5 的时候和甲鱼哥算的答案会不一样,是因为你的是将最后的参数当成 base 然后不参与运算了
但是甲鱼哥是指 base 不参与运算 前面的 1,2,3,4,5 全部参与运算 ,所以我们这代码少了 25
你如果想要和甲鱼哥答案一样,那么你就要最后多填次 5 也就是 1,2,3,4,5,5 Twilight6 发表于 2020-7-9 23:32
input 是返回字符串类型的值
int 则是把其他类型的值转化为整数
大神 正解 请收下我的膝盖{:5_106:} 永恒的蓝色梦想 发表于 2020-7-9 23:35
看看力扣
{:7_131:}哈哈...为什么这样都可以直接白嫖最佳 dong811019 发表于 2020-7-9 23:39
大神 正解 请收下我的膝盖
然后呢...把最佳给了别人?{:10_245:} 永恒的蓝色梦想 发表于 2020-7-9 23:30
你看看你的回复里,是不是有了一条分割线?
原来这样子 谢谢 Twilight6 发表于 2020-7-9 23:40
哈哈...为什么这样都可以直接白嫖最佳
WTF?这提问帖?{:10_247:}算了吧,你也白嫖不少了{:10_256:} Twilight6 发表于 2020-7-9 23:40
然后呢...把最佳给了别人?
第一次发帖 答案太及时呢 有点激动小手一抖 选错楼了抱歉{:5_100:} 永恒的蓝色梦想 发表于 2020-7-9 23:42
WTF?这提问帖?算了吧,你也白嫖不少了
给你没啥事哈哈~,只是我讨厌这种瞎给最佳的行为
Twilight6 发表于 2020-7-9 23:44
给你没啥事哈哈~,只是我讨厌这种瞎给最佳的行为
最佳选的有时候就很离谱{:10_249:} 永恒的蓝色梦想 发表于 2020-7-9 23:45
最佳选的有时候就很离谱
你早点休息吧 ~ 我先睡了 {:7_134:} 本帖最后由 Twilight6 于 2020-7-10 09:23 编辑
好像选最佳没有再确认一点就OK了 错了也不能改
下次再抽你牌牌了幸苦了{:5_97:} 学习
页:
[1]
2