python字符串方法
⑴ python字符串操作
字符串操作在各个计算机语言中都是比较常见的操作,下面我们对python的字符串操作做下简单介绍。
一、索引操作
字符串是由一些连续的字符组成,支持索引操作,索引位置从0开始,比如以下代码会输出’P‘字符:
二、截取子串
字符串也可以像列表那样给定起始与终止索引生成一个新的子串,比如以下代码会输出“Py”:
三、连接操作
多个字符串相加会生成一个新串,比如以下代码输出”Love Python“:
四、大小写转换
调用字符串的upper与lower方法会分别生成新的大写和小写的字符串,比如以下代码第一个输出:”I LOVE PYTHON“,第二个输出:”i love python“:
五、前后缀判断
调用字符串的startswith与endswith方法可以判断字符串是否以某个子串开关或者结尾,比如以下会分别打印出 ” python startswith py “ 和 ” python endswith on “:
六、查找与替换子串
调用find方法可以判断是否包含某个子串,比如以下代码会输出" python contains th" 和 " python doesn't contain he":
调用replace方法可以对字符串进行替换,比如要把"hello world"中的”hello“替换为”world“,以下代码会输出:”world world“
七、分隔字符串
如果我们要把一句话按空格分隔为一个一个的单词要怎么做呢,这时调用split方法即可,比如以下代码会把”hello world ni hao“转换为["hello","world","ni","hao"]:
八、清除前后字符
如果一个字符串前后有空白字符,我们需要去掉,你可以调用字符串的替换方法来做,但更简单的做法是调用strip方法,比如以下代码就会去掉两端的空白字符输出“hello python”:
九、大小写对换
如果我们需要把字符串中的小写转换为大写,大写转换为小写,那要怎么做呢,很简单,调用下swapcase就可以了,如以下代码会输出“ heLLO pYThON ”:
十、字符分类判断
有很多方法用来判断一个字符串是否属于某个分类,比如 isdigit判断是否是数字,isalpha判断是否是字母,isalnum判断是否是字母数字等,如下代码:
⑵ python字符串操作集合
把字符串变量和字面值连接起来,组成新的字符串。推荐3个方法:
对字符串进行单个字符索引时,无论是从前往后索引,还是从后往前索引,索引序号一定要在范围内,否则出错。
对字符串进行切片截取时,采用 str[start:end] 的方式。start,end可以正,可以负。且如果start标识的位置大于等于end标识的位置,则截取字符串为空。start,end超出字符串的极限位置,那么就用最值。start默认为0,end默认为字符串长度。
一般的基于文本和行字符串处理,使用sed,awk,grep等工具就可以了,这些命令行工具用起来更便捷,但是也没有python的这些函数强大。比如没法实现非贪婪模式匹配。如下:
把连续的数字提取出来,其他的字符抛弃
python处理字符串,比linux命令要复杂一些,功能也更强大一些。对于简单的处理任务,linux命令已经足够,python为的是一些更复杂的处理操作。如果两者都会,岂不是更好?
⑶ Python中汉字和变量拼接输出的8种方法(字符串拼接)
方法1:使用加号“+”连接字符串
最常用的连接字符串的方式是用加号“+”连接两个字符串,连接后这两个字符串将连接成一个字符串。但需注意的是,不能用“+”连接字符串和数字,需要把数字使用str()函数转换成字符串,或者直接在数字两侧加带引号,再进行连接,示例如下:
该方法性能差,尽量少用,因为 Python 中字符串是不可变类型,使用“+”号连接相当于生成一个新的字符串,需要重新申请内存,当用“+”号连接非常多的字符串时,将会很耗费内存,可能造成内存溢出。
方法2:使用逗号连接字符串
方法3:通过“%”连接字符串
借鉴C语言中的 printf 函数功能,使用%号连接一个字符串和一组变量,字符串中的特殊标记会被自动使用右边变量组中的变量替换。
注:其中%s是占位符。
方法4:通过str.format()方法拼接
通过这种方式拼接字符串需要注意的是字符串中{}的数量要和format方法参数数量一致,否则会报错。
方法5:通过f-strings拼接
在python3.6.2版本中,PEP 498 提出一种新型字符串格式化机制,被称为“字符串插值”或者更常见的一种称呼是f-strings,f-strings提供了一种明确且方便的方式将python表达式嵌入到字符串中来进行格式化:
方法6:通过str.join()方法拼接
这种方式一般常使用在将集合转化为字符串,”.join()其中”可以是空字符,也可以是任意其他字符,当是任意其他字符时,集合中字符串会被该字符隔开,例如:
输出
我最喜欢的数字是-8
方法7:通过()多行拼接
python遇到未闭合的小括号,自动将多行拼接为一行。
方法8:通过string模块中的Template对象拼接
Template的实现方式是首先通过Template初始化一个字符串。这些字符串中包含了一个个key。通过调用substitute或safe_subsititute,将key值与方法中传递过来的参数对应上,从而实现在指定的位置导入字符串。
总结
格式化类:%、format()、 template
拼接类:+、()、join()、逗号
插值类: f-strings
当要处理字符串行表等序列结构时,彩用join()方式;拼接长度不超过20时,选用+号操作符方式;长度超过20的情况,高版本选用f-string,低版本看情况使用format()或join()方式。
⑷ Python中检索字符串的方法有哪些呢
你还可以用更灵活的 regular 正则式
search()和match(),用起来更灵活
import re
str = "Welcome to my world. I have 12 apples."
if re.search(r"world", str).group() != "" :
print("match! ")
str = "abcABC"
if re.match(r"[a-zA-Z]+", str):
print("match! ", re.search(r"[A-Z]+", str).group())
else:
print("ummatch! ")
⑸ python 字符串提取信息方法总结
在日常项目中,我们经常会使用python从字符串中提取我们想要的信息,以下是各种提取信息方法的总结。
格式: str[beg:end:step]
描述: 字符串[开始索引:结束索引:步长]切取字符串为开始索引到结束索引-1内的字符串步长不指定时步长为1
举例:
print(str[::2]) //::这里表示整个字符串,每两个位置提取一个
print(str[1:3]) //提取第2个到第3个
print(str[2::]) //截取2 - 末尾的字符
本小节介绍了,处理字符串经常用到的一些函数方法。
语法: str.find(str, beg=0, end=len(string))
描述: Python find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。
语法: str.split(str="", num=string.count(str)).
描述: Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串.返回分割后的字符串行表,该方法可以讲字符串转化为列表处理。
另外的: str.splitlines([keepends])按照行(' ', ' ', ')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
语法: str.partition(str)
描述: partition() 方法用来根据指定的分隔符将字符串进行分割。如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。
语法: str.replace(old, new, max)
描述: Python replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。
语法: str.strip([chars]);
描述: Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
语法: str.join(sequence)
描述: Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
上述方法还有其变形,如str.rfind(),这代表从字符串右边开始处理,正常是从左边开始处理。下表是其它常用的python字符串自带函数方法。
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。本小节主要介绍Python中常用的正则表达式处理函数和正则表达式的书写规则。
re 模块使 Python 语言拥有全部的正则表达式功能。所以在python中使用正则表达式处理函数需要import re
语法: re.search(pattern, string, flags=0)
描述: re.search 扫描整个字符串并返回第一个成功的匹配。匹配成功re.search方法返回一个匹配的对象,否则返回None。
语法: re.sub(pattern, repl, string, count=0, flags=0)
描述: Python 的 re 模块提供了re.sub用于替换字符串中的匹配项。
语法: pattern.findall(string, pos, endpos)
描述: 在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。注意: match 和 search 是匹配一次 findall 匹配所有。
模式字符串使用特殊的语法来表示一个正则表达式:
⑹ Python 基础知识全篇-字符串(Strings)
单引号和双引号
字符串可以包含在单引号或双引号中。
这种灵活的方式可以让我们在字符串中包含引号。
当我们需要创建一个多行字符串的时候,可以用三个引号。如下所示:
改变大小写
你可以很方便的改变字符串的大小写。如下所示:
最常见的大小写形式是全小写(lower),首字母大写(title)和全大写(upper)。如下所示:
注意:初始字符串没被改变。
你会经常见到这种用法。变量名后跟点和操作名称,且后跟一组圆括号。圆括号里可能是空的,也可能包含一些数据。
variable_name.action()
在这个例子中, action 是一个 方法 的名字。 title , lower , upper 是内置在 Python 中的函数,可以作用于字符串的方法。
连接字符串
字符串连接示例如下所示:
加号连接两个字符串。你可以使用任意个加号来连接字符串。
格式化字符串简介
空白符
空白符通常指计算机能够发现但不可见的字符。诸如空格,制表符,换行符等。
空格很容易创建,基本上在你拥有计算机的时候就会打出空格符。制表符和换行符是由特殊字符连接组成的。
"\t" 代表制表符,"\n" 代表换行符。你可以将它们添加进字符串的任意部分。
去除空白符
有时候我们想去除掉字符串开始或者结尾的空白符。Python 中有一些方法可以帮我们做到这点。如下所示:
lstrip 去除左侧开端的空白符, rstrip 去除右端结尾的空白符, strip 去除两端空白符。
看一个更清晰的例子,如下所示:
动手试一试
Someone Said
找一条自己喜欢的名言,存储在变量。结合适当的介绍打印出来。例如:" Ken Thompson once said, 'One of my most proctive days was throwing away 1000 lines of code' "。
First Name Cases
将你的姓存储在一个变量中。
分别用 lowercase, Titlecase, UPPERCASE 三种方式打印姓。
Full Name
将你的名和姓存储在不同的变量中,连接它们并打印。
Name Strip
将你的姓存储在变量中。在姓的前后两端至少各包含两种空白符。
打印姓。
分别打印出去掉左侧空白符,右侧空白符,都去掉空白符的姓。
