#内置函数:

# all() : 可迭代对象不为空就返回true
# any
# r = (sum([2,2]))
# print(r)

# for i in range(10):
# print(type(i))
#
# r=2,2
# print(type(r))

#bytes() 把字符串转成字节格式

# callable() 查看是否是可调用对象
# chr()
# ord() ais码互相转换

# isinstance(x,int) 判断是什么类型
#frozenset 不可变集合
#dir 查看有什么调用的方法
# divmod 分页
# enumerate() 既包含索引,又包含变量
# eval() 字符串里面的东西提取出来执行
# hex() :进制转换
# id 身份、
# max()
# salaries={
# 'lxl':1900,
# 'zj':56}
# def get_value(k):
# return salaries[k]
# print(max(salaries,key=lambda k:salaries[k]))
#比较大小
#min() 取最小的
# 匿名函数
# f=lambda k:salaries[k]
# zip(l1,s) 拉链

# l = [2,5,1,3,56,7,8,4]
# sorted(l) 返回值是列表,默认是升序 排序
# sorted(l,reverse=True) 降序排序
# salaries={
# 'lxl':1900,
# 'zj':56}
# sorted(salaries,key=lambda x:salaries[x])

#map() 映射
# l=[1,3,4,6,2,4]
# map(lambda item:item**2,l)

#reduce 合并
# from functools import reduce
# l=list(range(100))
# reduce(lambda x,y:x+y,l,100)

# filter() 过滤
# name_l=[
# {'name':'lxl','age':18},
# {'name':'zj','age':90000}
# ]
# filter(lambda d:d['age'] > 100,name_l) #左边为Trte过滤出来

# oct() 二进制转八进制
# pow(3,2,2) 前两个
# round(10.4) 四舍五入 四舍六入五留双

# slice
# s=lice() 切片
# vars() is locals()
# import time 不能导入字符串
# __import__('time') 这个导入字符串   



#模块:

# time模块
import time,random,hashlib,os,sys
# time.time() 当前时间的时间戳
# time.strftime("%Y-%m-%d %X") 时间字符串


# random.random(1,4) 一到4
# random.choice([22,33,55,67]) 其中随机取一个

#摘要算法
# md5 = hashlib.md5("lxl".encode("utf8")) 加严
# md5.update("hello".encode("utf8"))
# print(md5.hexdigest())
#别的加密算法都一样

#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 输出用于分割文件路径的字符串 win下为;,Linux下为:
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所指向的文件或者目录的最后修改时间
os.path.getsize(path) 返回path的大小
'''
# import sys
# print(sys.version) #查看版本号
# print(sys.platform) #查看在啥系统下
# print(sys.argv) #传入参数
# username = sys.argv[1]
# password = sys.argv[2]
# print(username)

# import logging #日志模块
# logger = logging.getLogger() #login对象
#
# fh = logging.FileHandler("lxl.txt") #写入文件里
# sh = logging.StreamHandler() #屏幕流
#
# fm = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
# fh.setFormatter(fm)
# logger.addHandler(fh)
# logger.debug('logger debug message') 等级
# logger.info('logger info message')
# logger.warning('logger warning message')
# logger.error('logger error message')
# logger.critical('logger critical message')

# import json
# d = {"河北":["邯郸","石家庄"]}
# s = str(d)
# with open("data",'w') as f:
# f.write(s)
# with open("data") as f2:
# s2 = f2.read()
# d2 = eval(s2)
# #序列化和反序列化
# s = json.dumps(d) #将字典d转为json字符串
# print(type(s)) #字符串
# json.loads() #反序列化
# json.dump("wenjian","jubin")
#符合json字符串就可以反序列化

import pickle
#也是序列化支持时间格式,无法读,可以序列任何之间数据

import re
#对字符串的模糊匹配
s = "sfskfjie34kwjflsa2lsf5"
print(re.findall("\d",s))
#findall:取出来是列表
#元字符:
'''
次数:
. : 通配符 ,单个任意字符
* : 重复0到无限次
+ : 重复一到无限次
?:匹配0,1次
{}:{n,m}
[]:字符集,或,把上面符号换成了普通符号。- 是范围 ^ :在中括号里是取反的意思 $ :结尾 \:
\d:任意数字
():分组 : re.findall("(ad)+","addddddd") ()显示出分组里的内容
re.findall("(?:\d)+lxl","afdslkfwie56lxl")
?::不在显示分组里的内容
| :或
\w:所有字母数字
("\d+\.?\d*\*\d+\.?\d*","2*6+5*39+4.8*8-4/2")
\ : 转义
元字符之转义符\
反斜杠后边跟元字符去除特殊功能,比如\.
反斜杠后边跟普通字符实现特殊功能,比如\d

\d 匹配任何十进制数;它相当于类 [0-9]。
\D 匹配任何非数字字符;它相当于类 [^0-9]。
\s 匹配任何空白字符;它相当于类 [ \t\n\r\f\v]。
\S 匹配任何非空白字符;它相当于类 [^ \t\n\r\f\v]。
\w 匹配任何字母数字字符;它相当于类 [a-zA-Z0-9_]。
\W 匹配任何非字母数字字符;它相当于类 [^a-zA-Z0-9_]
\b 匹配一个特殊字符边界,比如空格 ,&,#等
r : 代表原生字符串 re.findall(r"c\\l","abc\l")
'''
#
#re.finditer("\d+","adfsa") 会生成一个迭代器 取数据要用.group

posted on 2018-04-08 11:42  lxltxdy  阅读(128)  评论(0)    收藏  举报