2.python总结与参考(2.7版本)
博客专区 > HuangJC 的博客 > 博客详情
2.python总结与参考(2.7版本)
HuangJC 发表于1年前
2.python总结与参考(2.7版本)
  • 发表于 1年前
  • 阅读 2
  • 收藏 0
  • 点赞 0
  • 评论 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版本中,/带小数,//不带小数.

 

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 0
博文 32
码字总数 39927
×
HuangJC
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: