python字符串操作

Python正则表达式

血红的双手。 提交于 2019-12-05 09:32:26
正则表达式 正则表达式的定义: 正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母) 和特殊字符(称为"元字符")。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法 规则的字符串。 正则表达式的作用: (1)通用的字符串表达框架;(2)简洁表达一组字符串的表达式;(3) 针对字符串表达“简洁”和特征的思想工具;(4)判断某字符串的特征归属。 正则表达式常用于文本处理,通常用于这几方面: (1)表达文本类型的特征;(2)同时查找 或替换一组字符串;(3)匹配字符串的全部或部分(用的最广泛)。 正则表达式的使用: 编译,将符合正则表达式语法的字符串转化成正则表达式特征。 正则表达式的语法: 正则表达式语法是由字符和操作符构成。 常用的操作符: 经典实例: ^[A-Za-z]+$ 由26个字母组成的字符串 ^[A-Za-z0-9]+$      由26个字母和0到9数字组成的字符串 ^-?\d+$      整数形式字符串(复数前面有"-"号) ^[0-9]*[1-9][0-9]*$      正整数形式字符串 [1-9]\d{5}      中国境内邮政编码,6位 [\u4e00-\u9fa5]       匹配中文字符 \d{3}-\d{8}|\d{4}-\d{7}     国内电话号码(前面3位,后面8位,或者前面4位

django-ORM的查询条件

烈酒焚心 提交于 2019-12-05 07:38:34
前提是创建好了ORM的模型(参照https://www.cnblogs.com/ifdashui/p/11901084.html) 现在数据库中存在下列的数据(以下的查询条件根据这些数据做处理) 在models.py中 # -*- coding: UTF-8 -*- from django.db import models class Article(models.Model): title = models.CharField(max_length=200) content = models.TextField() class Meta: db_table = 'article' #更改这个表的名字,映射到数据中的话名称不是Article_article了,是你自定义设置的article 使用下面这两条命令在数据库中映射:(注意进入项目路径以及有虚拟环境的进入虚拟环境) python manage.py makemigrations python manage.py migrate 接下来就在views.py中操作即可 在model.py中,创建一个ORM模型 from django.db import models class Article(models.Model): title = models.CharField(max_length=200) content =

JsonPath python

眉间皱痕 提交于 2019-12-05 07:07:34
JsonPath JsonPath 是一种信息抽取类库,是从JSON文档中抽取指定信息的工具,提供多种语言实现版本,包括:Javascript, Python, PHP 和 Java。 JsonPath 对于 JSON 来说,相当于 XPATH 对于 XML。 下载地址: https://pypi.python.org/pypi/jsonpath 安装方法:点击 Download URL 链接下载jsonpath,解压之后执行 python setup.py install 官方文档: http://goessner.net/articles/JsonPath JsonPath与XPath语法对比: Json结构清晰,可读性高,复杂度低,非常容易匹配,下表中对应了XPath的用法。 XPath JSONPath 描述 / $ 根节点 . @ 现行节点 / . or [] 取子节点 .. n/a 取父节点,Jsonpath未支持 // .. 就是不管位置,选择所有符合条件的条件 * * 匹配所有元素节点 @ n/a 根据属性访问,Json不支持,因为Json是个Key-value递归结构,不需要。 [] [] 迭代器标示(可以在里边做简单的迭代操作,如数组下标,根据内容选值等) | [,] 支持迭代器中做多选。 [] ?() 支持过滤操作. n/a () 支持表达式计算 () n/a

Python常见序列详解

三世轮回 提交于 2019-12-05 06:26:51
转自 https://www.cnblogs.com/diaosir/p/6575891.html 一、Python中序列的分类    常见序列类型包括字符串(普通字符串和unicode 字符串),列表和元组.所谓序列,即成员有序排列,可通过下标访问.    二、Python序列通用操作   下面 我们将分别以字符串、列表和元组为例来说明对序列的操作 索引    序列中的元素都是有序的、拥有自己编号(从0开始),我们可以通过索引得到序列中对应的元素:   索引也可以为负值,负数索引表示从右往左开始计数,最后一个元素索引为-1,倒数第二为-2,以此类推. >>> s = 'abcdefg' >>> s[0] 'a' >>> s[1] 'b' >>> s[-1] 'g' >>> >>> l = [1,2,3,4,5,6,7] >>> l[4] 5 >>> l[0] 1 >>> l[-1] 7 >>> >>> t = (1,2,3,4,5,6,7) >>> t[0] 1 >>> t[-1] 7 >>> t[4] 5>>> s[::-1]'gfedcba'   2. 切片(分片)    使用索引可以获取单个元素,使用分片可以获取序列中指定范围内的元素.切片操作符[:]/[::] obj[start_index:end_index] 表示获取从start_index开始到end_index

字符串的常用操作

假如想象 提交于 2019-12-05 06:11:35
employee = ‘hungry’ # capitazlize 首字母大写 a = employee.capitalize() print(a) # count 统计 b = employee.count('e') print(b) # center:返回一个居中的字符串 c = employee.center(20,'-') print(c) # encode 使用机器默认的编码进行编码,在字符串中将不是本机编码的字符串转换成本机的编码的内容 d = employee.encode() print(d) # 判断“hungry”是否以‘fp’结尾,为真,返回True,为假,返回False e = employee.endswith('fp') print(e) # 将 \t 转换成空格employee1='I'm\tvery\thungry' f = employee1.expandtabs(tabsize=30) print(f) # 找到字符的索引值,并返回索引值,如果没有找到,则返回-1 g = employee.find('n') print(g) # 字符串的切片 print(employee[employee.find('n'):]) # 格式化输出 print('员工的姓名:{}'.format(employee)) # 主要用于字典的

iOS-代码混淆加固策略

微笑、不失礼 提交于 2019-12-05 05:55:15
点击上方“ iOS开发 ”,选择“置顶公众号” 关键时刻,第一时间送达! 作者:树下敲代码的超人 链接:https://www.jianshu.com/p/628a0c232c2a iOS开发整理发布,转载请联系作者获得授权 对于IOS来说,由于系统是封闭的,APP上架需要通过App Store,安全性来说相当高。但是对于大厂和知名APP而言,别人给的安全保障永远没有自己做的来得踏实。所以对于大厂、少部分企业级和金融支付类应用来说加固是相当重要的。 下面是目前几个专业加固大厂提供的加固策略 网易 网易 网易安全三板斧: 第一板斧是防静态分析,这里包括字符串加密、符号混淆、代码逻辑混淆和游戏存档加密; 第二板斧是防动态调试、反调试和通信安全(数据加密); 第三板斧是外挂检测、加速挂、内存修改挂和自动任务挂等 爱加密 爱加密 safengine afengine 几维安全 几维安全 梆梆安全 梆梆安全 本文将针对以上几点进行实现,对于一些不太容易实现的将会做方向性讨论 字符串加密 代码混淆(方法命,类命,变量名,符号表) 代码逻辑混淆 反调试 字符串加密 对字符串加密的方式目前我所了解到掌握到的最可靠方式就是用脚本将代码中的所有标记需要加密的字符串进行异或转换,这样代码中就不存在明文字符串了。当然第三方的字符串加密不可能这么简单,具体怎么做的我也不太清楚

Python常用模块大全

心已入冬 提交于 2019-12-05 05:28:20
Python常用模块大全 os模块: os.remove() 删除文件 os.unlink() 删除文件 os.rename() 重命名文件 os.listdir() 列出指定目录下所有文件 os.chdir() 改变当前工作目录 os.getcwd() 获取当前文件路径 os.mkdir() 新建目录 os.rmdir() 删除空目录(删除非空目录, 使用shutil.rmtree()) os.makedirs() 创建多级目录 os.removedirs() 删除多级目录 os.stat(file) 获取文件属性 os.chmod(file) 修改文件权限 os.utime(file) 修改文件时间戳 os.name(file) 获取操作系统标识 os.system() 执行操作系统命令 os.execvp() 启动一个新进程 os.fork() 获取父进程ID,在子进程返回中返回0 os.execvp() 执行外部程序脚本(Uinx) os.spawn() 执行外部程序脚本(Windows) os.access(path, mode) 判断文件权限(详细参考cnblogs) os.wait() 暂时未知 os.path模块: os.path.split(filename) 将文件路径和文件名分割(会将最后一个目录作为文件名而分离) os.path.splitext

Python 字符串

半城伤御伤魂 提交于 2019-12-05 05:03:14
Python 字符串 字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。 创建字符串很简单,只要为变量分配一个值即可。例如: v1 = 'Hello World!' v2 = "Python " Python 访问字符串中的值 Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。 Python 访问子字符串,可以使用方括号来截取字符串,如下实例: #!/usr/bin/python A1 = 'Hello World!' A2 = "Python ASSFG" print("A1[0]: ", A1[0]) print("A2[1:5]: ", A2[1:5]) 结果: A1[0]: H A2[1:5]: ytho Python 字符串连接 我们可以对字符串进行截取并与其他字符串进行连接,如下实例: #!/usr/bin/python # -*- coding: UTF-8 -*- var1 = 'Hello World!' print ("输出 :- ", var1[:6] + 'b!') 输出 :- Hello b! Python 转义字符 在需要在字符中使用特殊字符时,python 用反斜杠 转义字符。如下表: 转义字符 描述 \(在行尾时) 续行符 \\ 反斜杠符号 \' 单引号 \" 双引号 \a 响铃 \b

Python基础之数据类型详解

徘徊边缘 提交于 2019-12-05 04:59:09
类似于其他语言,Python也将需要表示和操作的数据划分成不同的数据类型。python中的每个数据值都被称为一个对象(object),并且这个对象有三个属性值(唯一标识、数据类型、值),分别对应计算机内存地址、数据类别、数据值。 python数据类型分类如下: 数字类型与其他编程语言类似,这里不再具体讲解。作为Python中最重要的基础知识,下面主要梳理下字符串、列表、元组、字典、集合的核心知识点。 首先明确几个概念 序列: 有固定顺序排列的数据。 不可变类型: 如果变量名引用的内存空间的值不能够修改,数字、字符串、布尔值、元组属于不可变类型。 可变类型: 变量名引用的内存空间的值能够修改,可以向容器中增删对象,将容器中的某个元素的索引赋给一个新的对象。列表(List)、字典(Dictionary)、集合属于可变类型。 索引 索引可以理解为元素的下标,我们可以通过索引(index)来获取序列中的元素。序列中每个元素都有一个位置,按照顺序进行标记,索引是从0开始的整数,第一个位置索引为0,第二个位置索引为1,以此类推。 索引的用法:使用 序列名[索引值] 切片 切片操作(slice)可以从一个字符串中获取子字符串(字符串的一部分)。我们使用一对方括号、起始偏移量start、终止偏移量end 以及可选的步长step 来定义一个分片。切片使用 索引值 来限定范围,从一个大的序列

整形,字符串,布尔值,for循环

烈酒焚心 提交于 2019-12-05 04:03:45
一,整型int 用于计算和比较,在python3中所有的整数都是int类型 二进制和十进制的转换 十进制转换成二进制: 正整数转换成二进制:除二取余,倒序排列,高位补零 14 % 2 = 0 7 % 2 = 1 3 % 2 = 1 1 % 2 = 1 0 14转换为二进制为:0000 1110 负整数先转换成对应的正整数,转换成二进制,对二进制取反,再对结果加一 二进制转换成十进制: 先将二进制补齐位数,如果首位是0代表是正整数,首位是1代表是负整数 正整数:补齐位数后,将二进制中的位数分别将下边对应的值相乘,然后相加得到十进制 1010 # 先补齐位数 => 0000 1010 128 64 32 16 8 4 2 1 常用的8位 2**3 *1 + 2**2 * 0 + 2**1 * 1 + 2**0 * 0 = 10 负整数,先对二进制取反,再进行换算 bit_length() 求十进制数转换成二进制时所占用的长度 二,布尔值 True 真 非0数字 非空字符串 False 假 0 空字符串 类型转换:想要转换成什么类型,就用这个类型把需要转换的内容括起来 a = "hahahahaha" b = "123456" c = 123456 a1 = bool(a) => True b1 = int(b) => 123456 c1 = str(c) => "123456" 三