当前位置: 首页 > news >正文

电子商务网站开发实训报告wordpress社交链接设置

电子商务网站开发实训报告,wordpress社交链接设置,做50个网站,中国建设银行网站查工资python常用模块 re模块 一、正则表达式 在线测试工具 http://tool.chinaz.com/regex/ 1、字符组 #xff1a; [字符组] 在同一个位置可能出现的各种字符组成了一个字符组#xff0c;在正则表达式中用[]表示 字符分为很多类#xff0c;比如数字、字母、标点等等。 假如你现在…python常用模块 re模块 一、正则表达式 在线测试工具 http://tool.chinaz.com/regex/ 1、字符组 [字符组] 在同一个位置可能出现的各种字符组成了一个字符组在正则表达式中用[]表示 字符分为很多类比如数字、字母、标点等等。 假如你现在要求一个位置”只能出现一个数字”,那么这个位置上的字符只能是0、1、2…9这10个数之一。 2、字符 元字符 .:匹配除换行符以外的任意字符 \w:匹配字母或数字或下划线 \s:匹配任意的空白符 \d:匹配数字 \n:匹配一个换行符 \t:匹配一个制表符 \b:匹配一个单词的结尾 ^:匹配字符串的开始 $:匹配字符串的结尾 \W:匹配非字母或数字或下划线 \D:匹配非数字 \S:匹配非空白符 a|b:匹配字符a或字符b ():匹配括号内的表达式也表示一个组 3、量词 *:匹配零次或更多次 :匹配一次或更多次 ?:匹配零次或一次 {n}:匹配n次 {n,}:匹配n次或更多次 {n,m}:匹配n次至m次 4、.*$的用法 5、*?{ }的用法 6、字符集^用法 7、分组 ()与 或 ^用法 8、转义符 \用法 9、贪婪匹配用法 二、python中re模块及常用方法 1、介绍 re 模块使 Python 语言拥有全部的正则表达式功能 re 模块也提供了与这些方法功能完全一致的函数这些函数使用一个模式字符串做为它们的第一个参数 2、常用方法 参数说明 pattern —— 匹配的正则表达式 string —— 待匹配的字符串 flags —— 标志位用于控制正则表达式的匹配方式如是否区分大小写多行匹配等等 匹配对象方法 group(num0) —— 匹配的整个表达式的字符串group() 可以一次输入多个组这里写代码片号在这种情况下它将返回一个包含那些组所对应值的元组 groups() —— 返回一个包含所有小组字符串的元组从1到所含的小组号 ①☆findall()返回所有满足匹配条件的结果至列表中 import re res re.findall(s,life is short) print(res)[s,s] ②☆search() 返回第一个包含匹配条件的信息对象可以调用该对象的group()方法将匹配的字符输出如果没有匹配到则调用group()方法会报错 import re res re.search(s,life is short) print(res.group())s ③☆match() 与search()方法类似但是仅在字符串开始出匹配返回第一个包含匹配条件的信息对象调用该对象的group()方法将匹配的字符输出如果没有匹配到则调用group()方法会报错 import re res re.match(l,life is short) print(res.group())l ④split() 逐个按符合条件的字符串对待匹配字符串进行切分返回结果列表 import re res re.split([ab],abcd) # 首先按a进行切分形成[,bcd]之后再按b进行切分形成[,,cd] print(res)[,,cd] ⑤sub() 将待匹配字符串中满足匹配条件的内容进行替换最后一个参数指定替换的次数返回替换后的字符串 import re res re.sub(\d,_,life8is7short7,2) print(res)life_is_short7 ⑥subn() 与sub()方法类型但是无法指定替换的次数并且输出的是一个元组包括替换后的字符串和替换的总次数 import re res re.subn(\d,_,life8is7short7) print(res)(life_is_short_, 3) ⑦compile() 将正则表达式编译成为一个正则表达式对象之后可以用re模块中的方法对对象进行操作 import re obj re.compile(\d{3}) res obj.search(123abc456) 或者res re.search(obj,123abc456) print(res.group()) ⑧finditer() finditer返回一个存放匹配结果的迭代器用next等方法取出存放结果的对象再用group()方法取出结果 import re res re.finditer(\d,a1b2c3d4e5) print(next(res).group()) print(next(res).group()) print(next(res).group()) print([i.group() for i in res])123[4, 5] ★findall的优先级查询: 将findall()方法中匹配条件中加括号后只会输出匹配到的字符串可以在括号中加入?:取消权限 import re res re.findall(www.(baidu|google).com,www.baidu.com) print(res)[baidu]#取消权限 import re res re.findall(www.(?:baidu|google).com,www.baidu.com) print(res)[www.baidu.com] ★split的优先级查询:将split()方法中的匹配条件加括号后会将满足条件的切分字符也输出值最终列表中同样可以在括号中加入?:取消权限 import re res re.split((\d),life1is2short3) print(res)[life, 1, is, 2, short, 3, ]#取消权限 import re res re.split((?:\d),life1is2short3) print(res)[life, is, short, ] collections模块 在内置数据类型dict、list、set、tuple的基础上 collections模块还提供了几个额外的数据类型Counter、deque、defaultdict、namedtuple和OrderedDict等。 1.namedtuple: 生成可以使用名字来访问元素内容的tuple from collections import namedtuple Point namedtuple(point,[x,y]) p1 Point(1,2) p2 Point(99,100)print(p1.x) print(p1.y) print(p2) 12point(x99, y100) 2.deque: 双端队列可以快速的从另外一侧追加和推出对象 使用list存储数据时按索引访问元素很快但是插入和删除元素就很慢了因为list是线性存储数据量大的时候插入和删除效率很低。 deque是为了高效实现插入和删除操作的双向列表适合用于队列和栈 from collections import deque dq deque([A,B,C]) dq.append(X) dq.appendleft(Y) print(dq)deque([Y, A, B, C, X])print(dq.pop())Xprint(dq.popleft())Ydq.insert(1,666) print(dq)deque([A, 666, B, C]) Counter类的目的是用来跟踪值出现的次数。它是一个无序的容器类型以字典的键值对形式存储其中元素作为key其计数作为value。 计数值可以是任意的Interger包括0和负数。Counter类和其他语言的bags或multisets很相似。 from collections import Counter c Counter(aaabbbbcccddddddeeeeffffff) print(c)Counter({d: 6, f: 6, e: 4, b: 4, c: 3, a: 3}) 4.OrderedDict: 有序字典 使用dict时Key是无序的。在对dict做迭代时我们无法确定Key的顺序。 如果要保持Key的顺序可以用OrderedDict from collections import OrderedDict od OrderedDict([(a,1),(b,2),(c,3)]) print(od) print(od[a]) print(od[b]) print(od[c]) OrderedDict([(a, 1), (b, 2), (c, 3)])123 5.defaultdict: 带有默认值的字典 from collections import defaultdict values [11, 22, 33,44,55,66,77,88,99,90]dd defaultdict(list) dd[k1].append(1) dd[k1].append(2) dd[k1].append(3) dd[k1].append(4) dd[k1].append(5) print(dd)defaultdict(class list, {k1: [1, 2, 3, 4, 5]}) 时间模块 一、表示时间的三种方式 1、时间戳timestamp 通常来说时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”返回的是float类型。 import time print(time.time())1515570662.77503 2、时间字符串Format String import time print(time.strftime(%Y-%m-%d %H-%M-%S))2018-01-10 15-59-16 3、结构化时间struct_time import time print(time.localtime())time.struct_time(tm_year2018, tm_mon1, tm_mday10, tm_hour16, tm_min0, tm_sec33, tm_wday2, tm_yday10, tm_isdst0) 二、几种格式之间的转换 1、时间戳–结构化时间 语法 time.gmtime(时间戳) #UTC时间与英国伦敦当地时间一致 time.localtime(时间戳) #当地时间。例如我们现在在北京执行这个方法与UTC时间相差8小时UTC时间8小时 北京时间 import time print(time.localtime(1515570662.77503))time.struct_time(tm_year2018, tm_mon1, tm_mday10, tm_hour15, tm_min51, tm_sec2, tm_wday2, tm_yday10, tm_isdst0) import time print(time.gmtime(1515570662.77503))time.struct_time(tm_year2018, tm_mon1, tm_mday10, tm_hour7, tm_min51, tm_sec2, tm_wday2, tm_yday10, tm_isdst0) 2、结构化时间–时间戳 语法 time.mktime(结构化时间) import time time_tuple time.localtime(1500000000) print(time.mktime(time_tuple))1500000000.0 3、字符串时间–结构化时间 语法 time.strptime(时间字符串,字符串对应格式) import time print(time.strftime(%Y-%m-%d %X))2018-01-10 16:19:46 print(time.strftime(%Y-%m-%d,time.localtime(1515570662.77503)))2018-01-10 4、结构化时间–字符串时间 语法: time.strftime(“格式定义”,”结构化时间”) 结构化时间参数若不传则现实当前时间 import time print(time.strptime(2017-03-16,%Y-%m-%d))time.struct_time(tm_year2017, tm_mon3, tm_mday16, tm_hour0, tm_min0, tm_sec0, tm_wday3, tm_yday75, tm_isdst-1) print(time.strptime(07/24/2017,%m/%d/%Y))time.struct_time(tm_year2017, tm_mon7, tm_mday24, tm_hour0, tm_min0, tm_sec0, tm_wday0, tm_yday205, tm_isdst-1) random模块 一、常用方法 1、随机小数 import random print(random.random()) # 随机输出在0-1之间的小数0.11828833626857149import random print(random.uniform(1,5)) # 随机输出在范围之间的小数2.164732131520036 2、随机整数 import random print(random.randint(5,10)) # randint中的范围包括首尾8import random print(random.randrange(5,10,2)) # randrange中的范围顾首不顾尾可以指定步长7 3、随机选择一个返回 import random print(random.choice([1,23,[4,5],(6,7)]))(6, 7) 4、随机选择多个返回可以指定返回的个数 import random print(random.sample([1,23,[4,5],(6,7)],2)) [(6, 7), 1] 5、打乱顺序 import random item[1,2,3,4,5,6,7,8,9] random.shuffle(item) print(item)[2, 6, 8, 3, 5, 4, 7, 1, 9] 二、应用实例 import random def v_code():code for i in range(5):numrandom.randint(0,9)alfchr(random.randint(65,90))addrandom.choice([num,alf])code.join([code,str(add)])return code print(v_code()) os模块 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.popen(bash command) 运行shell命令获取执行结果 os.environ 获取系统环境变量 os.path部分 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的大小 sys模块 sys模块是与python解释器交互的一个接口 sys.argv 命令行参数List第一个元素是程序本身路径 sys.exit(n) 退出程序正常退出时exit(0),错误退出sys.exit(1) sys.version 获取Python解释程序的版本信息 sys.path 返回模块的搜索路径初始化时使用PYTHONPATH环境变量的值 sys.platform 返回操作系统平台名称 二、应用实例异常处理和status import sys try:sys.exit(1) except SystemExit as e:print(e) 序列化模块 一、定义 将原本的字典、列表等内容转换成一个字符串的过程叫做序列化其反过程叫反序列化。 二、目的 以某种存储形式使自定义对象持久化将对象从一个地方传递到另一个地方使程序更具维护性三、过程 字符串——反序列化——其他数据结构字符串——序列化——其他数据结构四、序列化相关模块 1、json:用于字符串(包括其他支持json的语言)和python数据类型间进行转换 ①dumps、loads 内存操作dumps用于将结构化数据转化成字符串loads用于将字符串转化为结构化数据  注意json转换完的字符串类型的字典中的字符串是由”“表示的 import json dic {k1:v1,k2:v2,k3:v3} dic_d json.dumps(dic) print(dic_d){k2: v2, k3: v3, k1: v1}dic_s json.loads(dic_d) print(dic_s){k1: v1, k3: v3, k2: v2} ②dump、load 文件句柄操作dumps用于将结构化数据转化成字符串并操作文件句柄存储于文件中 loads用于将字符串转化为结构化数据并操作文件句柄将数据从文件中读至内存 import json dic {k1:v1,k2:v2,k3:v3} with open(json_file,modew) as f:dic_fdjson.dump(dic,f) 文件中的内容{k3: v3, k2: v2, k1: v1}with open(json_file,moder) as f:dic_fsjson.load(f) print(dic_fs){k1: v1, k3: v3, k2: v2} ③ensure_ascii关键字参数ensure_ascii默认True如果数据中包括非ascii字符则会以bytes类型数据存储在文件中若将ensure_ascii改为False则会以人类可识别字符存储 import json# 默认ensure_ascii是True说明支持系统用ascii编码进行数据存储所以数据在文件中是以bytes类型(utf-8/utf-16/GBK)等方式进行 # 存储的人类不能直接识别文件中的中文数据内容如果非要识别则需要进行解码操作 # 如果将ensure_ascii改为False则在数据存储时就将数据按照人类可识别的内容进行存储可直接阅读 dic {姓名:张三,性别:男,年龄:18} with open(json_file,modew) as f:dic_fd json.dump(dic,f){\u5e74\u9f84: 18, \u6027\u522b: \u7537, \u59d3\u540d: \u5f20\u4e09}str1 b\u5e74\u9f84 print (str1.decode(unicode_escape))年龄dic {姓名:张三,性别:男,年龄:18} with open(json_file,modew) as f:dic_fd json.dump(dic,f,ensure_asciiFalse)乱码因为在windows系统下默认用GBK存储但是道理没变如果是内存操作则可以通过pycharm是utf-8的字符编码直接读出 ④其他参数说明 Skipkeys默认值是False如果dict的keys内的数据不是python的基本类型(str,unicode,int,long,float,bool,None)设置为False时就会报TypeError的错误。此时设置成True则会跳过这类key ensure_ascii:当它为True的时候所有非ASCII码字符显示为\uXXXX序列只需在dump时将ensure_ascii设置为False即可此时存入json的中文即可正常显示。) indent应该是一个非负的整型如果是0就是顶格分行显示如果为空就是一行最紧凑显示否则会换行且按照indent的数值显示前面的空白分行显示这样打印出来的json数据也叫pretty-printed json separators分隔符实际上是(item_separator, dict_separator)的一个元组默认的就是(‘,’,’:’)这表示dictionary内keys之间用“,”隔开而KEY和value之间用“”隔开。 sort_keys将数据根据keys的值进行排序。 import json data {username:[张三,李四],sex:male,age:16} json_dic2 json.dumps(data,sort_keysTrue,indent2,separators(,,:),ensure_asciiFalse) print(json_dic2)\\\ {age:16,sex:male,username:[张三,李四]} 2、pickle:用于python特有的类型和python的数据类型间进行转换 注意 ①与json相似pickle提供的方法与json相同不同的是pickle可以转换python特有的数据类型而非只有dic、list(tuple)②pickle在文件存储时使用bytes类型进行存储所以在读写文件的时候要求mode为wb/rb模式3、shelve:只提供一个open方法用key来访问使用起来与字典类似 ①序列化到文件、从文件反序列化 import shelve with shelve.open(shelve_file) as f:f[key] {1,2,3,4,5,6,7,8,9}import shelve with shelve.open(shelve_file) as f:data f[key] print(data){1, 2, 3, 4, 5, 6, 7, 8, 9} ②该模块不支持多个应用同一时间往同一个DB进行写操作。所以当我们知道我们的应用如果只进行读操作我们可以让shelve通过只读方式打开DB。 import shelve with shelve.open(shelve_file,flagr) as f:data f[key] print(data){1, 2, 3, 4, 5, 6, 7, 8, 9} ③??? 该模块在默认情况下不会记录待持久化对象的任何修改所以需要在shelve.open()时修改默认参数否则对象的修改不会保存。 import shelve with shelve.open(shelve_file, writebackTrue) as f2:print(修改前 str(f2[key]))f2[key] this was not here before修改前{1, 2, 3, 4, 5, 6, 7, 8, 9}with shelve.open(shelve_file, writebackTrue) as f3:print(修改后str(f3[key]))修改后this was not here before  转载于:https://www.cnblogs.com/lidaxu/p/8277245.html
http://www.zqtcl.cn/news/193637/

相关文章:

  • 建设银行商城网站浙江建站管理系统价格
  • 我想做个网站怎么做的常用的网络营销方法及效果
  • 南通专业做网站南宁网站建设mxfsem
  • 阿里巴巴电子商务网站建设目的网站专题素材
  • 浙江虎霸建设机械有限公司网站哪个网站做简历好
  • 网站做电商资质吗网站开发作品
  • 大型彩灯制作公司临清聊城网站优化
  • 网站建设灬金手指下拉十五网络运维工程师简历怎么写
  • 黄岛建设局网站动漫采集WordPress
  • 做网站现在挣钱吗wordpress 网址导航主题
  • 外贸网站什么采集wordpress主题更换logo
  • 唐山开发网站的公司长沙营销型网站设计
  • 数据库策略网站推广的有效方法有美辰网站建设
  • c 网站开发构想做网站的点子
  • 个人网站模板下载提供网站建设备案公司
  • 做网站需要会写代码6山东东营
  • 兼职刷客在哪个网站做网站搬家数据库配置
  • 做搬运的话哪个网站好网站模板建站
  • 建设个人信息网站wordpress 用户权限
  • 网站不显示域名解析错误怎么办公益网站设计
  • 怎么上传网站图片的链接手表网站排行榜
  • 网站推广方法100种百度排名规则
  • 上海专业网站建设公司站霸网络萝岗区网站建设推广
  • 做微商网站的公司永久免费crm管理系统
  • 网站开发的环境专业的建设网站
  • 公司网站建设知识注册网站备案
  • 营销型网站建设申请域名在域名做网站
  • 电商网站设计公司立找亿企邦山东德州网站建设哪家最好
  • 免费自建网站工具网站建设公司那个好
  • wordpress集成环境搭建短视频优化