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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰
__doc__用来返回某函数中的文件内容,内容用三对双引号引出“”“”“”it is a doc“”“”“”
或者,是对函数/方法/模块所实现功能的简单描述,例如
>>> math.__doc__
'This module is always available. It provides access to the\nmathematical functions defined by the C standard.'
import math
def is_sqrt(x):
return math.sqrt(x)%1==0
print (list(filter(is_sqrt,[x for x in range(1,101)])))
from os import path as papapa

print papapa.isdir(r'/data/webroot')
print papapa.isfile(r'/data/webroot/resource/python/test.txt')
貌似如同构造函数
我也是被装饰器搞死
>>> def performance(f):
... def fn(*args, **kw):
... print datetime.datetime.now()
... return f(*args, **kw)
... return fn
...
>>> import datetime
>>> @performance
... def per(n):
... return n*2
...
>>> per(10)
2017-09-26 16:02:12.513000
20
from functools import reduce
def prod(x,y):
return x*y
print (reduce(prod,[2,4,5,7,12]))
# Python3中,使用reduce 需要先引入
def format_name(x):
return x[0].upper()+x[1:].lower()
print(list(map(format_name,['adam', 'LISA', 'barT'])))

#这个也是可以的
def format_name(x):
return x.capitalize()
print(list(map(format_name,['adam', 'LISA', 'barT'])))

# 也可以直接使用title ()函数
import math
def add(x,y,f):
return f(x)+f(y)
print (add(25,9,math.sqrt))
多少人看了这教程放弃了Python。。
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()
f1=count()=f(1)=g, f1()=g()=1*1,以此类推。
@无形之中
题中加法定义成(self.p * r.q + self.q * r.p, self.q * r.q)是因为:Rational()中的p,q表示 p/q(这个我也看漏了,想了许久)
然后是自然而然的分数加法,(分子1*分母2+分子2*分母1)/(分母1*分母2)
为python打__call__
s.append(f),只是将每一个f()的引用保存进了list,并没有进行对于i的计算,所以导致最后在运行了f(1)之后,i已经变为了3,所以会一样结果都为9.只要将这里改为fs.append(i*i)即可,将结果保存了,通过这一题可以注意到在python这门语言之中,f与f()的大区别.

for i in range(1, 4):
sum=i*i
fs.append(sum)
return fs

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

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消