为了账号安全,请及时绑定邮箱和手机立即绑定

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.17
571人评价 查看评价
9.6 内容实用
9.0 简洁易懂
8.9 逻辑清晰
def is_sqr(x):
return int(x**0.5)**2 == x
import time
def performance(f):
def jishi(*args):
time1 = time.time()
result=f(*args)
time2 = time.time()
#print (time2 - time1)
print("call "+f.__name__+"() "+"in "+str(time2-time1))
return result
return jishi

最新回答 / 慕运维2043254
主要的报错原因是你的写的三元表达式缺了else部分,在python中,三元表达式(为真时的结果 if 判断条件 else 为假时的结果)是一个整体
def count():
fs=[]
for i in range(1,4):
def f(i):
return i*i
fs.append(f)
return fs
f1,f2,f3=count()
print f1(1),f2(2),f3(3)
import math

def is_sqr(x):
return math.sqrt(x)*10%10==0

print filter(is_sqr, range(1, 101))

最新回答 / 战神A
达到了像对象的私有变量一样的效果

最新回答 / DreamCatcherCai
首先在循环中的i作为的是f的实参,而f里面的g()使用的是f的形参j来定义函数,即这里的代码实现的是从变动的实参过渡到不变的形参来定义内层函数。

最赞回答 / weixin_慕丝8347161
我也是初学,我的理解是这样,不知道对不对print f()执行f函数,而f=calc_prod([1, 2, 3, 4]),意味着f函数是calc_prod([1, 2, 3, 4])调用之后返回的函数对象。即lazy_prod函数。也就是说调用的其实是lazy_prod()函数,lazy_prod函数返回的是reduce(f,lst),也就是对lst集合进行f函数的reduce操作,其次就进入f(x,y)函数,这个函数返回的是x*y,也就是对lst集合进行累乘操作,结果就是1*2*3*4=24
继续学习,加油
继续学习,加油

最赞回答 / wztg
    在__cmp__中先判断列表中元素是否是Student类型,不是的话转成字符串跟name比较就可以了
    def __cmp__(self, s):
        if not isinstance(s, Student):
            return cmp(self.name,...
def is_sqr(x):
return (x**0.5) % 1 == 0

print filter(is_sqr, range(1, 101))

已采纳回答 / Ayeesha39
应该是s[0].upper() + s[1:].lower()  ,注意()哦!
# -*- coding: utf-8 -*-

def count():
fs = []
for i in range(1, 4):
def f(j):
def g():
return j*j
return g

fs.append(f(i))
return fs

f1, f2, f3= count()

print(f1(), f2(), f3())

print(count())
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消