python字符串比较

关于Python爬虫面试170道题

*爱你&永不变心* 提交于 2019-11-28 11:12:12
原文: http://blog.gqylpy.com/gqy/413 置顶:来自一名75后老程序员的武林秘籍——必读 (博主推荐) 来,先呈上武林秘籍链接: http://blog.gqylpy.com/gqy/401/ 你好,我是一名极客!一个 75 后的老工程师! 我将花两分钟,表述清楚我让你读这段文字的目的! 如果你看过武侠小说,你可以把这个经历理解为,你失足落入一个山洞遇到了一位垂暮的老者!而这位老者打算传你一套武功秘籍! 没错,我就是这个老者! 干研发 20 多年了!我也年轻过,奋斗过!我会画原理图,会画 PCB,会模拟,会数字!玩过 PLC,玩过单片机,会用汇编,会用 C!玩过 ARM,比如 PLC,STM32,和时下正在起飞的 NXP RT1052!搞过 DSP,比如 TMS320F28335!搞过 FPGA,不管 Xilinx 还是 Altera,也不管是 Verilog 还是 VHDL,或者直接画数字电路图!我懂嵌入式系统,比如 uCOS 和 Linux!我懂开源的硬件,比如 Arduino 和树莓派!我也搞软件,学了一堆上位机的语言C#,JAVA,Python,Kotlin,Swift!会写爬虫工具,又自学写APP,不管Android 还是 IOS! 可是这一切有什么用呢?土鸡瓦狗!不值一提!干技术的永远就是最苦逼的那个人! 我相信看到这里的你,应该是个 IT

【正则表达式介绍篇】

徘徊边缘 提交于 2019-11-28 10:49:28
原文: http://blog.gqylpy.com/gqy/381      正则表达式 ,又称规则表达式。(英语:Regular Expression,在代码中常简写为Regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。     许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在 Perl 中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由 Unix 中工具软件(例如 sed 和 grep )普及开的。正则表达式通常缩写称“regex”, 单数 有regexp、regex, 复数 regexps、regexes、regexen。 *** 概念     正则表达式是对 字符串 操作的一种逻辑公式,就是用事先定义好的一些特殊字符、及这个特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。 简介     正则表达式是对字符串(包括普通字符(例如,a到z之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,模式描述在搜索文本时要匹配的一个或多个字符串。 起源     正则表达式的“鼻祖

081 re正则表达式模块

老子叫甜甜 提交于 2019-11-28 08:39:34
目录 一、正则表达式 二、re模块的基本语法 ^ 元字符 $ 元字符 [] 元字符(字符集) [^] 反取 . 任意字符(换行符除外) * 对前一个字符0-无穷次扩展 + 对前一个字符1-无穷次扩展 ? 对前一个字符0或1次扩展 {m} 对前一个字符扩展m次 {m,n} 对前一个字符扩展m-n次(含n) \d 匹配单个数字(0-9) \D 匹配单个非数字(包括\n) \w 匹配 数字/字母/下划线 \W 匹配 非数字/非字母/非下划线 \s 匹配 空格/ \t/ \n \S 匹配 非空格/ 非\t/ 非\m () 只要括号内的 | 左右两边的字符都要 .* 贪婪模式 **.*? 非贪婪模式** 三、re模块中常用功能函数 3.1 正则表达式的两种书写方式 3.2 re.compile(strPattern[, flag])函数 3.2.1 re.S 3.2.2 re.I 3.2.3 re.M 3.2.4 re.sub 3.3 分组函数 3.4 re.match(pattern, string[, flags])函数(常用) 3.5 re.search(pattern, string[, flags])函数 3.6 re.findall(pattern, string[, flags])函数(常用) 3.7 re.split(pattern, string[, maxsplit]

python 历史

十年热恋 提交于 2019-11-28 08:29:31
python python的历史 2004出现Django框架 2008出现python3 pyton2和python3的区别 python2: 源码不统一,源码重复 python3: 源码统一,源码不重复; 语言类型 编译型:一次性翻译(C) 优点:运行速度快 缺点:翻译时间长 解释型:一行一行翻译(python) 优点:开发效率高(翻译时间短) 缺点:运行速度慢 强类型语言和弱类型语言 python 是一种动态的解释性的强类型的语言。 变量 a=123 变量分为三部分:变量名 赋值 值 a = "日默" 给一个东西写一个标签并贴在这个东西上的过程 变量名的规则: 变量名由数字字母下划线组成 变量不能以数字开头 变量名要具有描述性 变量名要区分大小写 变量名禁止使用python关键字 变量名不能使用中文和拼音 变量名推荐写法 ​ 7.1驼峰体 : AgeOfoldBoy ​ 7.2下划线 : age_of_old_boy 常量 ​ 变量名全部大写的叫做常量,多写字配置文件中不经常改变。 注释 单行注释(当行注释)# 多行注释 """ 123 """ ''' 123 ''' 被注释的内容,不会执行相当于是字符串 基本数据类型初识 字符串:用于存储一些数据,在python中用引号引起来的都是字符串 ​ 字符串+:字符串+字符串 ​ 字符串* :字符串和数字相乘 数字:用于计算和比较

藏在正则表达式的陷阱

試著忘記壹切 提交于 2019-11-28 07:05:44
大家好,我是你们的导师,我每天都会在这里给大家分享一些干货内容(当然了,周末也要允许老师休息一下哈)。上次老师跟大家分享了分布式锁,今天给大家分享一下正则表达式的知识。 前几天线上一个项目监控信息突然报告异常,上到机器上后查看相关资源的使用情况,发现 CPU 利用率将近 100%。通过 Java 自带的线程 Dump 工具,我们导出了出问题的堆栈信息。 通过 Java 自带的线程 Dump 工具,我们导出了出问题的堆栈信息。我们可以看到所有的堆栈都指向了一个名为 validateUrl 的方法,这样的报错信息在堆栈中一共超过 100 处。 通过排查代码,我们知道这个方法的主要功能是校验 URL 是否合法。很奇怪,一个正则表达式怎么会导致 CPU 利用率居高不下。 为了弄清楚复现问题,我们将其中的关键代码摘抄出来,做了个简单的单元测试。 public static void main(String[] args) { String badRegex = "^([hH][tT]{2}[pP]://|[hH][tT]{2}[pP][sS]://)(([A-Za-z0-9-~]+).)+([A-Za-z0-9-~\\\\/])+$"; String bugUrl = "http://www.fapiao.com/dddp-web/pdf/download?request

python针对性练习

倖福魔咒の 提交于 2019-11-28 04:47:00
一、数据结构与算法 解压序列赋值给多个变量 解压可迭代对象赋值给多个变量 保留最后N个元素 查找最大或最小的N个元素 实现一个优先级队列 字典中的键映射多个值 字典排序 字典的运算 查找两字典的相同点 删除序列相同的元素并保持顺序 命令切片 序列中出现次数最多的元素 通过某个关键字排序一个字典数组 排序不支持原生比较的对象 通过某个字段将记录分组 过滤序列元素 从字典中提取子集 映射名称到序列元素 转换并同时计算数据 合并多个字典或映射 二、字符串与文本 使用多个界定符分割字符串 字符串开头或结尾匹配 用Shell通配符匹配字符串 字符串匹配和搜索 字符串搜索和替换 字符串忽略大小写的搜索替换 最短匹配模式 多行匹配模式 将Unicode文本标准化 在正则式中使用Unicode 删除字符串中不需要的字符 审查清理文本字符串 字符串对齐 合并拼接字符串 字符串中插入变量 以指定列宽格式化字符串 在字符串中处理html和xml 字符串令牌解析 实现一个简单的递归下降分析器 字节字符串上的字符串操作 来源: https://www.cnblogs.com/lilong74/p/11386905.html

DAY19

人走茶凉 提交于 2019-11-28 01:20:22
DAY19 re模块 正则表达式 ​ 正则表达式本身是一种小型的、高度专业化的编程语言,它并不是Python的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大。得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于不同的编程语言实现支持的语法数量不同;但不用担心,不被支持的语法通常是不常用的部分。如果已经在其他语言里使用过正则表达式,只需要简单看一看就可以上手了。而在python中,通过内嵌集成re模块,程序员们可以直接调用来实现正则匹配。正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎执行。 下图展示了使用正则表达式进行匹配的流程: ​ 正则表达式的大致匹配过程是:依次拿出表达式和文本中的字符比较,如果每一个字符都能匹配,则匹配成功;一旦有匹配不成功的字符则匹配失败。如果表达式中有量词或边界,这个过程会稍微有一些不同,但也是很好理解的,看下图中的示例以及自己多使用几次就能明白。 下图列出了Python支持的正则表达式元字符和语法: 数量词的贪婪模式与非贪婪模式 ​ 正则表达式通常用于在文本中查找匹配的字符串。Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符;非贪婪的则相反,总是尝试匹配尽可能少的字符。例如

Python爬虫+简易词云的制作

梦想与她 提交于 2019-11-28 01:00:07
Python爬虫+简易词云的制作 写在前面 再识Python 简介: 应用场景: Python命令行执行: 基本语法: 连接数据库: Python爬虫 主要步骤: 第一种爬虫:urllib基本库+Beautiful Soup urllib Beautiful Soup 第二种爬虫:Scrapy+xpath Scrapy xpath 简易词云 写在前面 这篇博客是我在大连参加实训时所作,大部分内容为课堂知识记录,也有自己遇到的问题及解决方法,记下来方便自己查阅,也和大家一起学习ヽ(゚∀゚)メ(゚∀゚)ノ 。 我用的python版本:python-3.7.4 使用的IDE:PyCharm 再识Python 简介: Python是荷兰人Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言(TAT)。89年出现第一个版本,比java早诞生,但是没火,因为是脚本语言,解释执行,运行慢。它的优点是代码量极少,算法入库,跨平台,多用于解决算法问题,是面向对象解释型的编程语言,定位是“优雅”、“明确”、“简单”。 ps:AWS亚马逊云服务是最顶尖的云服务。py可以在云服务器上运行,在硬件上弥补运行慢的问题。 其他缺点: GIL(Global Interpreter Lock)全局解释器锁,这是一种防止多线程并发执行机器码的互斥锁

百万年薪python之路 -- 模块二

会有一股神秘感。 提交于 2019-11-27 21:44:07
1. 序列化模块 什么是序列化呢? 序列化的本质就是将一种数据结构(如字典、列表)等转换成一个特殊的序列(字符串或者bytes)的过程就叫做序列化。 为什么要有序列化模块? 如果你写入文件中的字符串是一个序列化后的特殊的字符串,那么当你从文件中读取出来,是可以转化回原数据结构的。 作用及用途 序列化模块就是将一个常见的数据结构转化成一个特殊的序列,并且这个特殊的序列还可以反解回去。它的主要用途: 文件读写数据 , 网络传输数据 。 1.1 json序列化(很重要) 不同语言都遵循json数据转化格式,即不同语言都使用的特殊字符串。 json序列化只支持部分Python数据结构:dict,list, tuple,str,int, float,True,False,None json模块 json模块是将满足条件的数据结构转化成特殊的字符串,并且也可以反序列化还原回去。 上面介绍我已经说过了,序列化模块总共只有两种用法,要不就是用于网络传输的中间环节,要不就是文件存储的中间环节,所以json模块总共就有两对四个方法: 用于网络传输:dumps、loads 用于文件写读:dump、load dumps、loads 将字典类型转换成字符串类型 import json dic = {'k1':'v1','k2':'v2','k3':'v3'} str_dic = json.dumps(dic

python基础数据类型之 bool str int

丶灬走出姿态 提交于 2019-11-27 21:11:17
单词 for len range upper lower startswith endswith count replace strip split isdecimal 判断是不是十进制 -- 用它来判断是不是数字 isalpha # 判断的是中文和字母 isalnum # 判断的是不是字母,中文和阿拉伯数字 for len range # len()#获取长度 fro循环 range #默认从0开始 可以步长 类似列表 顾头不顾尾 range注意事项 s = range(1,10) # 面试大坑 python2 和 python3 print(s) # 范围 range(1, 10) str # 字符串 -- 用于存储数据的 -- 比较少 # python 中只要是用引号 引起来的就是字符串 # 支持索引(引取值的时候超出了索引的范围会报错),切片(切片如果终止位置超出了不报错),步长 注意事项 list('1234')#['1', '2', '3', '4'] str的方法 字符串方法 其实就是调用类的方法 字符串是数字不会报错 b=' aBdsfdfhgjkc6' # print(b.upper())# 全部大写 # print(b.lower())# 全部小写 # print(b.startswith('a')) # 以什么开头 # print(b.endswith("c"