已采纳回答 / 慕设计5732540
因为math.sqrt(x)返回的结果是float类型。加上int才会变为整型。假如x为10,math.sqrt(10)结果为3.16,加上int后为3。这样return后 3*3 ==10是false。
2017-11-20
已采纳回答 / 小程序魔王
因为cmp(L1[0],L1[1]) = 1所以你这样写等价于L2 = sorted(L1,lambda p1,p2: 1)而返回值固定是1相当于没有排序
2017-11-12
已采纳回答 / 慕先生4523243
Python 3.X 的版本中已经没有 cmp 函数,如果你需要实现比较功能,需要引入 operator 模块,适合任何对象,包含的方法有:operator.lt(a, b)operator.le(a, b)operator.eq(a, b)operator.ne(a, b)operator.ge(a, b)operator.gt(a, b)operator.__lt__(a, b)operator.__le__(a, b)operator.__eq__(a, b)operator.__ne__(a, b...
2017-11-09
已采纳回答 / 書生42
x**(1/2)并不是就是平方的意思啊,正确的应该是math.sqrt(x),如果没有编程基础不建议慕课的python教程直接开始看,建议自己找本书开始学先
2017-11-09
已采纳回答 / Kingscent
sorted(iterable, cmp=None, key=None, reverse=False)里面有四个参数想必你是知道的。里面的cmp原始值是None,但是你要排序的['bob', 'about', 'Zoo', 'Credit']里面有大小写,按照原来的cmp,他就会将大小写一起来排序,输出会是['Credit', 'Zoo', 'about', 'bob'],所以你要告诉他怎么个操作来排序,所以建立了一个函数lambda s1, s2: cmp(s1.upper(), s2.upper())...
2017-11-04
已采纳回答 / 慕斯4574822
reversed_cmp并没有实现排序,只是一个单纯的比较,真正的排序方法是sorted()方法,reversed_cmp(x,y)由List传入参数进行比较,返回布尔值,再由sorted进行比较,我觉得也可以看做是两个嵌套,先执行内部方法,再执行sorted
2017-11-02
已采纳回答 / 慕田峪9364343
不是类型的问题,你将f该为f()的话, print f1() 实际上等于 print f1()() ,你试试去掉一个括号,直接打印f1,f2,f3
2017-10-30
已采纳回答 / 奔波儿灞_0001
这里所说的移到外部,是指将 lazy_sum 函数在calc_sum函数外部声明,这样的话lazy_sum函数将无法访问到lst变量,因为此参数只能在calc_sum内部使用。return lazy_sum 这句代码是将lazy_sum 函数作为结果返回到外部,然后在外部就可以调用了,并不是声明。
2017-10-30
已采纳回答 / miao2015
reduce是python中的一个高阶函数,接受的函数必须有两个参数,然后是list,函数的作用就是对list中的每一项连续作用,即list[0]和list[1]带入函数取得结果再和list[2]作为两个参数传入函数继续计算,直接到所有list中的项都参与了计算,第三个参数1代表是计算的初始值,这个例子不太好,考虑这个值是100,那就是100*reduce(f,lst)。在这个问题中,如果不使用reduce,那么你就要去遍历list,再一个个乘,相比之下,代码更高效简洁,试想一下,如果此时你要改变你的函数...
2017-10-29