python字符串

Python 爬虫基础知识

早过忘川 提交于 2020-02-01 03:44:53
1、Python中字符串类型的相关梳理 1.1 正常来说Python使用换行作为语句终结,但是在圆括号、方括号、花括号或者三引号内的字符串是例外。如果写一个长字符串,跨越2行或者多行,但是不用三引号字符串,有两种解决办法 (1) t = " This is not the best way to join two long strings” +\ “together since it relies on ugly newline escaping” (2) s =( “This the nice way to join two long string” “together; it relies on string literal concatenation”) 第(2)种情况使用圆括号将其包含在一起。Python的“Idioms and Anti-Idioms” Howto 文档建议总是使用圆括号将跨越多行的任何语句进行封装,而不使用转义的换行符。 1.2 原始字符串用r引导 1.3 str.format()进行字符串格式化 “The novel {0} was published in {1} ”.format(“Hard Times”,1854)如果需要在格式化字符串中包含花括号,将就需要将其复写“{{{0}}}.format(“I’am braces”)” 1.4

Python3 正则表达式 re 模块的使用 - 学习笔记

半世苍凉 提交于 2020-01-31 20:46:59
re 模块的引入 re 模块的使用 re.compile() re.match()与re.search() re.match re.search() 区别 re.findall()与re.finditer() re.findall() re.finditer() 区别 re.sub()与re.subn() re.sub() re.subn() re.split() 正则表达式修饰符(匹配模式) re 模块的引入 Python 自1.5版本起增加了 re 模块,它提供 Perl 风格的正则表达式模式。 re 模块使 Python 语言拥有全部的正则表达式功能。 re 模块的使用 参数含义 pattern: 字符串形式的正则表达式 string: 要匹配的字符串 flags: 可选,表示匹配模式 pos:可选,字符串中开始搜索的位置索引 endpos:可选,endpos 限定了字符串搜索的结束 不填pos endpos默认扫描全部 re.compile() compile(pattern, flags=0) 将正则表达式的样式编译为一个 正则表达式对象 (正则对象) 可以使用正则对象调用 match() 等函数 >>> test = '1 one 2 two 3 three' >>> a=re.compile(r'\d+') >>> b=a.match(test) >>> print

Python中的eval内置函数

拟墨画扇 提交于 2020-01-31 19:31:58
Python中的eval内置函数 1. eval函数是什么 2. 字符串转换成列表 3. 字符串转换成字典 4. 字符串转换称元组 1. eval函数是什么 eval是Python的一个内置函数,这个函数的作用是,返回传入字符串的表达式的结果。即变量赋值时,等号右边的表示是写成字符串的格式,返回值就是这个表达式的结果。 2. 字符串转换成列表 a = "[[1,2],[3,4]]" print ( type ( a ) ) b = eval ( a ) c = list ( a ) print ( type ( b ) ) print ( type ( c ) ) print ( b ) print ( c ) 输出结果: < class 'str' > < class 'list' > < class 'list' > [ [ 1 , 2 ] , [ 3 , 4 ] ] [ '[' , '[' , '1' , ',' , '2' , ']' , ',' , '[' , '3' , ',' , '4' , ']' , ']' ] 3. 字符串转换成字典 a = "{1:'a',2:'b'}" print ( type ( a ) ) b = dict ( eval ( a ) ) print ( type ( b ) ) print ( b ) 输出结果: < class 'str

数据结构入门(三)栈的应用

别来无恙 提交于 2020-01-31 03:40:02
  在之前的两篇文章—— 数据结构入门(一)栈的实现 和 数据结构入门(二)栈的应用之数学表达式求值 中,笔者分别介绍了“栈”这个数据结构在数的进制转换和数学表达式求值方面的应用。在本文中,笔者将会再介绍栈的四个应用,它们分别是: 判断字符串是否回文 括号匹配 行编辑程序 二叉树的深度优先遍历   栈的结构实现可以参考 数据结构入门(二)栈的应用之数学表达式求值 ,本文将不再具体给出。 判断字符串是否回文   所谓回文字符串就是指正读反读均相同的字符序列,如“12321”、“aha”、“ahaha”、“清水池里池水清”均是回文,但“ahah”不是回文。通过栈这个数据结构我们将很容易判断一个字符串是否为回文。   首先我们需要找到该字符串的中心点。对于长度为奇数的字符串,中心点就是中间的那个元素;对于长度为偶数的字符串,中心点恰好位于长度为一半的那个元素及其后一个元素的中间。接着将中心点前面的字符依次入栈,然后将当前栈中的字符依次出栈,看看是否能与 中心点之后的字符一一匹配,如果都能匹配则说明这个字符串是回文字符串,否则就不是回文字符串。   以下是利用栈来实现判断字符串是否回文的Python代码: # -*- coding: utf-8 -*- # using Stack to check if a string is plalindrome from Stack import

python 字符串

感情迁移 提交于 2020-01-30 21:44:02
#字符串test = 'alex'#capitalize() ---首字母大写print(test.capitalize())#lower() ---字母转换为小写test1 = 'Alex'print(test1.lower())#center() ---返回一个长度为width,两边用fillchar(单字符)填充# 的字符串,即字符串str居中,两边用fillchar填充。若字符串的长# 度大于width,则直接返回字符串strprint(test.center(10))print(test.center(10,'#'))#count() ---计算字符在字符串中出行的次数,区分大小写l = 'eileen'l1 = 'eileeneileeneileen'print(l.count('e'))print(l1.count('eileen'))print(l1.count('eileen',5))#从第5个位置开始#endwith() ---以什么结尾print(test.endswith('ex'))#startwith() ---以什么开始print(test.startswith('ex'))#find() ---Python find() 方法检测字符串中是否包含子字符串# str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是# 否包含在指定范围内

python去除字符串中的特殊字符(爬虫存储数据时会遇到不能作为文件名的字符串)

牧云@^-^@ 提交于 2020-01-30 13:33:08
问题描述 今天在写爬虫爬取影评时,本来的思路把影评的标题作为文件名,将每个影评的详情内容写入到“标题.txt”文件中,直到我遇到了这个问题: 这时我突然意识到,文件名中有些字符是不能存在的,怎么解决这些问题呢? 解决问题 首先想到的就是在创建文件时去除掉这些标题中的不能用的字符,机制的我赶紧去重命名了桌面上的一个文件,试图试验出那些字符,然后,机智的微软爸爸早已洞悉了一切, 也就是说文件名中不可以包含 / \ : * ? " < > | 这9个字符,因为考虑到直观性而且数据量不大,最简单的方法就是逐个过滤掉标题中的非法字符,即建立一个字典(这里的字典不是指python中的字典结构),对于每一个title都遍历一次,去除掉其中的非法字符,如下: def correct_title(self, title): error_set = ['/', '\\', ':', '*', '?', '"', '|', '<', '>'] for c in title: if c not in error_set: title.replace(c, '') return title 如此,就使用字符串的replace()达方法到了预期效果 总结 上述做法的主要目的是看着舒服,但实际上在使用和检索时效率不算高也不方便,具体如何做还是要看自己的需求来定 来源: https://www.cnblogs

用python正则表达式提取字符串

若如初见. 提交于 2020-01-29 04:00:26
转自 https://www.cnblogs.com/rj81/p/5933838.html 在日常工作中经常遇见在文本中提取特定位置字符串的需求.python的正则性能好,很适合做这类字符串的提取,这里讲一下提取的技巧,正则表达式的基础知识就不说了,有兴趣的可以看re的教程. 提取一般分两种情况,一种是提取在文本中提取单个位置的字符串,另一种是提取连续多个位置的字符串.日志分析会遇到这种情况.下面我会分别讲一下对应的方法: 1. 单个位置的字符串提取 这种情况我们可以使用 (.+?) 这个正则表达式来提取. 举例,一个字符串 "a123b" ,如果我们想提取ab之间的值123,可以使用 findall 配合正则表达式,这样会返回一个包含所以符合情况的list,代码如下: import re str = "a123b" print re.findall(r"a(.+?)b",str)# 输出['123'] 1.1贪婪和非贪婪匹配 如果我们有一个字符串”a123b456b”,如果我们想匹配a和最后一个b之间的所有值而非a和第一个出现的b之间的值,可以用 ? 来控制正则贪婪和非贪婪匹配的情况. 代码如下: import re str = "a123b456b" print re.findall(r"a(.+?)b", str) #输出['123']#?控制只匹配0或1个

python成长之路【第十五篇】:JavaScript初步认识

穿精又带淫゛_ 提交于 2020-01-29 00:54:55
JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理。 一、如何编写 1、JavaScript代码存在形式 <!-- 方式一 --> <script type"text/javascript" src="JS文件"></script> <!-- 方式二 --> <script type"text/javascript"> Js代码内容 </script> 2、JavaScript代码存放位置 HTML的head中 HTML的body代码块底部(推荐) 由于Html代码是从上到下执行,如果Head中的js代码耗时严重,就会导致用户长时间无法看到页面,如果放置在body代码块底部,那么即使js代码耗时严重,也不会影响用户看到页面效果,只是js实现特效慢而已。 <script src="https://www.gstatic.com/og/_/js/k=og.og2.en_US.iF4jnkQuaf0.O/rt=j/t=zcms/m=def/exm=in,fot/d=1/ed=1/rs=AA2YrTv5-POC4Ks9GtGRdY2ywUWisqz7-Q"></script> <script> alert('123'); </script> 二、变量

SEC集训day3

戏子无情 提交于 2020-01-29 00:42:40
对于python当中切片的使用 在一行字符串当中,在一行字符串当中选取一部分字符串,则需要用到切片(a:: b),a,b都可以任意填写,a也可以不填,不填则表示从一行字符串的第一个开始,也就是从0开始,重点在b,如果b为正的表示从前面开始如果b是负的,则表示b字符串从这一行的后面开始,特别注意,如果b是负的,则最小从-1开始,-1代表的就是这一行字符串的最后的一个字符,不存在-0的这种情况, 先介绍最简单的一种切片的形式: (::2) 是从这一行字符串当中,从这一行字符串的第一个字符开始,每过两个字符选一个字符,就是选第一个字符,然后第四个字符,这样以此类推。 来源: CSDN 作者: #随安 链接: https://blog.csdn.net/weixin_45715779/article/details/103963653

Python2和3字符编码的区别

戏子无情 提交于 2020-01-28 17:46:58
Python2和3字符编码的区别 一、字符编码应用之Python 1.1 执行Python程序的三个阶段 Python test.py (再强调一遍,执行test.py的第一步,一定是先将文件内容从硬盘读入到内存中) test.py文件内容以gbk格式保存的,内容为: [ 阶段一:启动Python解释器 阶段二:Python解释器此时就是一个文本编辑器,负责打开文件test.py,即从硬盘中读取test.py的内容到内存中 此时,Python解释器会读取test.py的第一行内容, #coding:utf-8 或 #-*-coding:utf-8-*- ,以此决定以什么编码格式将代码读入内存,这一行就是设定Python解释器这个软件使用的编码格式。 可以用sys.getdefaultencoding()查看,如果不在Python文件指定头信息 #-*-coding:utf-8-*- ,那就使用Python默认的编码格式。 import sys sys.getdefaultencoding() Copy'utf-8' Python2中默认使用ascii,Python3中默认使用utf-8。 改正:在test.py指定文件头,字符编码一定要为gbk。即更正为 #coding:gbk 你好啊 阶段三:读取已经加载到内存的代码(Unicode编码格式),然后执行