已采纳回答 / Rocol
同学你使用的是Python3吧!在Python 3里,reduce()函数已经被从全局名字空间里移除了,它现在被放置在fucntools模块里。用的话要 先引入from functools import reduce
2018-01-18
最赞回答 / 云才哥
首先你的思路是没有问题的,math.sqrt(4)==float(2)这是成立的,但是你的程序有问题,因为程序的执行流程是依次从range(1,101)中取一个数作为is_sqr()函数的参数调用函数,而函数体每次都会执行循环体,也就是说都会从i==1开始执行,但当x==4时math.sqrt(x)==float(1)不成立即返回了false并结束调用函数,也就是说循环体只会执行i==1时这一句语句并不能起到循环体的作用。如果硬是要用这种思路建议改为i=int(math.sqrt(x))return ma...
2018-01-17
最新回答 / 潇潇暮雨3678137
不要忽略map(),将列表中的每一个元素作为参数,在函数中调用并返回结果,产生新的列表。def name(s): # return s.capitalize() #capitalize() 首字母大写,其余全部小写 return s[0].upper()+s[1:].lower() #此时的s是列表中每一个元素,是字符串,所以s[0].upper()+s[1:].lower() 是对单个字符串进行首字母大写,其他部分小写print(list(map(name,['adam', 'L...
2018-01-17
已采纳回答 / 慕仔2331887
第6行返回的是lazy_prod函数的结果,不是lazy_prod函数本身。所以第8行f接收的是一个数值而不是函数,到了第9行执行的时候其实是执行的一个数值,所以会报类型错误。
2018-01-16
最赞回答 / 黑色礼帽
1.创建函数count() ,返回一个list2.调用count()的过程中有个for循环,for循环的内容是:创建函数f() ;调用函数f():tmp = f();并将结果tmp添加至列表fs:fs.append(tmp);3.count() 返回列表fs,即返回[1,4,9]4.赋值:f1 , f2 , f3 = count() ;即f1 , f2 , f3 = [1,4,9]
2018-01-16
最赞回答 / 黑色礼帽
函数参数的目的就是为函数体中的计算过程提供变量,外层函数已经提供有效变量;且lazy_sum()是calc_sum()的内层函数,程序调用calc_sum()的过程中,创建了lazy_sum(),没有既定参数。
2018-01-15
已采纳回答 / weibo_倔强不屈的颜小贱95_0
对,self.numbers这个在__init__中赋值的,所以是这一类的实例的属性,你把numbers放到__init__的参数位子,你在实例化对象是就必须给它这么一个L,否则报错的。
2018-01-14