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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰
def calc_prod(lst):

def return_prod():
return reduce(prod,lst)
return return_prod

def prod(x, y):
return x*y

f = calc_prod([1, 2, 3, 4])
print f()
import math

def is_sqr(x):
return x and math.sqrt(x)%2==0 or math.sqrt(x)%1==0

print filter(is_sqr, range(1, 101))
class Person(object):

__count = 0

def __init__(self, name):
self.name=name
Person.__count+=1

p1 = Person('Bob')
p2 = Person('Alice')
try:
p1.__count
Person.__count
except AttributeError:
print "attributeerror"
print "1"
print "2"
class Person(object):
def __init__(self, name, score):
self.name=name
self.__score=score
p = Person('Bob', 59)
print p.name
try: print p.__score
except: print 'attributeerror'
确实是,把它当作一个学习平台
上节连time是啥我都弄了好久才弄懂,,,这节和上节的区别就是多了一个if 条件的判断实际上难度没有太大的变化
所以,我还是回头再理解下装饰器吧,,,
我发现有些同学似乎都答错了啊,,倒是先点进参考答案看一下啊
先是import time
然后x=time.time来获取时间,再将两个时间相减得到运行时间
像有些同学代码里time.asctime(time.localtime(time.time()))
错的啊错的啊
这个是显示当前计算机时间
而题目要求的是程序的运行时间!
print filter(lambda s:s and len(s.strip()) > 0, ['test', None, '', 'str', ' ', 'END'])
lambda 就是匿名函数,lambda s:后面的就是匿名函数的内容
不会的时候多看看teacher举的例子,也许会有新的收获
不就是多套一层,多加一个变量吗 (←_←)
有点绕,根据老师意思,外层参数不用循环变量,所以就再加一层函数在中间!
#两种方法:

#方法1: 自己构建一个f function 代码如下:

import math

def add(x, y, f):
return f(x) + f(y)

def f(c):
return c**0.5

print add(25, 9, f)

#方法2: 把import math 改为 from math import sqrt,就可以调用 sqrt,代码如下:
from math import sqrt

def add(x, y, f):
return f(x) + f(y)

print add(25, 9, sqrt)
好像有错误,1 4 9 10 25
def cmp_ignore_case(s1, s2):
s1=s1.lower()
s2=s2.lower()
if s1>s2:
return 1
if s1<s2:
return -1
return 0

print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)
一开始出错我还以为是我代码打错了,结果检查之后发现是有一个s1>s2打成了s2>s2.。。。
引以为戒引以为戒,,,
import math
def kf(x):
return pow(x,0.5)

def is_sqr(x):
if kf(x)%1==0:
return x
我优化我优化。。。
def is_sqr(x):
if math.sqrt(x)%1==0:
return x
这样就完全ok了,%取余数,我们除1看看余数为零他就是整数了
又用了一个更简洁的方法,辗转相除法:
def __init__(self, p, q):
if p>q:
a,b = p,q
else:
a,b = q,p
while a%b != 0:
a,b = b,a%b
self.p = p/b
self.q = q/b
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消