python字符串操作

Python中的正则表达式-re模块

ぐ巨炮叔叔 提交于 2020-02-05 13:07:22
有时候我们需要模糊查找我们需要的字符串等值,这个时候需要用到正则表达式。 正则表达式的使用,在python中需要引入re包 import re 1、首先了解下正则表达式的常用语法 ——单个字符 . 任意的一个字符 a|b 字符a或字符b [afg] a或者f或者g的一个字符 [0-4] 0-4范围内的一个字符 [a-f] a-f范围内的一个字符 [^a] 不是a的一个字符 \s 一个空格 \S 一个非空格 \d [0-9],即0-9的任意字符 \D [^0-9],即非0-9的任意字符 \w [0-9a-zA-Z] \W [^0-9a-zA-Z] \b 匹配一个单词边界,也就是指单词和空格间的位置。例如,“er\b”可以匹配“never”中的“er”,但不能匹配“verb”中的“er” \B 匹配非单词边界。“er\B”能匹配“verb”中的“er”,但不能匹配“never”中的“er” ——重复 * 重复>=0次 + 重复>=1次 ? 重复0次或是1次 {m} 重复m次,如[01]{2}匹配字符串00或11或01或10 {m,n} 重复m-n次,如a{1,3}匹配字符串a或aa或aaa ——位置 ^ 字符串的起始位置 $ 字符串的结尾位置 ——返回控制 对搜索的结果进行进一步精简信息,可以使用小括号扩住对应的正则表达式。如 m = re.search("output_(\d{4})

2020寒假 Java核心技术卷I

…衆ロ難τιáo~ 提交于 2020-02-05 12:05:27
3.6 字符串 相比C语言的字符串,Java中的字符串有更多的方法,设计理念上也有些不同。 Java中的字符串与Python的字符串类似,给某一变量赋值的操作实际上是一种将字符串在内存中的地址与变量相关联起来的操作。 Java字符串有更多的方法,便于programmer进行操作。判断两个字符串是否相同,使用.equals()方法。两字符串的连接可以直接相加,截取某一部分使用.substring(start_index,end_index),与Python类似,截取的字符串不包含end_index上的字符。这样的好处是,截取字符个数直接用end_index - start_index即可,不需要再+1。 与Python和C不同的是,Java中字符串可以与非字符串的值进行相加操作,当然后者将会被转换成字符串。多个字符串放在一起并且使用同一个定界符分隔时,使用.join()方法。 String all = String.join(" / ", "S", "M", "L", "XL"); 这样的实际字符串的值是"S / M / L / XL" String类没有修改字符串的方法。 空串与Null串是不同的,需要区分。空串只是字符串的长度为0,检测是否为空串用.length()方法,看是否为0,而是不是Null就要用Str == Null来判断。 1、代码单元数量(str.length(

3. Python 的非正式介绍

浪子不回头ぞ 提交于 2020-02-04 19:16:44
3. Python 的非正式介绍 在下面的例子中,通过提示符 ( >>> 与 ... ) 的出现与否来区分输入和输出:如果你想复现这些例子,当提示符出现后,你必须在提示符后键入例子中的每一个词;不以提示符开头的那些行是解释器的输出。注意例子中某行中出现第二个提示符意味着你必须键入一个空白行;这是用来结束多行命令的。 这个手册中的许多例子都包含注释,甚至交互性命令中也有。Python中的注释以井号 # 开头,并且一直延伸到该文本行结束为止。注释可以出现在一行的开头或者是空白和代码的后边,但是不能出现在字符串中间。字符串中的井号就是井号。因为注释是用来阐明代码的,不会被 Python 解释,所以在键入这些例子时,注释是可以被忽略的。 几个例子: # this is the first comment spam = 1 # and this is the second comment # ... and now a third! text = "# This is not a comment because it's inside quotes." 3.1. Python 作为计算器使用 让我们尝试一些简单的 Python 命令。启动解释器,等待界面中的提示符, >>> (这应该花不了多少时间)。 3.1.1. 数字 解释器就像一个简单的计算器一样

Python语法基础50题

旧巷老猫 提交于 2020-02-04 18:10:16
1. Python3.x版本的保留字总数是 A. 35 B. 27 C. 16 D. 29 [答案] :A [解析] :Python中的保留字是35个(如果有33的选项也可选择),可以通过 help(keywords) 来查看这些保留字。 测试程序: help ( 'keywords' ) 打印结果: Here is a list of the Python keywords . Enter any keyword to get more help . False class from or None continue global pass True def if raise and del import return as elif in try assert else is while async except lambda with await finally nonlocal yield break for not 2. 以下选项中,不是Python语言保留字的是 A. while B. except C. do D. pass [答案] :C [解析] :使用 help(keywords) 可查看Python中的保留字,不难发现Python中是没有do的。 3. 关于Python程序框架,以下选项中描述错误的是 A. Python不采用严格的缩进来表明程序框架 B.

python小数据池、代码块、深浅拷贝与集合

我的梦境 提交于 2020-02-04 00:31:31
小数据池代码块、深浅拷贝与集合 小数据池和代码块 == id is a = 10 b = 10 print(a == b) a = "alex" b = "alex" print(a == b) name = "alex" print(id(name)) # 4327876736 a = 10 b = 10 print(id(a)) # 4304849568 print(id(b)) # 4304849568 print(a is b) # True # 获取的结果是True是因为a和b的内存地址是相同的 代码块简介: 代码块:Python程序是由代码块构造的。块是一个python程序的文本,他是作为一个单元执行的。 代码块:一个模块,一个函数,一个类,一个文件等都是一个代码块。 小数据池:小数据池,不同代码块的缓存机制,也称为小整数缓存机制,或者称为驻留机制等等 代码块的缓存机制 前提条件 :在同一个代码块内。 机制内容: Python在执行同一个代码块的初始化对象的命令时,会检查是否其值是否已经存在,如果存在,会将其重用。 换句话说:执行同一个代码块时,遇到初始化对象的命令时,他会将初始化的这个变量与值存储在一个字典中,在遇到新 的变量时,会先在字典中查询记录,如果有同样的记录那么它会重复使用这个字典中的之前的这个值。所以在你给出的例 子中,文件执行时(同一个代码块)会把i1

NLP入门(1)

扶醉桌前 提交于 2020-02-03 15:16:04
自然语言处理,简称:NLP,是指对人们平时日常使用的交流语言进行处理的一项技术。NLP 经过多年的发展,现今可以划分为两部分内容,即:自然语言的理解和自然语言的生成。 本文将以文本分类为目标,介绍自然语言处理相关的基础操作和应用。 (来自 https://www.shiyanlou.com/courses/1208 ) 做一个中文文本分类任务,首先要做的是文本的预处理,对文本进行分词和去停用词操作,来把字符串分割成词与词组合而成的字符串集合并去掉其中的一些非关键词汇(像是:的、地、得等)。再就是对预处理过后的文本进行特征提取。最后将提取到的特征送进分类器进行训练。 术语解释: 分词:词是 NLP 中能够独立活动的有意义的语言成分。即使某个中文单字也有活动的意义,但其实这些单字也是词,属于单字成词。 词性标注:给每个词语的词性进行标注,比如 跑/动词、美丽的/形容词等等。 命名实体识别:从文本中识别出具有特定类别的实体。像是识别文本中的日期,地名等等。 词义消歧:多义词判断最合理的词义。 句法分析:解析句子中各个成分的依赖关系。 指代消解:消除和解释代词「这个,他,你」等的指代问题。 1.Python字符串操作 变量名.count("A"):返回子串A在字符串中出现的次数 .strip() 方法可以去除字符串首尾的指定符号。无指定时,默认去除空格符 ' ' 和换行符 '\n'

python中常用模块

天涯浪子 提交于 2020-02-03 09:34:20
OS模块 python编程时,经常和文件、目录打交道,这是就离不了os模块。os模块包含普遍的操作系统功能,与具体的平台无关os.name()——判断现在正在实用的平台,Windows 返回 ‘nt'; Linux 返回’posix'os.getcwd()——得到当前工作的目录 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

java中的正则表达式

青春壹個敷衍的年華 提交于 2020-02-03 00:49:38
正则表达式是一种强大而灵活的文本处理工具。使用正则表达式,我们能够以编程的方式,构造复杂的文本模式,并对输入的字符串进行搜索。 一旦找到了匹配这些模式的部分,你就能够随心所欲地对它们进行处理。 0.0:为什么用正则表达式? 正则表达式定义了字符串的模式。 正则表达式可以用来搜索、编辑或处理文本。 1:基础知识 一般而言,正则表达式就是以某种方式来描述字符串。 例如,要找一个数字,它可能有一个负号在最前面,那你就写一个负号加上一个问号,就像这样: - ? 1.1:正则表达式中反斜杠的作用: 在其他语言中,\\表示“我想要在正则表达式中插入一个普通的(字面上的)反斜线,请不要给它任何特殊的意义。 ”而在Java中,\\ 的意思是 “ 我要插入一个正则表达武的反斜线,所以其后的字符具有特殊的意义。 ” (1) 例如,如果你想表示一位数字,那么正则表达式应该是 \\d 。 如果你想插入一个普通的反斜线,则应该这样 \\\\ 。 (2) 要表示 “一个或多个之前的表达式“,应该使用 + , 所以,如果要表示“可能有一个负号,后面跟着一位或多位数字”,可以这样: -? \\ d+ (3)正则表达式中, 括号有着将表达式分组的效果,而竖直线 | 则表示或操作 。 (-|\\+)? 这个正则表达式表示字符串的起始字符可能是一个 -或 +,或二者皆没有(因为后面跟着?修饰符)。 因为 字符 +

正则表达式介绍

大兔子大兔子 提交于 2020-02-02 17:34:31
字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在。比如判断一个字符串是否是合法的Email地址,虽然可以编程提取 @ 前后的子串,再分别判断是否是单词和域名,但这样做不但麻烦,而且代码难以复用。 正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的。 所以我们判断一个字符串是否是合法的Email的方法是: 创建一个匹配Email的正则表达式; 用该正则表达式去匹配用户的输入来判断是否合法。 因为正则表达式也是用字符串表示的,所以,我们要首先了解如何用字符来描述字符。 在正则表达式中,如果直接给出字符,就是精确匹配。用 \d 可以匹配一个数字, \w 可以匹配一个字母或数字,所以: '00\d' 可以匹配 '007' ,但无法匹配 '00A' ; '\d\d\d' 可以匹配 '010' ; '\w\w\d' 可以匹配 'py3' ; . 可以匹配任意字符,所以: 'py.' 可以匹配 'pyc' 、 'pyo' 、 'py!' 等等。 要匹配变长的字符,在正则表达式中,用 * 表示任意个字符(包括0个),用 + 表示至少一个字符,用 ? 表示0个或1个字符,用 {n} 表示n个字符,用 {n,m} 表示n-m个字符: 来看一个复杂的例子

寒假中期学习收获

此生再无相见时 提交于 2020-02-02 11:05:12
寒假中期学习收获 1. 寒假前三周学习收获 总计学习天数12天,每天平均学习时间为4小时,平均每日代码量约100行。代码总计1000行 学习进度:已学习完Python基础操作 ,正在学习模块操作及其相关内容。 计划完成情况:学习进度(原计划学习完模块操作,现略落后) 代码行数(原计划1500行,现1000行,尚需努力) 学习时间(总计学习时间将近50小时,达标) 习题量(大于20道,达标) 2. 读书收获,学英语进展 只阅读了Python课程设计一本书(大约已经过半) 英语学习每天一篇文章 3. 学习中遇到的问题或建议 几乎没有什么问题,都问了度娘,哈哈哈哈 给自己的建议就是要劳逸结合,保证学习的效率,尽量不做无用功。 4. 学习心得或分享 掌握了python的一些基本操作,深刻体会到了这门语言相比于C语言的简便之处,同时接触到了一种解密算法还有汉诺塔算法,令我印象最深刻,感受到了用计算机解决复杂问题计算问题的强大之处,也体会到了计算机的核心就是数学这一特点。相比于传统学科,我感觉计算机具有更大的魅力。 5. 学习笔记 print('\n')print('#################################################################################################')print('1.格式化输出'