python内置函数

1 yield 的使用注意事项

yield必须在迭代器中运行,他的功能下次运行的时候会从当前断点执行
yield还可以保存函数运行过程中过程的信息

2三目运算符

temp=none
if 1>3
    temp=‘shabi’
else
    temp=‘doubi’

换成三目运算符就是 temp= ‘shabi’ if 1>3 else ‘doubi’
3 lamda表达式
temp=lamda x,y:x+y

4 python 内置函数

1)dir   能列出所有方法  比如定义了一个a是一个列表 dir(a)就出出现列表的全部方法
(2var 列出所有的方法,var()返回的是一个字典,带key和value              
(3)reload和import
 import在导入其他模块的方法时使用,
 例如 from haunch  import demom,就会把hanshu包中的demon.py导  入到正在写的py中
 reload的作用事重新导入,例如导入一个文件了,也执行他里面的函数了    , 此时在import的话,不能执行,但如果有个需求要求你在倒入一次,在执行一次,可以reload()一下
(4)id()是显示内存地址
(5)abs()求绝对值
 (6)divmod()  显示除数和余数   
 例如 divmod(103)结果为(31)
(7)chr()把数字转化ACCIC的形式
 例如print chr(65)  输出 A
 (8)hen()十六进制
    oct()八进制 
    bin()2进制

(9)for k,v in enumerate([1,2,3,4]):
print k,v
用途,为某一商品编号

li=[‘手表','相机','电脑']
for item,value in enumerate(li,1):
    print item,value

结果为
1 手机
2 相机
3 电脑

默认事从0开始编号,因为我在参数那个地方加了一个1 编号从1开始

(10)过滤器filter
1 print filter(lambda x: x==1,[1,23,4]) #True序列

2 def foo(it):
if it<12:
return True
else:
return False
li=[11,2,1,322,33]
item=filter(foo, li)
print item

结果如下
[11,2,1] 返回一个列表

(11)reduce() 累加累乘

      li=[11,22,33,44,55]
      print reduce(lambda x,y:x*y,li)
    这个方法是首先先把11,22当做x,y,然后再把结果                 当做下一个x,然后y是33

random随机数

#_*_ coding:utf-8 _*_
import random   
#print random.randint(1,7)
#print random.randrange(1,3)        #randrange(x,y)    x<=random<y
d=[]
for i in range(6):
    if i==random.randint(1,7):
        d.append(str(random.randint(1,7)))
    else:
        d.append(chr(random.randint(65,90)))

print ''.join(d)

MD5加密

#_*_ coding:utf-8 _*_
import hashlib
hash=hashlib.md5()
hash.update('aweewew')
print hash.hexdigest()     

根据不同的用户,通过md5会生成不同的md5密码(一个用户通过md5只能生成一个密码),md5密码不能反解,假如登陆验证时,再次执行md5方法,把生成的秘钥和数据库中已经保存的md5秘钥进行比对,一样的话则登陆成功
这样可以防止数据库中存放的明文密码,假如数据库被盗,那么用户的信息也被盗取

序列化
网站http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/00138683221577998e407bb309542d9b6a68d9276bc3dbe000

网上解释
在程序运行的过程中,所有的变量都是在内存中,比如,定义一个dict:

d = dict(name='Bob', age=20, score=88)

可以随时修改变量,比如把name改成’Bill’,但是一旦程序结束,变量所占用的内存就被操作系统全部回收。如果没有把修改后的’Bill’存储到磁盘上,下次重新运行程序,变量又被初始化为’Bob’。
我们把变量从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flattening等等,都是一个意思。
序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上。
反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling。

例如玩游戏时你电脑突然死了,下次开机时还会显示你电脑死机前的状态,因为所有的数据都在内存中,它每隔一段时间(例如10秒)就会从内存中拷贝最新的状态保存到硬盘上 ,就是通过序列化的方式

代码如下

import pickle
li =['mazhongyi',11,22,'tiancai']
pickle.dump(li,open('/Users/mazhongyi/Desktop/demon/day3/xuliehua/xuliehua.pk','w'))
result =pickle.load(open('/Users/mazhongyi/Desktop/demon/day3/xuliehua/xuliehua.pk','r')) 
print result

dump代表序列化,load代表反序列化
小注:dumps()是不涉及文件,直接对列表字典等进行序列化,例如 pickle.dumps(li)
同样的例子还有loads,去掉s后就事对文件的操作

                   json

如果我们要在不同的编程语言之间传递对象(在python与python的传输过程中可以使用pickle),就必须把对象序列化为标准格式,比如XML,但更好的方法是序列化为JSON,因为JSON表示出来就是一个字符串,可以被所有语言读取,也可以方便地存储到磁盘或者通过网络传输。JSON不仅是标准格式,并且比XML更快,而且可以直接在Web页面中读取,非常方便。

JSON表示的对象就是标准的JavaScript语言的对象,JSON和Python内置的数据类型对应如下

Python内置的json模块提供了非常完善的Python对象到JSON格式的转换。我们先看看如何把Python对象变成一个JSON:

>>> import json
>>> d = dict(name='Bob', age=20, score=88)
>>> json.dumps(d)

‘{“age”: 20, “score”: 88, “name”: “Bob”}’(是把字典序列化为字符串)
dumps()方法返回一个str,内容就是标准的JSON。类似的,dump()方法可以直接把JSON写入一个file-like Object。
要把JSON反序列化为Python对象,用loads()或者对应的load()方法,前者把JSON的字符串反序列化,后者从file-like Object中读取字符串并反序列化:

>>> json_str = '{"age": 20, "score": 88, "name": "Bob"}'
>>> json.loads(json_str)
{u'age': 20, u'score': 88, u'name': u'Bob'}

有一点需要注意,就是反序列化得到的所有字符串对象默认都是unicode而不是str。由于JSON标准规定JSON编码是UTF-8(所以反序列化出来带着u),所以我们总是能正确地在Python的str或unicode与JSON的字符串之间转换。

正则表达式(re)
正则表达式常用的格式
1 字符 \d (数字) \w (字母,下划线) \t()
.(注意前面的是一个点,表示除了回车意外的所有字符)
2 次数
* (代表大于等于0)
(代表大于等译1)
? (代表0或1)
{m} (代表次数,就如这个地方m为6,则表明6次)
{m,n} (代表一个范围 m<=次数<=n)

s = re.search('a{3,5}','aaaaaa')
print s.group()

结果为
aaaaa

正则表达式常用的有六个函数
1 match(’判断条件’,’执行判断的字符串’),从开头开始匹配,如果开头没有符合判断条件,返回值为none
2 search(’判断条件’,’执行判断的字符串’),放眼整个字符串匹配,即使开头没有字符串,也会继续遍历,假如后边有符合判断条件的字符串,则返回该字符串,如果整个字符串中都没有要满足判断条件的,返回none

demon

import re
result = re.match('\d+','adf1213adf')
if result:
    print result.group()
else:
    print '不符合匹配条件'
result2 = re.search('\d+','adf1213adf')
if result2:
    print result2.group()
else:
    print ‘不符合匹配条件’

3 group() 正则表达式中,group()用来提出分组截获的字符串
group()和groups()的区别

group() 会输出正则表达式中的所有内容,而groups()只会生成正则表达式的内容

4 findall(’判断条件’,’执行判断的字符串’)
查找到所有符合判断条件的字符串

result_findall=re.findall('\d+','adf123we21ewr123eqw')
print result_findall
                time
import time
print time.gmtime()

输出结果

time.struct_time(tm_year=2015, tm_mon=9, tm_mday=28, tm_hour=12, tm_min=37, tm_sec=19, tm_wday=0, tm_yday=271, tm_isdst=0)

print strftime('%Y-%m-%d %H:%M:%S’)(用的最多)

输出结果
2015-09-28 20:37:19

sys

sys.argv           命令行参数List,第一个元素是程序本身路径
sys.exit(n)        退出程序,正常退出时exit(0)
sys.version        获取Python解释程序的版本信息
sys.maxint         最大的Int值
sys.maxunicode     最大的Unicode值
sys.path           返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform       返回操作系统平台名称
sys.stdout.write('please:')
val = sys.stdin.readline()[:-1]
print val

os

> os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 
> 改变当前脚本工作目录;相当于shell下cd os.curdir  返回当前目录: ('.') os.pardir 
> 获取当前目录的父目录字符串名:('..') os.makedirs('dirname1/dirname2')    可生成多层递归目录
> os.removedirs('dirname1')    若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
> os.mkdir('dirname')    生成单级目录;相当于shell中mkdir dirname
> os.rmdir('dirname')    删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
> os.listdir('dirname')    列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印 os.remove() 
> 删除一个文件 os.rename("oldname","newname")  重命名文件/目录
> os.stat('path/filename')  获取文件/目录信息 os.sep   
> 输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/" os.linesep   
> 输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n" os.pathsep    输出用于分割文件路径的字符串
> os.name    输出字符串指示当前使用平台。win->'nt'; Linux->'posix' os.system("bash
> command")  运行shell命令,直接显示 os.environ  获取系统环境变量 os.path.abspath(path) 
> 返回path规范化的绝对路径 os.path.split(path)  将path分割成目录和文件名二元组返回
> os.path.dirname(path)  返回path的目录。其实就是os.path.split(path)的第一个元素
> os.path.basename(path) 
> 返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
> os.path.exists(path)  如果path存在,返回True;如果path不存在,返回False
> os.path.isabs(path)  如果path是绝对路径,返回True os.path.isfile(path) 
> 如果path是一个存在的文件,返回True。否则返回False os.path.isdir(path) 
> 如果path是一个存在的目录,则返回True。否则返回False os.path.join(path1[, path2[, ...]]) 
> 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略 os.path.getatime(path) 
> 返回path所指向的文件或者目录的最后存取时间 os.path.getmtime(path) 
> 返回path所指向的文件或者目录的最后修改时间
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值