文档章节

2.python总结与参考(2.7版本)

HuangJC
 HuangJC
发布于 2017/05/16 14:58
字数 1072
阅读 3
收藏 0

1.高阶函数

a = abs  #变量a可以指向abs函数本身
a(-10)  #返回10

函数名也是变量

函数可作为另一个函数的参数

 

2.map()函数和reduce()函数

map(a,[1,2,3,4])  #a是一个返回(x*x)的函数,返回[1,4,9,16]

map能将一个字符串变成list

reduce(a,[1,3,5])  #a是返回(x*10+y)的函数,reduce的过程就是s=1*10+3,s1=s×10+5,最终等于135.

reduce能将list变成字符串

 

3.filter()    筛选函数

filter(a,[1,2,4,5])  #删掉偶数,a是单参数函数返回n%2==1,可看出返回是个布尔值,list的元素为真删除,返回【1,5】
strip()    #删除字符串收尾的元素,括号中位空默认删除空格。

 

4.sorted()函数

sorted([35,5,12,9,21])  #排序,数字可直接对比,str会根据ascii码,大写字母的值小于小写

自定义,倒叙

def reversed_cmp(x,y):   #默认排序从小到大,规则(x>y,返回1;x<y,返回-1;x=y,返回0),这里反写就行
    if x>y:
        return -1
    if x<y:
        return 1
    return 0
sorted([36,2,14,5],reversed_cmp)

 

5.返回函数

就是return 一个函数

循环闭包参考我的其他文章python难点总结

 

6.匿名函数

lambda x:x*x   #没有函数名的函数。使用方法:(lambda 参数:方法)。

 

7.装饰器

装饰器难点参考python难点总结

a.__name__   #获取函数的原始名字,由于能使用变量代替函数名,所以需要这个

 

带参装饰器(decorator)例子

import functools	#下面@functools.wraps(func)用到本模块

def log(text):	#3层嵌套装饰器。这是第一层
	def decorator(func):
		@functools.wraps(func)	#装饰后,__name__变成wrapper,这个就是让变回func,不然依赖函数签名的会报错
		def wrapper(*args, **kw):
			print '%s %s():' % (text, func.__name__)
			return func(*args, **kw)
		return wrapper
	return decorator


#用法,调用b后,相当于执行了b=log(a)(b)
@log(a)	#a是上面的text
def b():
	pass

 

8偏函数

就是把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数

import functools  
int2=functools.pepartial(int,base=2)  #int是一个将字符串类型的数字变成整形的数字函数,base模式是10

 

9使用模块

*******建立模块的默认规矩,中间有注释的那两行.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

' a test module '   #这里用于注释,想写啥就写啥

__author__ = 'Michael Liao' #这里写大名

import sys

 

在cmd中直接调用.py文件,python解释器会把特殊变量__name__变成'__main__',也就是说如果在其他地方看到

if __name__=='__main__':  #其实是方便开发人员测试模块的,在因为在中断调用模块才是执行,如果被其他模块import了本模块,if __name__=='__main__'下面的函数是不会被执行的.
    test()   #test是本模块中的一个函数

 

import sys
sys.argv[1]  #获取命令行第二个参数,第一个是[0],指向当前.py的地址

sargv注释中的命令行指的是,在cmd中调用.py时的那条.

 

*******别名

try:  #先引入cStringIO模块,如果出错则再引入StringIO模块(前者速度块,看平台是否支持)
	import cStringIO as StringIO
except ImoirtError
	import StringIO

 

*******作用域

    一般用_xxx或__xxx表示私有变量(__xxx__是默认特殊变量,因此我们不用这种方式.)

 

10第三方模块

 

pip install PIL   #使用pip下载第三方,在cmd中输入

我没成功,而是直接在http://www.pythonware.com/products/pil/这网上下载exe文件安装的.

*******图片操作

import Image   #如果下载的是Pillow而不是PIL,好像是from PIL import Image
im = Image.open('a.png')  #打开一个图片(a.png)并赋给变量im
print im.format,im.size,im.mode#打印文件格式,文件大小,文件模式
im.thumbnail((200,100))  #生成略微图
im.save('thumb.jpg','JPEG')  #保存略微图

其他常用的第三方库还有MySQL的驱动:MySQL-python,用于科学计算的NumPy库:numpy,用于生成文本的模板工具Jinja2

import sys
sys.path     #查看路径
sys.path.append('d:/workspace/')  #增加路径
from __future__ import division  #使用更高版本的除法.在3.x版本中,/带小数,//不带小数.

 

© 著作权归作者所有

共有 人打赏支持
HuangJC
粉丝 0
博文 32
码字总数 39927
作品 0
佛山
python遍历目录文件

直接上代码: snippetid="2573110" snippetfilename="blog201709111_1013208" name="code" class="python">os.walk import osfrom os.path import join, getsizefor root, dirs, files in os......

langb2014
2017/09/11
0
0
jupyter、pyenv、virtualenv、virtualenvwrapper简要区别

一、区别 1.jupyter 对接ipython,作为一个web端的notebook,便于python工作。 2.pyenv 在创建一个新的python版本时,完全拷贝一个现成的python环境。新的python版本,可作为global 3.virtua...

xiaoge2016
08/10
0
0
ubuntu server 管理

1.ssh #查看是否存在ssh服务service ssh 安装ssh服务 sudo apt-get install openssh-server -y 2.python #view branch of pythonpython -v>>...2.7.6 我这是2.7.6版本的,最新的ubuntu kyli......

不朽灵都
2014/05/17
0
0
Python爬虫day1.1—Python初识(安装Python)

1.Python简介 python是一门面向对象的、解释型的编程语言 目前Python常见的版本有Python2.x和Python3.x,总结起来,Python3.x各方面更成熟完善些,Python2.x处理速度更快一些,但Python3.x不...

dclee
2017/12/05
0
0
python 升级导致yum无法正常使用

一、问题描述 昨天安装django的时候有些命令用不了,一查应该是python版本过低,目前版本2.6.6,于是编译安装了2.7.2版本,编译完成后做了个软连接加到path路径里面,使python调用的2.7版本。...

chuckzeng
06/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

初级开发-编程题

` public static void main(String[] args) { System.out.println(changeStrToUpperCase("user_name_abc")); System.out.println(changeStrToLowerCase(changeStrToUpperCase("user_name_abc......

小池仔
今天
8
0
现场看路演了!

HiBlock
昨天
19
0
Rabbit MQ基本概念介绍

RabbitMQ介绍 • RabbitMQ是一个消息中间件,是一个很好用的消息队列框架。 • ConnectionFactory、Connection、Channel都是RabbitMQ对外提供的API中最基本的对象。Connection是RabbitMQ的s...

寰宇01
昨天
12
0
官方精简版Windows10:微软自己都看不过去了

微软宣布,该公司正在寻求解决方案,以减轻企业客户的Windows 10规模。该公司声称,企业客户下载整个Windows 10文件以更新设备既费钱又费时。 微软宣布,该公司正在寻求解决方案,以减轻企业...

linux-tao
昨天
20
0
TypeScript基础入门之JSX(二)

转发 TypeScript基础入门之JSX(二) 属性类型检查 键入检查属性的第一步是确定元素属性类型。 内在元素和基于价值的元素之间略有不同。 对于内部元素,它是JSX.IntrinsicElements上的属性类型...

durban
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部