python第三节:Str字符串类型(1)

发布时间:2024年01月10日

第三节:Str字符串类型

python中处理文本数据是用str类型,不像其他语言区分字符和字符串,统一使用str类型。

str在创建后是不可变的。在python中字符类型相当于长度是1的字符串类型。

以下三种方式包裹的字符都算作字符串:

  • 单引号:?'允许包含有?"双"?引号'
  • 双引号:?"允许嵌入?'单'?引号"
  • 三重引号:?'''三重单引号''',?"""三重双引号"""

三重引号创建字符串时,字符串可以跨越多行,包括三重引号包裹的所有字符。

创建字符串:

方法一:使用字面值创建字符串

例子1
str1 = '测试字符串1'

str2 = "测试字符串2"

str3 = '''测试字符串3

str3的第二行;

str3的第三行'''



print(str1)

print(str2)

print(str3)

结果:

测试字符串1

测试字符串2

测试字符串3,

str3的第二行;

str3的第三行

方法二:通过str构造器创建字符串

例子2:

str1 = str('测试字符串1')



print(str1)

结果:

测试字符串1

字符串的方法

str.capitalize()

首字母大写。

例子:

str1 = str('abcde')

str2 = '测试capitalize'



print(str1.capitalize())

print(str2.capitalize())

结果:

Abcde

测试capitalize

str.casefold()

消除字符串的大小写形式,都转换为小写。在一般情况下和lower()一样。

例子:

str1 = str('abCDEad')

str2 = '测试cAseFOld'

print(str1.casefold())

print(str2.casefold())

结果:

abcdead

测试casefold

str.center(width[,?fillchar])

返回字符串长度是width的字符串,原字符串放在正中间。使用指定的?fillchar?填充两边的空位(默认使用 ASCII 空格符)。 如果?width?小于等于?len(s)?则返回原字符串的副本。

例子:

str1 = '测试str.center'

print(str1.center(50,'*'))

结果:

*******************测试str.center*******************

str.count(sub[,?start[,?end]])

返回子字符串?sub?在 [start,?end] 范围内非重叠出现的次数。

可选参数?start?与?end?是指原字符串的起止位置。含start不含end。end为空时,默认一直到字符串尾部。如果有end参数,则必须指定start参数。

如果?sub?为空,则返回字符之间的空字符串数,即字符串的长度加一。但是sub参数必须。

例子:

str1 = '测试str.countstrabstrcdstrkkk'? #? 26

print(str1.count('str',1,5))

print(str1.count('str',1,4))

print(str1.count('str',1,5))

print(str1.count('str',2))

print(str1.count('',2))

print(str1.count('',10))

print(str1.count(''))

print(str1.count())

结果:

1

0

1

4

26

18

28

Traceback (most recent call last):

? File "D:/pythonProject/test/test20240106.py", line 9, in <module>

??? print(str1.count())

TypeError: count() takes at least 1 argument (0 given)

str.encode(encoding='utf-8',?errors='strict')

返回编码为?bytes?的字符串。

encoding?默认为?'utf-8'?。

errors?控制如何处理编码错误。在python的开发模式或调试模式下才有效,暂时不需要考虑。

例子:

str1 = '测试str.encode'

print(str1.encode())

print(str1.encode(encoding='gbk'))

结果:

b'\xe6\xb5\x8b\xe8\xaf\x95str.encode'

b'\xb2\xe2\xca\xd4str.encode'

str.endswith(suffix[,?start[,?end]])

判断字符串以什么结尾。

如果字符串以指定的?suffix?结尾则返回?True,否则返回?False。?参数suffix?也可以是元组。 可选项?startend是起止位置。不含start含end。

例子:

str1 = '测试str.encode'

print(str1.endswith('e',0))

print(str1.endswith('ode',0))

print(str1.endswith('',1,8))

print(str1.endswith('d',1,8))

print(str1.endswith('',4,4))

print(str1.endswith('',4,5))

print(str1.endswith('',5,5))

print(str1.endswith('',0,5))

结果:

D:\pythonProject\venv\Scripts\python.exe D:/pythonProject/test/test20240106.py

True

True

False

False

False

True

False

True

str.expandtabs(tabsize=8)

替换字符串中制表符。默认制表位8。

返回字符串的副本,其中所有的制表符会由一个或多个空格替换,具体取决于当前列位置和给定的制表符宽度。?

每?tabsize?个字符设为一个制表位(默认值 8 时设定的制表位在列 0, 8, 16 依次类推)。

如果字符为制表符 (\t),则会在结果中插入一个或多个空格符,直到当前列等于下一个制表位。 (制表符本身不会被复制。)

如果字符为换行符 (\n) 或回车符 (\r),会被正常解析为换行符或回车符,并将当前列重设为零。 任何其他字符会被不加修改地复制并将当前列加一(以此往后排),不论该字符在被打印时会如何显示。

例子:

str1 = '01\t012\t0123\t01234'

str2 = 'abc\t测试0123\t01234'

str3 = '01\t01\n2\t0123\t01234'

str4 = '01\t01\r2\t0123\t01234'

print(str1.expandtabs())

print(str1.expandtabs(4))

print(str2.expandtabs())

print(str3.expandtabs())

print(str3.expandtabs())

结果:

01????? 012???? 0123??? 01234

01? 012 0123??? 01234

abc???? 测试0123? 01234

01????? 01

2?????? 0123??? 01234

01????? 01

2?????? 0123??? 01234

str.find(sub[,?start[,?end]])

返回子字符串?sub?在?s[start:end]?切片内被找到的最小索引。

可选参数?start?、end是起止位置。 如果?sub?未被找到则返回?-1。

含头不含尾。

例子:

str1 = 'python123'



print(str1.find('t'))

print(str1.find('th'))

print(str1.find('t',0,5))

print(str1.find('t',2,5))

print(str1.find('t',3,5))

print(str1.find('thon',2,5))

结果:

2

2

2

2

-1

-1

文章来源:https://blog.csdn.net/buw369521/article/details/135488741
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。