关于python二级的小题目?

f = (lambda a='hello', b='python', c='world': a + b.split('o')[1] + c)
print(f('hi'))
求输出结果,可以的话讲讲为啥

输出结果:hinworld
把第一行代码转换一下应该就比较容易看了:

def f(a='hello', b='python', c='world'):
temp_b = b.split('o')[1]
return a + temp_b + c
print(f('hi'))
其中 a 的值被传入参数 'hi'代替,b,c没有传入所以使用默认值。
b.split('o')[1]是将字符串分隔后去数组下标为1的部分对应的值为 ‘n’。
所以整体看来的话返回值为 hinworld
想能帮到你,谢谢
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-06-17
这个题目运行一下就知道了吧

结果是:hinworld
原因:参数a已输入为hi
参数b无输入默认为python,使用split方法将python以o为准切成两段,b.split('o')[1]为n
参数c无输入默认为world
所以f('hi')=“hi”+ "n" + "world"
不明白的话可以去查一下lambda和split的用法即可。
相似回答