返回顶部
首页 > 资讯 > 后端开发 > Python >Python字符串的基本用法总结
  • 587
分享到

Python字符串的基本用法总结

字符串Python 2023-01-31 02:01:30 587人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

    字符串序列用于表示和存储文本,python中字符串是不可变对象。通常由单引号(' ),双引号(" ),三引号(''' """)包围,其中三引号可以由多行组成,编写多行文本的快捷语法,常用语文档字符串,在文件的特定地点,被当做注释。便

    字符串序列用于表示和存储文本,python中字符串是不可变对象。通常由单引号(' ),双引号(" ),三引号(''' """)包围,其中三引号可以由多行组成,编写多行文本的快捷语法,常用语文档字符串,在文件的特定地点,被当做注释。便捷的多行注释。

Python实际三类字符串:

1.通常意义字符串(str)

2.原始字符串,以大写R 或 小写r开始,r'',不对特殊字符进行转义

3.Unicode字符串,u'' basestring子类

python中字符串支持索引、切片操作。

(1)一个小技巧

    先来说个小技巧吧,对于怎么编写多行字符串,除了用三个连续的双引号外,还要一个小技巧,看下面代码。

#coding=utf-8
s = ('select *'
     'from atable'
     'where id=888')
print s

输出的结果是'select *from atablewhere id=888'。python中有个这样的特性:python中遇到未闭合的小括号时会自动将多行代码拼接为一行和把相邻的两个字符串字面量拼接到一起。相比使用三个连续的单(双)引号,这种方式不会把换行符和前导空格也当作字符串的一部分。

注意:上面的例子,s不是元组,需要在后面加逗号才会是元组,如下

#coding=utf-8
s = ('select *'
     'from atable'
     'where id=888',)
print s,type(s)

结果如下:

('select *from atablewhere id=888',) <type 'tuple'>


(2)如何判断一个对象是不是字符串

    python中字符串有两重,一种是str,一种是unicode。那如何判断一个对象是不是字符串呢?应该使用isinstance(s,basestring),而不是isinstance(s,str)。看下面例子

>>>a = 'hi'

>>>isinstance(a,str)

True

>>>b = u'Hi'

>>>isinstance(b,str)

False

>>>isinstance(b,basestring)

True

>>>isinstance(b,unicode)

True

>>>isinstance(a,unicode)

False


要正确判读一个对象是不是字符串,要有basestring,因为basestring是str和unicode的基类,包含了普通字符串和unicode类型。


(3)str对象的基本用法

字符串的基本用法可以分以下五类,即性质判定、查找替换、分切与连接、变形、填空与删减。

(a)性质判定

性质判定有以下几个方法。

isalnum():是否全是字母和数字,并至少有一个字符

isalpha():是否全是字母,并至少有一个字符 

isdigit():是否全是数字,并至少有一个字符

islower():字符串中字母是否全是小写

isupper():字符串中字母是否全是小写

isspace():是否全是空白字符,并至少有一个字符

istitle():判断字符串是否每个单词都有且只有第一个字母是大写

startswith(prefix[,start[,end]]):用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。如果参数 start 和 end 指定值,则在指定范围内检查。

endswith(suffix[,start[,end]]):用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。可选参数"start"与"end"为检索字符串的开始与结束位置。

is*()这些都比较简单,从字母的字面上就可以理解,*with()函数可以接受start和end参数,如果善加利用可以优化性能。另外,从python 2.5版本起,*with()函数族的第一个参数可接受tuple类型实参,当实参中某个元素匹配时,即返回True。


(b)查找与替换

count(sub[,start[,end]]):统计字符串里某个字符sub出现的次数。可选参数为在字符串搜索的开始与结束位置。这个数值在调用replace方法时用得着。

find(sub[,start[,end]]):检测字符串中是否包含子字符串sub,如果指定start(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1

index(sub[,start[,end]]):跟find()方法一样,只不过如果sub不在 string中会抛出ValueError异常。

rfind(sub[,start[,end]]):类似于 find()函数,不过是从右边开始查找。

rindex(sub[,start[,end]]):类似于 index(),不过是从右边开始。

replace(old,new[,count]):用来替换字符串的某些子串,用new替换old。如果指定count参数话,就最多替换count次,如果不指定,就全部替换


    前面五个方法都可以接受start、end参数,善加利用可以优化性能。对于查找某个字符串中是否有子串,不推荐使用index族和find族方法,推荐使用in和not in操作


(c)分切与连接

partition(sep):用来根据指定的分隔符将字符串进行分割,如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。如果sep没有出现在字符串中,则返回值为(sep,",")。partition() 方法是在2.5版中新增的。

rpartition(sep):类似于 partition()函数,不过是从右边开始查找.

splitness([keepends]):按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

split(sep[,maxsplit]]):通过指定分隔符对字符串进行切片,如果参数maxsplit 有指定值,则仅分隔 maxsplit 个子字符串,返回分割后的字符串列表。

rsplit(sep[,maxsplit]]):同split(),不过是从右边开始。

看下面例子

str1 = 'ab c\n\nde fg\rkl\r\n'
print str1.splitlines();

str2 = 'ab c\n\nde fg\rkl\r\n'
print str2.splitlines(True)

输出如下:

['ab c', '', 'de fg', 'kl']

['ab c\n', '\n', 'de fg\r', 'kl\r\n']


split()函数有个小陷阱,比如对于字符串s,s.split()和s.split(" ")的返回值不同。看下面代码

s = "  hello world"#前面有两个空格
print s.split()
print s.split(' ')

输出结果如下

['hello', 'world']

['', '', 'hello', 'world']

这是为什么呢?原因在于:当忽略sep参数或者sep参数为None时与明确给sep赋予字符串值时,split()采用了两种不同的算法。对于前者,split()先除去两端的空白符,然后以任意长度的空白符串作为界定符分切字符串(即连续空白符串会被单一空白符看待);对于后者则认为两个两个连续空白符之间存在一个空字符串,因此对空字符串,它们的返回值也不同。

>>>".split()

[]

>>>''.split(' ')

['']

(d)变形

lower():转换字符串中所有大写字符为小写。

upper():将字符串中的小写字母转为大写字母。

capitalize():将字符串的第一个字母变成大写,其他字母变小写。对于 8 位字节编码需要根据本地环境。

swapcase():用于对字符串的大小写字母进行转换,大写转小写,小写转大写。

title():返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写。

这些都是大小写切换,title()并不能除去字符串两端的空白符也不会把连续空白符替换成一个空格,如果有这样的需求,可以用string模块的capWords(s)函数,它能除去两端空白符,并且能将连续的空白符用一个空格符代替。看下面例子:

#coding=utf-8
import string
s = "   hello   world"
print s.title()
print string.capwords(s)

输出结果如下:

   Hello   World

Hello World

(e)删减与填充

strip([chars]):用于移除字符串头尾指定的字符(默认为空格),如果有多个就会删除多个。

ltrip([chars]):用于截掉字符串左边的空格或指定字符。

rtrip([chars]):用于截掉字符串右边的空格或指定字符。

center(width[,fillchar]):返回一个原字符串居中,并使用fillchar填充至长度 width 的新字符串。默认填充字符为空格

ljust(width[,fillchar]):返回一个原字符串左对齐,并使用fillchar填充至指定长度的新字符串,默认为空格。如果指定的长度小于原字符串的长度则返回原字符串。

rjust(width[,fillchar]):返回一个原字符串右对齐,并使用fillchar填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串。

zfill(width):返回指定长度的字符串,原字符串右对齐,前面填充0

expandtabs([tabsize]):把字符串中的 tab 符号('\t')转为适当数量的空格,默认情况下是转换为8个。





--结束END--

本文标题: Python字符串的基本用法总结

本文链接: https://lsjlt.com/news/186485.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python字符串的基本用法总结
        字符串序列用于表示和存储文本,python中字符串是不可变对象。通常由单引号(' ),双引号(" ),三引号(''' """)包围,其中三引号可以由多行组成,编写多行文本的快捷语法,常用语文档字符串,在文件的特定地点,被当做注释。便...
    99+
    2023-01-31
    字符串 Python
  • Python字符串的用法总结
    本篇内容介绍了“Python字符串的用法总结”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!创建字符串很简单,只要为变量分配一个值即可。例如:...
    99+
    2023-06-04
  • Python基础篇之字符串方法总结
    目录字符串拼接字符串分割字符串替换字符串大小写转换字符串判断partition()的用法总结python中字符串内置方法很多,可以通过dir()方式查看具体有哪些方法,下表是pyth...
    99+
    2023-05-17
    Python字符串方法总结 Python字符串方法 Python字符串
  • python常用字符串操作的总结
    本篇内容主要讲解“python常用字符串操作的总结”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python常用字符串操作的总结”吧!1、字符串使用乘法运算符*做乘法运算的含义是复制。>&...
    99+
    2023-06-20
  • Shell脚本字符串截取方法总结
    本篇内容介绍了“Shell脚本字符串截取方法总结”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!假设有变量 var=http://www.aa...
    99+
    2023-06-09
  • python 3.2 字符串方法学习总结
    Sequence Types sequence类型有六种:strings, byte sequences (bytes objects), byte arrays(bytearray objects), list, tuple, ...
    99+
    2023-01-31
    字符串 方法 python
  • Python学习之字符串常用方法总结
    目录什么是对象Python万物皆是对象字符串的索引索引[]索引[:]字符串的常用方法find()函数与index()函数startswith()函数与endswith()函数capi...
    99+
    2024-04-02
  • 31个必备的Python字符串方法总结
    目录1、Slicing2、strip()3、lstrip()4、rstrip()5、removeprefix()6、removesuffix()7、replace()8、re.sub...
    99+
    2024-04-02
  • Python中字符串的基础介绍及常用操作总结
    目录1.字符串的介绍2.字符串的下标3.字符串切片4.字符串find()操作5.字符串index()操作6.字符串count()操作7.字符串replace()操作8.字符串spli...
    99+
    2024-04-02
  • JavaScript中字符串的常用方法总结
    目录1.字符串长度2.查找字符串中的位置indexOf()lastIndexOf()search()3.提取部分字符串slice()substring()subst ...
    99+
    2022-12-08
    JavaScript字符串常用方法 JavaScript字符串方法 JavaScript字符串
  • Python中的字符串查找操作方法总结
    基本的字符串位置查找方法 Python 查找字符串使用 变量.find("要查找的内容"[,开始位置,结束位置]),开始位置和结束位置,表示要查找的范围,为空则表示查找所有。查找到后会返回位置,位置从0开始...
    99+
    2022-06-04
    字符串 操作方法 Python
  • Python 字符串总结,建议收藏!
    什么是 Python 字符串字符串是包含一系列字符的对象。字符是长度为 1 的字符串。在 Python 中,单个字符也是字符串。但是比较有意思的是,Python 编程语言中是没有字符数据类型的,不过在 C、Kotlin 和 Java 等其他...
    99+
    2023-05-14
    Python 字符串
  • Shell脚本8种字符串截取方法总结
    Linux 的字符串截取很有用。有八种方法。 假设有变量 var=http://www.aaa.com/123.htm. 1. # 号截取,删除左边字符,保留右边字符。 echo ${var#*//} ...
    99+
    2022-06-04
    字符串 脚本 方法
  • python字符串常用内建函数总结
    自己总结一些常用字符串函数,理解比较粗糙   1.字符串内建函数-大小写转换函数 (1)str.capitalize Help on method_descriptor: capitalize(...)     S.capitalize(...
    99+
    2023-01-30
    内建 字符串 函数
  • Python3字符串操作方法总结
    这篇文章主要讲解了“Python3字符串操作方法总结”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python3字符串操作方法总结”吧!1capitalize() 将字符串的第一个字符转换为...
    99+
    2023-06-04
  • python 字符串常用方法超详细梳理总结
    目录字符串是什么?字符串常用方法1.find()2.index()3.startswith()4.endswith()5.count()6.join()7.upper()8.lowe...
    99+
    2024-04-02
  • python中f字符串以及其常见用法总结
    目录前言一、f-string是什么?二、格式化常见用法三、f-string常见用法汇总1. f-string 中接收表达式2. f-string 可以对字典取值3. f-string...
    99+
    2023-05-20
    python f字符串 python中的f字符串 python中%f
  • Python中字符串String的基本内
    首先我们要明白在python中当字符编码为:UTF-8时,中文在字符串中的占位为3个字节,其余字符为一个字节 下面就直接介绍几种python中字符串常用的几种字符串内置函数(本文中牵扯到了模块与一些之前章节没讲过的相关知识,坑我之后会填...
    99+
    2023-01-31
    字符串 Python String
  • Python中字符串的基本使用详解
    目录前言1 字符串索引1.1 循环索引字符2 字符使用2.1 字符串运算3 字符串切片3.1 切片方法4 字符串格式化总结前言 除了数字,Python中最常见的数据类型就是字符串,无...
    99+
    2024-04-02
  • Python中常用操作字符串的函数与方法总结
    例如这样一个字符串 Python,它就是几个字符:P,y,t,h,o,n,排列起来。这种排列是非常严格的,不仅仅是字符本身,而且还有顺序,换言之,如果某个字符换了,就编程一个新字符串了;如果这些字符顺序发生...
    99+
    2022-06-04
    字符串 函数 常用
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作