Python字符串总结大全

Python字符串总结大全目录操作符标准类型操作符对象值的比较布尔类型序列操作符切片([]和[:])成员操作符(in,notin)连接符(+)运行时刻字符串连接编译时字符串连接普通字符串转化为Unicode字符串重复操作符(*)只适用于字符串的操作符格式化操作符(%)字符串模板:更简单的替代品原始字符串操作符(r/R)Unicode字符串操作符(u/U)常见的转义字符字符串索引编解码内建函数序列类型函数len()max()和min()en

大家好,又见面了,我是你们的朋友全栈君。

目录

操作符

标准类型操作符

对象值的比较

布尔类型

序列操作符切片([]和[:])

成员操作符(in,not in)

连接符(+) 运行时刻字符串连接

编译时字符串连接

普通字符串转化为Unicode字符串

重复操作符(*)

只适用于字符串的操作符

格式化操作符(%)

字符串模板:更简单的替代品

原始字符串操作符(r/R)

Unicode字符串操作符(u/U)

常见的转义字符

字符串索引

编解码

内建函数

序列类型函数

len()

max()和min()

enumerate()

zip()

字符串类型函数

input()

str()和unicode()

chr()和ord()

字符串内建函数

字符串中字符大小写的变换:

去空格和特殊符号

字符串对齐,填充

字符串搜索、统计功能

字符串检测函数

字符串替换、分割

字符串连接

字符串的独特特性

特殊字符串和控制字符(转义字符)

三引号

字符串不变性


字符串类型是 Python里面最常见的类型。我们可以简单地通过在引号间包含字符的方式创建它。Python里面单引号和双引号的作用是相同的。字符串是一种直接量或者说是一种标量,这意味着 Python解释器在处理字符串时是把它作为单一值并且不会包含其他 Python类型的。字符串是不可变类型,就是说改变一个字符串的元素需要新建一个新的字符串。字符串是由独立的字符组成的,并且这些字符可以通过切片操作顺序地访问。

操作符

标准类型操作符

对象值的比较

所有的内建类型均支持比较运算,比较运算返回布尔值True或False。

Python字符串总结大全

布尔类型

Python字符串总结大全

在做比较的时候,字符串按照ASCII码的大小来进行比较。

序列操作符切片([]和[:])

除了索引,字符串还支持切片。索引可以得到单个字符,而切片可以获取子字符串:

print(word[0:2])
print(word[2:5])

Python字符串总结大全

注意切片的开始总是被包括在结果中,而结束不被包括(半开半闭)。这使得 s[:i] + s[i:] 总是等于s

print(word[:2]+word[2:])

print(word[:3]+word[3:])

Python字符串总结大全

切片的索引有默认值;省略开始索引时默认为0,省略结束索引时默认为到字符串的结束:

print(word[:2])
print(word[3:])
print(word[-2:])

Python字符串总结大全

也可以这么理解切片:将索引视作指向字符之间,第一个字符的左侧标为0,最后一个字符的右侧标为 n ,其中 n 是字符串长度。例如:

+---+---+---+---+---+---+
 | P | y | t | h | o | n |
 +---+---+---+---+---+---+
 0   1   2   3   4   5   6
-6  -5  -4  -3  -2  -1

第一行数标注了字符串0…6的索引的位置,第二行标注了对应的负的索引。那么从i到j的切片就包括了标有i和j的位置之间的所有字符。

对于使用非负索引的切片,如果索引不越界,那么得到的切片长度就是起止索引之差。例如,word[1:3]的长度为2。

试图使用过大的索引会产生一个错误:

Python字符串总结大全

但是,切片中的越界索引会被自动处理:

print(word[4:52])

print(word[45:])

Python字符串总结大全

成员操作符(in,not in)

成员操作符用于判断一个字符或者一个子串(中的字符)是否出现在另一个字符串中。出现则返回True,否则返回False注意,成员操作符不是用来判断一个字符串是否包含另一个字符串的,这样的功能由find()或者 index(还有它们的兄弟:rfind()和 rindex()函数)来完成。

print('bc' in 'abcd')
print('n'in 'abcd')
print('fdf' not in 'abcd' )
print('a'not in 'abcd')

Python字符串总结大全

连接符(+) 运行时刻字符串连接

print('abc'+'de')
print('abc'+' '+'de')

Python字符串总结大全

类似于join()方法

str.join(sequence)

sequence — 要连接的元素序列。返回通过指定字符连接序列中元素后生成的新字符串。

s1 = "-"
s2 = ""
seq = ("r", "u", "n", "o", "o", "b") # 字符串序列
print (s1.join( seq ))
print (s2.join( seq ))

Python字符串总结大全

编译时字符串连接

在源码中把几个字符串连在一起写,以此来构建新的字符串。

foo='hello'"world"

Python字符串总结大全

通过这种方法,你可以把长的字符串分成几部分来写,而不用加反斜杠。

普通字符串转化为Unicode字符串

如果把一个普通字符串和一个 Unicode字符串做连接处理, Python会在连接操作前先把普通字符串化为 Unicode字符串:

str='hello'+u' '+'world'+u'!'
print(str)

Python字符串总结大全

重复操作符(*)

print( 3 * 'un' + 'ium')

Python字符串总结大全

只适用于字符串的操作符

格式化操作符(%)

Python字符串总结大全

Python字符串总结大全

例:

十六进制输出

print('%x'%108)
print('%X'%108)
print('%#x'%108)
print('%#X'%108)

Python字符串总结大全

浮点型和科学计数法形式输出

print('%f'%1234.4567890)
print('%.2f'%1234.4567890)
print('%E'%1234.4567890)
print('%e'%1234.4567890)
print('%g'%1234.4567890)
print('%G'%1234.4567890)

Python字符串总结大全

整型和字符串输出

print('%+d'%4)
print('%+d'%-4)
print('we are at %d%%'%100)
print('Your host is:%s'%'earth')
print('Host:%s\tPort:%d'%('mars',80))
num=123
print('dec:%d/oct:%#o/hex:%#X'%(num,num,num))
print('MM/DD/YY:%02d/%02d/%d'%(2,15,67))

Python字符串总结大全

字符串模板:更简单的替代品

暂时先不学

原始字符串操作符(r/R)

在原始字符串中,所有的字符都是直接按照字面意思来使用,没有转义特殊或不能打印的字符。能够比较方便创建正则表达式。

print(r'%d可以显示啦')

Python字符串总结大全

Unicode字符串操作符(u/U)

Unicode字符串操作符,大写的(U)和小写的(u)是在 Python16中和 Unicode字符串一起被引入的,它用来把标准字符串或者是包含 Unicode字符的字符串转换成完全的 Unicode字符串对象。

常见的转义字符

  • \’ 转义,单引号
  • \ 在行末时,表示续行符
  • \b 退格
  • \n 换行
  • \r 回车
  • \t 横向制表符
  • \xyy 十六进制,假设yy为0a,\x0a表示换行

字符串索引

字符串是可以被索引(下标访问)的,第一个字符索引是0。单个字符并没有特殊的类型,只是一个长度为一的字符串:

word = 'Python'
print(word[0])
print(word[5])

Python字符串总结大全

索引也可以用负数,这种会从右边开始数:

print(word[-5])
print(word[-4])
print(word[-3])

Python字符串总结大全

注意-0和0是一样的,所以负数索引从-1开始。

编解码

python3中,字符串是用Unicode编码的,在内存中,一个字符对应多个字节,当字符串用来存储和传输时,就需要将字符串转化为字节为单位的bytes

python中的bytes类型用b’xxx’表示

Python字符串总结大全

用Unicode编码的字符串可以使用encode()方法转化为bytes

Python字符串总结大全

反过来,从存储介质和传输流中获取的bytes类型需要使用decode()方法转化为字符串

Python字符串总结大全

内建函数

序列类型函数

len()

返回对象长度

s='jfkhferhgergerugsjfbjha'
print(len(s))

max()和min()

返回字符串中ASCII最大或最小的字符

enumerate()

用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

enumerate(sequence, [start=0])

sequence — 一个序列、迭代器或其他支持迭代对象。

start — 下标起始位置。

返回 enumerate(枚举) 对象。

season=['Spring','Summer','Fall','Winter']
print(list(enumerate(season)))
print(list(enumerate(season,start=1))) #下标从1开始

Python字符串总结大全

普通for循环和使用enumerate的比较:

season = ['Spring', 'Summer', 'Fall', 'Winter']
i=0
for _ in season:
    print(i,season[i])
    i+=1
print()
for i,element in enumerate(season):
    print(i,element)

Python字符串总结大全

zip()

用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

zip([iterable, …])

iterabl — 一个或多个迭代器; 返回元组列表。 在 Python 3.x 中为了减少内存,zip() 返回的是一个对象。如需展示列表,需手动 list() 转换。

a=[1,2,3]
b=[4,5,6]
c=[4,5,6,7,8]
print(list(zip(a,b)))
print(list(zip(a,c)))
print(list(zip(a,b,c)))
zipped=zip(a,c)
print(list(zip(*zipped))) #与zip相反,*zipped可理解为解压,返回二维矩阵式

Python字符串总结大全

s,t='fos','jhjh'
print(list(zip(s,t)))

Python字符串总结大全

字符串类型函数

input()

Python3.x 中 input() 函数接受一个标准输入数据,返回为 string 类型

input([prompt]) prompt: 提示信息

str()和unicode()

str()和unicode()函数都是工厂函数,就是说产生所对应的类型的对象。它们接受一个任意类型的对象,然后创建该对象的可打印的或者Unicode的字符串表示。

chr()和ord()

chr():将整数转换成该编码对应的字符串(一个字符)。

ord():将字符串(一个字符)转换成对应的编码(整数)。

Python字符串总结大全

字符串内建函数

字符串中字符大小写的变换:

1 str.lower() :转换str中所有大写字符为小写

2 str.upper() :转换str中所有小写字符为大写

3 str.swapcase() :翻转str中的大小写

4 str.title() :返回标题化的字符串。所有单词首字母大写,其余小写

5 str.capitalize() :把字符串的第一个字母大写,其余小写

去空格和特殊符号

1 str.strip() :去掉字符串左边和右边的空格和换行符

2 str.strip(str1) :去掉字符串左边和右边的str1

3 str.lstrip() :去掉字符串左边的空格和换行符

4 str.rstrip() :去掉字符串右边的空格和换行符

字符串对齐,填充

1 str.ljust(width) : 返回width长度的字符串,左对齐,不足的用空格补充

2 str.rjust(width) : 返回width长度的字符串,右对齐,不足的用空格补充

3 str.center(width) : 返回width长度的字符串,居中对齐,不足的用空格补充

4 str.zfill(width) :返回长度为width长度的字符串,原字符串str右对齐,前面补充0

字符串搜索、统计功能

str.find(string,beg=0,end=len(str)) : 检测string是否包含在str中,beg和end指定检测范围,如果找到则返回开始的索引,否则返回-1

str.rfind(string,beg=0,end=len(str)) : 检测string是否包含在str中,beg和end指定检测范围,如果找到则返回开始的索引,否则返回-1,类似find只不过是从右边往左边开始找。

str.count(string,beg=0,end=len(str)) : 返回string在str中出现的次数,在beg-end检测范围内出现则返回出现的次数。

str.index(string,beg=0,end=len(str)) : 和find方法一样,只不过如果string不在str中会报异常。

str.rindex(string,beg=0,end=len(str)):和index方法一样,不过是从右边开始。

字符串检测函数

str.isalnum() :如果str至少有一个字符,并且所有字符都是字母或者数字,则返回true,否则返回false

str.isalpha() : 如果str至少有一个字符,并且所有字符都是字母,则返回true,否则返回false

str.isdigit() :如果str至少有一个字符,并且所有字符都是数字,则返回true,否则返回false

str.isspace() :如果str至少有一个字符,并且所有字符都是空格,则返回true,否则返回false

str.islower() :如果str至少有一个字符,并且所有字符都是小写字母,则返回true,否则返回false

str.isupper() :如果str至少有一个字符,并且所有字符都是大写字母,则返回true,否则返回false

str.istitle(): 如果str每个单词首字母大写其它小写,则返回true,否则返回false

str.startswith(prefix[,start[,end]]) :如果str是以prefix开头,则返回true,否则返回false

str.endswith(suffix[,start[,end]]) :如果str是以prefix结尾,则返回true,否则返回false

字符串替换、分割

str.replace(str1,str2,num=str.count(str1)) //替换指定次数的str1为str2,替换次数不超过num次。

str.split(str1=”“,num=str.count(str1)) :以str1为分隔符,把str分成一个list。num表示分割的次数。默认的分割符为空白字符

str.rsplit(str1=”“,num=str.count(str1)) :和split相似,只是从右边开始分割

str.splitlines(num=str.count(“\n”’)) :把str按行分割符分为一个list,num如果指定则是分割成多少行

字符串连接

str.join(seq) :把seq代表的序列(字符串序列),用str连接起来

字符串的独特特性

特殊字符串和控制字符(转义字符)

Python字符串总结大全

Python字符串总结大全

三引号

字符串字面值可以跨行连续输入。一种方式是用三重引号:”””…”””或”’…”’。字符串中的回车换行会自动包含到字符串中,如果不想包含,在行尾添加一个\即可。如下例:

print('''Usage: thingy [OPTIONS]

     -h                        Display this usage message

     -H hostname               Hostname to connect to

""")

将产生如下输出(注意最开始print(“””\的换行没有包括进来):

Python字符串总结大全

字符串不变性

字符串不能被修改,是 immutable 的。

向字符串的某个索引位置赋值会产生一个错误:

word[0]='J'

word[2:]='py'

如果需要一个不同的字符串,应当新建一个:
print('J'+word[2:])

print(word[2:]+'py')

更多Python框架梳理,请参考: 【Python学习】Python最全总结

 有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132966.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月9日 下午11:16
下一篇 2022年6月9日 下午11:16


相关推荐

  • c++中 override用法

    c++中 override用法描述 override 保留字表示当前函数重写了基类的虚函数 目的 1 在函数比较多的情况下可以提示读者某个函数重写了基类虚函数 表示这个虚函数是从基类继承 不是派生类自己定义的 2 强制编译器检查某个函数是否重写基类虚函数 如果没有则报错 用法 在类的成员函数参数列表后面添加该关键字既可 例子 classBase virtualvoidf classDeriv

    2026年3月16日
    2
  • 交换机的Access口与Trunk口

    交换机的Access口与Trunk口基本概念 Access 类型的端口只能属于 1 个 VLAN 一般用于连接计算机的端口 Trunk 类型的端口可以允许多个 VLAN 通过 可以接收和发送多个 VLAN 的报文 一般用于交换机之间连接的端口 处理流程 Acess 端口收报文 收到一个报文 判断是否有 VLAN 信息 如果没有则打上端口的 PVID 并进行交换转发 如果有则直接丢弃 缺省 Acess 端口发报文 将报文的 VLAN 信息剥离 直接发送出去 trunk 端口收报文 收到一个报文 判断是否有 VLAN 信息 如果没有则打上端口的 PVID 并进行交换转发 如果

    2026年3月19日
    2
  • list,tensor,numpy相互转化

    list,tensor,numpy相互转化1.1list转numpyndarray=np.array(list)1.2numpy转listlist=ndarray.tolist()2.1list转torch.Tensortensor=torch.Tensor(list)2.2torch.Tensor转list先转numpy,后转listlist=tenso…

    2022年10月19日
    9
  • bigdecimal与int相互转换

    bigdecimal与int相互转换1 bigdecimal 转 int BigDecimalb newBigDecima 1 1 inta b intValue 2 int 转 bigdecimal BigDecimalb newBigDecima 0 inti 1 b BigDecimal valueOf int i

    2026年3月19日
    1
  • matlab行列式的转置_matlab行列式左右翻转

    matlab行列式的转置_matlab行列式左右翻转行列式转置,值不变>>a3=[6231;1215;5231;4121]a3=6231121552314121>&gt

    2022年8月5日
    9
  • 华为服务器升腾芯片,华为公布昇腾910芯片架构细节:7nm+ EUV工艺、32核达芬奇…

    华为服务器升腾芯片,华为公布昇腾910芯片架构细节:7nm+ EUV工艺、32核达芬奇…在今天开幕的行业顶级活动、第31届HotChips大会上,华为也作为主角之一参加,与AMD、Intel、ARM等巨头一道介绍自家在芯片方面的最新成果。华为此次活动的主题是AI芯片所用的“DaVinci(达芬奇)”架构,成品是去年发布的昇腾310(Ascend310)、昇腾910芯片和麒麟810芯片,另外,AI训练芯片已经应用上了HBM2E内存,即HBM2增强版,SK海力士产品的阵脚传输速率高…

    2025年9月3日
    20

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号