Python语言精要---下
def make_closure(a):
def closure():
print("I know the secret: %d" % a)
return closure()
closure = make_closure(5)
def say_hello_then_call_f(f,*args,**kwargs):
print("arg is " + str(args))
print("kwargs is %s "% kwargs)
print("hello now i am gonna to call %s" % f)
return f(*args,**kwargs)
def g(x,y,z = 1):
return (x+y) / z
say_hello_then_call_f(g,1,2,z = 5)
print(say_hello_then_call_f(g,1,2,z = 5))
print(g(1,2,z = 5))
def add_numbers(x,y):
return x+y
add_five = lambda y: add_numbers(5, y)
print(add_five(2))
#这里的add_numbers的第二个参数是柯里化的,就是定义了一个可以调用现有函数的新函数而已
#还可以使用下面的模块函数简化这个过程
from functools import partial
add_five_ = partial(add_numbers,5)
print(add_five_(9))
#计算时间序列x的60日移动平均
ma60 = lambda x:pandas.rolling_mean(x,60)
#计算data中所有时间序列的60日移动平均
data.apply(ma60)
def squares(n=10):
print('Generating squares from 1 to %d' % (n**2))
for i in range(1,n+1):
yield i**2
gen = squares()
print(gen)
#直到从生成器中请求元素时候,才会执行代码
for x in gen:
print(x)
'''
<generator object squares at 0x000000BD50384518>
Generating squares from 1 to 100
1
4
9
16
25
36
49
64
81
100
'''
gen= (x ** 2 for x in range(100))
print(gen)
print(sum(x**2 for x in range(100)))
print(dict((i,i**2) for i in range(7)))
'''
<generator object <genexpr> at 0x0000007F13491938>
328350
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36}
'''
import itertools
first_letter = lambda x: x[0]
names = ['jason','peggy','charles','heather','whitney','thea','ana','jane','aya']
for letter,name in itertools.groupby(names,first_letter):
print(letter,list(name))
'''
j ['jason']
p ['peggy']
c ['charles']
h ['heather']
w ['whitney']
t ['thea']
a ['ana']
j ['jane']
a ['aya']
'''
with open('temp_temp.txt','w') as handle:
handle.writelines(x for x in open('temp.txt') if len(x)> 1)
open('temp_temp.txt').readline()
Python语言精要---下的更多相关文章
- 解决python语言在cmd下中文乱码的问题
解决python语言在cmd下中文乱码的问题: a = "再见!"print (a.decode('utf-8').encode('gbk')) #解决在cmd下中文乱码的问题
- Python语言精要---上
下面的记录根据: 麦金尼. 利用Python进行数据分析[M]. 机械工业出版社, 2014. 这本教材的附录部分总结而来 Python的设计特点是重视可读性,简洁性以及明确性 Python不推荐 ...
- 【Python基础学习一】在OSX系统下搭建Python语言集成开发环境 附激活码
Python是一门简单易学,功能强大的编程语言.它具有高效的高级数据结构和简单而有效的面向对象编程方法.Python优雅的语法和动态类型以及其解释性的性质,使它在许多领域和大多数平台成为编写脚本和快速 ...
- selenium webdriver从安装到使用(python语言),显示等待和隐性等待用法,切换窗口或者frame,弹框处理,下拉菜单处理,模拟鼠标键盘操作等
selenium的用法 selenium2.0主要包含selenium IDE 和selenium webDriver,IDE有点类似QTP和LoadRunner的录制功能,就是firefox浏览器的 ...
- 第 2 章 Python 语言入⻔
目录 2.1低而长的学习曲线 2.2Python的优势 2.3在你的计算机中安装Python 2.4如何运行Python程序 2.5文本编辑器 2.6寻求帮助 Python语言是一种流行的编程语言,在 ...
- [Python学习] Linux环境下的Python配置,必备库的安装配置
1.默认Python安装情况 一般情况,Linux会预装Python的,版本较低,比如Ubuntu15的系统一般预装的是Python2.7.10. 使用命令:which python可以查看当前的py ...
- [Python学习笔记1]Python语言基础 数学运算符 字符串 列表
这个系列是我在学习Python语言的过程中记录的笔记,主要是一些知识点汇总,而非学习教程,可供有一定编程基础者参考.文中偏见和不足难以避免,仅供参考,欢迎批评指正. 本系列笔记主要参考文献是官网文档: ...
- 如何系统地自学一门Python 语言(转)
转自:http://www.phpxs.com/post/4521 零基础情况下,学一门语言充实下自己,Python,简洁.优美.容易使用,是一个很好的选择.那么如何系统地自学Python呢? 有的人 ...
- python语言的优点和缺点
python作为一门高级编程语言,它的诞生虽然很偶然,但是它得到程序员的喜爱却是必然之路. 龟叔给Python的定位是"优雅"."明确"."简单&qu ...
随机推荐
- docker RESTful API
https://docs.docker.com/engine/reference/api/docker_remote_api/
- STM32的PWM输出极性的问题
又开始玩PWM, 先试了一下PWM的两个引脚输出相反极性, 但是分析仪上看到, 两个脚是一样一样的. 写是这么写的: ... TIM_OCInitStructure.TIM_OCMode=TIM_OC ...
- Memcached 分布式缓存实现原理
摘要 在高并发环境下,大量的读.写请求涌向数据库,此时磁盘IO将成为瓶颈,从而导致过高的响应延迟,因此缓存应运而生.无论是单机缓存还是分布式缓存都有其适应场景和优缺点,当今存在的缓存产品也是数不胜数, ...
- MyBatis的Dao层注入SqlSession
有点坑爹,以前没用过Mybatis,最近才用,而且一直用Mybatis推荐的接口映射的方式,但是今天有人告诉我接口方式用得少,大多还是采用从配置文件里面读sql的方式,当然接口也是类似的,都是利用ma ...
- NSAssert用法
今天突然发现了一个开发ios程序时调试的好帮手-NSAssert()函数.而且和NSLog()函数一样简单易用,代码如下: NSAssert(x!=0,@"x must not be zer ...
- node-webkit 新建实例窗口间通信问题解决办法
终于弄明白这问题了,只要在js文件里加上段代码,就可解决两窗口间通信问题. var str = { username: User.name, userrole: User.role }; var ne ...
- 分布式拒绝服务攻击(DDoS)原理及防范
DDoS攻击概念 DoS的攻击方式有很多种,最基本的DoS攻击就是利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应. DDoS攻击手段是在传统的DoS攻击基础之上产生的一类攻击 ...
- 请求php返回json生成自定义对象
php代码 public function convert_array(){ $arr = array( '0'=>array('name'=>'zc','height'=>173) ...
- 【转】MYSQL入门学习之三:全文本搜索
转载地址:http://www.2cto.com/database/201212/173873.html 一.理解全文本搜索 www.2cto.com 1.MyISAM支持全文本搜索,而Inn ...
- lua中for循环
, do ') end 显示的结果是 xbwang@xbwang-desktop:~/Desktop$ th for.lua 其他语言只会输出一个2,lua的这个for循环输出了两个2 Lua 编程语 ...