strname = "str1" "str2"
参数说明:
strname 表示拼接以后的字符串变量名
str1 和 str2 是要拼接的字符串内容
注:
只能拼接字符串常量
str1 = 'aa''bb'
print(str1)
运行结果:
aabb
+
运算符来拼接strname = str1 + str2
注:
可拼接字符串常量、变量
a1 = 'aa'
b1 = 'bb'
str2 = a1 + b1
print(str2)
str3 = a1 + 'cc'
print(str3)
str4 = 'cc' + 'dd'
print(str4)
运行结果:
aabb
aacc
ccdd
str(obj)
参数说明:
obj 表示要转换的对象,可以是数字、列表、元组、字典等多种类型的数据
str5 = str(123)
print(str5)
print(type(str5))
str6 = str([1, 2, 3, 4])
print(str6)
print(type(str6))
str7 = str((1, 2, 'a'))
print(str7)
print(type(str7))
str8 = str({'name': '小明', 'like': '睡觉'})
print(str8)
print(type(str8))
name = '张三'
age = 18
like = '睡觉'
str9 = name + '已经' + str(age) + '了,' + '特别喜欢' + like
print(str9)
运行结果:
123
<class 'str'>
[1, 2, 3, 4]
<class 'str'>
(1, 2, 'a')
<class 'str'>
{'name': '小明', 'like': '睡觉'}
<class 'str'>
张三已经18了,特别喜欢睡觉
repr(obj)
参数说明:
obj 表示要转换的对象,可以是数字、列表、元组、字典等多种类型的数据
str12 = repr([1, 2, 3, 4])
print(str12)
print(type(str12))
运行结果:
[1, 2, 3, 4]
<class 'str'>
str() 和 repr() 函数虽然都可以将数字转换成字符串,但它们之间是有区别的:
举例:
s = 'I like sleep'
str10 = str(s)
print(str10)
print(type(str10))
str11 = repr(s)
print(str11)
print(type(str11))
运行结果:
I like sleep
<class 'str'>
'I like sleep'
<class 'str'>
strname[index]
参数说明:
strname 表示字符串名字
index 表示索引值
1)当以字符串的左端(字符串的开头)为起点时:索引是从 0 开始计数的;字符串的第一个字符的索引为 0,第二个字符的索引为 1,第三个字符串的索引为 2 ……
2)当以字符串的右端(字符串的末尾)为起点时:索引是从 -1 开始计数的;字符串的倒数第一个字符的索引为 -1,倒数第二个字符的索引为 -2,倒数第三个字符的索引为 -3 ……
str13 = 'abcdefghijklmn'
print(str13[1])
print(str13[-1])
运行结果:
b
n
strname[start : end : step]
参数说明:
strname:要截取的字符串
start:表示要截取的第一个字符所在的索引(截取时包含该字符)。如果不指定,默认为 0,也就是从字符串的开头截取
end:表示要截取的最后一个字符所在的索引(截取时不包含该字符)。如果不指定,默认为字符串的长度
step:指的是从 start 索引处的字符开始,每 step 个距离获取一个字符,直至 end 索引出的字符。step 默认值为 1,当省略该值时,最后一个冒号也可以省略
str14 = 'abcdefghijklmn'
# 索引从2到9(不包含9)的字串
print(str14[2: 9])
# 索引从1开始,直到末尾的子串
print(str14[1:])
# 索引从-3开始,直到末尾的子串
print(str14[-3:])
# 索引从1开始,每隔2个字符取出一个,直到结束
print(str14[1:: 2])
# 每隔3个字符取出一个
print(str14[:: 3])
# 从索引-100开始,直到末尾的子串
print(str14[-100:])
运行结果:
cdefghi
bcdefghijklmn
lmn
bdfhjln
adgjm
abcdefghijklmn
len(string)
参数说明:
string 用于指定要进行长度统计的字符串
str15 = 'abcdefghijklmn'
print(len(str15))
运行结果:
14
# 采用 UTF-8 编码
str.encode()
# 采用 GBK 编码
str.encode('gbk')
str16 = '我爱睡觉,你呢'
print(str16.encode())
print(len(str16.encode()))
print(str16.encode('gbk'))
print(len(str16.encode('gbk')))
运行结果:
b'\xe6\x88\x91\xe7\x88\xb1\xe7\x9d\xa1\xe8\xa7\x89\xef\xbc\x8c\xe4\xbd\xa0\xe5\x91\xa2'
21
b'\xce\xd2\xb0\xae\xcb\xaf\xbe\xf5\xa3\xac\xc4\xe3\xc4\xd8'
14
str.split(sep,maxsplit)
参数说明:
str:表示要进行分割的字符串
sep:用于指定分隔符,可以包含多个字符。此参数默认为 None,表示所有空字符,包括空格、换行符“\n”、制表符“\t”等
maxsplit:可选参数,用于指定分割的次数,最后列表中子串的个数最多为 maxsplit+1。如果不指定或者指定为 -1,则表示分割次数没有限制
注:
如果不指定 sep 参数,需要以str.split(maxsplit=xxx)的格式指定 maxsplit 参数
在未指定 sep 参数时,split() 方法默认采用空字符进行分割,但当字符串中有连续的空格或其他空字符时,都会被视为一个分隔符对字符串进行分割
str17 = 'abcd efg,higk lmn '
print(str17.split())
print(type(str17.split()))
print(str17.split(','))
print(str17.split(maxsplit=1))
运行结果:
['abcd', 'efg,higk', 'lmn']
<class 'list'>
['abcd efg', 'higk lmn ']
['abcd', 'efg,higk lmn ']
newstr = str.join(iterable)
参数说明:
newstr:表示合并后生成的新字符串
str:用于指定合并时的分隔符
iterable:做合并操作的源字符串数据,允许以列表、元组等形式提供
注:
被合并的类型需要是字符串
list1 = ['abc', '12', 'def']
str18 = '-'.join(list1)
print(str18)
list2 = [1, 2, 3]
str19 = '-'.join(list2)
print(str19)
运行结果:
abc-12-def
Traceback (most recent call last):
File "E:\PycharmProjects\pythonProject\test_basic.py", line 383, in <module>
str19 = '-'.join(list2)
^^^^^^^^^^^^^^^
TypeError: sequence item 0: expected str instance, int found
str.count(sub[,start[,end]])
参数说明:
str:表示原字符串;
sub:表示要检索的字符串;
start:指定检索的起始位置(其中也包含此索引位置),也就是从什么位置开始检测。如果不指定,默认从头开始检索;
end:指定检索的终止位置,如果不指定,则表示一直检索到结尾。
str20 = '我是一个粉刷匠,粉刷本领强,我要把那新房子,刷的更漂亮'
print(str20.count('刷'))
print(str20.count('刷', 10))
print(str20.count('刷', 10, -6))
运行结果:
3
1
0
str.find(sub[,start[,end]])
参数说明:
str:表示原字符串
sub:表示要检索的目标字符串
start:表示开始检索的起始位置。如果不指定,则默认从头开始检索
end:表示结束检索的结束位置。如果不指定,则默认一直检索到结尾
str21 = 'abcdefgacd'
print(str21.find('a'))
print(str21.find('a', 2))
print(str21.find('z'))
运行结果:
0
7
-1
str22 = 'abcdefgacd'
print(str22.rfind('a'))
print(str22.find('a', 1, 6))
运行结果:
7
-1
str.index(sub[,start[,end]])
参数说明:
str:表示原字符串
sub:表示要检索的子字符串
start:表示检索开始的起始位置,如果不指定,默认从头开始检索
end:表示检索的结束位置,如果不指定,默认一直检索到结尾
str23 = 'abcdefgacd'
print(str23.index('a'))
print(str23.index('z'))
运行结果:
0
Traceback (most recent call last):
File "E:\PycharmProjects\pythonProject\test_basic.py", line 404, in <module>
print(str23.index('z'))
^^^^^^^^^^^^^^^^
ValueError: substring not found
str24 = 'abcdefgacd'
print(str24.rindex('a'))
运行结果:
7
str.ljust(width[, fillchar])
参数说明:
str:表示要进行填充的字符串
width:表示包括 str 本身长度在内,字符串要占的总长度
fillchar:作为可选参数,用来指定填充字符串时所用的字符,默认情况使用空格
str25 = ' hello world '
print(str25.ljust(20))
print(str25.ljust(20,'~'))
运行结果:
hello world
hello world ~~~~~
str.rjust(width[, fillchar])
参数说明:
str:表示要进行填充的字符串
width:表示包括 str 本身长度在内,字符串要占的总长度
fillchar:作为可选参数,用来指定填充字符串时所用的字符,默认情况使用空格
str26 = ' hello world '
print(str26.rjust(20))
print(str26.rjust(20,'~'))
运行结果:
hello world
~~~~~ hello world
str.center(width[, fillchar])
参数说明:
str:表示要进行填充的字符串
width:表示包括 str 本身长度在内,字符串要占的总长度
fillchar:作为可选参数,用来指定填充字符串时所用的字符,默认情况使用空格
str27 = ' hello world '
print(str27.center(20))
print(str27.center(20,'~'))
运行结果:
hello world
~~ hello world ~~~
str.startswith(sub[,start[,end]])
参数说明:
str:表示原字符串
sub:要检索的子串
start:指定检索开始的起始位置索引,如果不指定,则默认从头开始检索
end:指定检索的结束位置索引,如果不指定,则默认一直检索在结束
str28 = 'abcdefgacd'
print(str28.startswith('c'))
print(str28.startswith('c', 2))
print(str28.startswith('c', 3, 10))
运行结果:
False
True
False
str.endswith(sub[,start[,end]])
参数说明:
str:表示原字符串
sub:表示要检索的字符串
start:指定检索开始时的起始位置索引(字符串第一个字符对应的索引值为 0),如果不指定,默认从头开始检索
end:指定检索的结束位置索引,如果不指定,默认一直检索到结束
str29 = 'abcdefgacd'
print(str29.endswith('c'))
print(str29.endswith('c', 2, 9))
运行结果:
False
True
str.title()
参数说明:
str 表示要进行转换的字符串
str30 = 'You must always have faith in who you are!'
print(str30.title())
运行结果:
You Must Always Have Faith In Who You Are!
str.lower()
参数说明:
str 表示要进行转换的字符串
str31 = 'You must always have faith in who you are!'
print(str31.lower())
运行结果:
you must always have faith in who you are!
str.upper()
参数说明:
str 表示要进行转换的字符串
str32 = 'You must always have faith in who you are!'
print(str32.upper())
运行结果:
YOU MUST ALWAYS HAVE FAITH IN WHO YOU ARE!
str.strip([chars])
参数说明:
str 表示原字符串
[chars] 用来指定要删除的字符,可以同时指定多个,如果不手动指定,则默认会删除空格以及制表符、回车符、换行符等特殊字符
str33 = ' hello world ~ ~ ~ '
print(str33.strip())
运行结果:
hello world ~ ~ ~
str.lstrip([chars])
参数说明:
str 表示原字符串
[chars] 用来指定要删除的字符,可以同时指定多个,如果不手动指定,则默认会删除空格以及制表符、回车符、换行符等特殊字符
str34 = ' hello world ~ ~ ~ '
print(str34.lstrip())
运行结果:
hello world ~ ~ ~
str.rstrip([chars])
参数说明:
str 表示原字符串
[chars] 用来指定要删除的字符,可以同时指定多个,如果不手动指定,则默认会删除空格以及制表符、回车符、换行符等特殊字符
str35 = ' hello world ~ ~ ~ '
print(str35.rstrip())
运行结果:
hello world ~ ~ ~
str.format(args)
参数说明:
str 用于指定字符串的显示样式
args 用于指定要进行格式转换的项,如果有多项,之间有逗号进行分割
{}
和:
来指定占位符{ [index][ : [ [fill] align] [sign] [#] [width] [.precision] [type] ] }
格式中用 [] 括起来的参数都是可选参数,即可以使用,也可以不使用
参数说明:
1)index:指定:后边设置的格式要作用到 args 中第几个数据,数据的索引值从 0 开始。如果省略此选项,则会根据 args 中数据的先后顺序自动分配
2)fill:指定空白处填充的字符。注意,当填充字符为逗号(,)且作用于整数或浮点数时,该整数(或浮点数)会以逗号分隔的形式输出,例如(1000000会输出 1,000,000)
3)align:指定数据的对齐方式,具体的对齐方式如下所示
align | 含义 |
---|---|
< | 数据左对齐 |
> | 数据右对齐 |
= | 数据右对齐,同时将符号放置在填充内容的最左侧,该选项只对数字类型有效 |
^ | 数据居中,此选项需和 width 参数一起使用 |
4)sign:指定有无符号数,此参数的值以及对应的含义如表 2 所示。
sign | 含义 |
---|---|
| 正数前加正号,负数前加负号 |
- | 正数前不加正号,负数前加负号 |
空格 | 正数前加空格,负数前加负号 |
# | 对于二进制数、八进制数和十六进制数,使用此参数,各进制数前会分别显示 0b、0o、0x前缀;反之则不显示前缀 |
5)width:指定输出数据时所占的宽度
6)precision:指定保留的小数位数
7)type:指定输出数据的具体类型,如下
type类型值 | 含义 |
---|---|
s | 对字符串类型格式化 |
d | 十进制整数 |
c | 将十进制整数自动转换成对应的 Unicode 字符 |
e 或者 E | 转换成科学计数法后,再格式化输出 |
g 或 G | 自动在 e 和 f(或 E 和 F)中切换 |
b | 将十进制数自动转换成二进制表示,再格式化输出 |
o | 将十进制数自动转换成八进制表示,再格式化输出 |
x 或者 X | 将十进制数自动转换成十六进制表示,再格式化输出 |
f 或者 F | 转换为浮点数(默认小数点后保留 6 位),再格式化输出 |
% | 显示百分比(默认显示小数点后 6 位) |
str36 = '它的名字叫{:s},今年{:d}岁了'
print(str36.format('大黄', 10))
运行结果:
它的名字叫大黄,今年10岁了
str.encode([encoding="utf-8"][,errors="strict"])
注:
[] 括起来的参数为可选参数
使用 encode() 方法对原字符串进行编码,不会直接修改原字符串,如果想修改原字符串,需要重新赋值
参数说明如下:
参数 | 含义 |
---|---|
str | 表示要进行转换的字符串 |
encoding = "utf-8" | 指定进行编码时采用的字符编码,该选项默认采用 utf-8 编码。例如,如果想使用简体中文,可以设置 gb2312 当方法中只使用这一个参数时,可以省略前边的“encoding=”,直接写编码格式,例如 str.encode("UTF-8") |
errors = "strict" | 指定错误处理方式,其可选择值可以是: 1)strict:遇到非法字符就抛出异常 2)ignore:忽略非法字符 3)replace:用“?”替换非法字符 4)xmlcharrefreplace:使用 xml 的字符引用 该参数的默认值为 strict |
str37 = 'aa 你好'
print(str37.encode())
print(str37.encode('gbk'))
运行结果:
b'aa \xe4\xbd\xa0\xe5\xa5\xbd'
b'aa \xc4\xe3\xba\xc3'
bytes.decode([encoding="utf-8"][,errors="strict"])
参数说明如下:
参数 | 含义 |
---|---|
bytes | 表示要进行转换的二进制数据 |
encoding="utf-8" | 指定解码时采用的字符编码,默认采用 utf-8 格式。当方法中只使用这一个参数时,可以省略“encoding=”,直接写编码方式即可 注意,对 bytes 类型数据解码,要选择和当初编码时一样的格式 |
errors = "strict" | 指定错误处理方式,其可选择值可以是: 1)strict:遇到非法字符就抛出异常 2)ignore:忽略非法字符 3)replace:用“?”替换非法字符 4)xmlcharrefreplace:使用 xml 的字符引用 该参数的默认值为 strict。 |
str38 = 'aa 你好'
b1 = str38.encode()
print(b1.decode())
b2 = str38.encode('gbk')
print(b2.decode('gbk'))
print(b2.decode())
运行结果:
aa 你好
aa 你好
Traceback (most recent call last):
File "E:\PycharmProjects\pythonProject\test_basic.py", line 464, in <module>
print(b2.decode())
^^^^^^^^^^^
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc4 in position 4: invalid continuation byte
__
开头和结尾的方法都是私有的,不能在类的外部调用dir(obj)
参数说明:
obj 表示要查看的对象。obj 可以不写,此时 dir() 会列出当前范围内的变量、方法和定义的类型
str39 = 'a'
print(dir(str39))
运行结果:
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'removeprefix', 'removesuffix', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
help(obj)
参数说明:
obj 表示要查看的对象。obj 可以不写,此时 help() 会进入帮助子程序
str40 = 'a'
print(help(str40))
print('-------------------------------')
print(str40.join)
print(str40.join())
运行结果:
No Python documentation found for 'a'.
Use help() to get the interactive help utility.
Use help(str) for help on the str class.
None
-------------------------------
<built-in method join of str object at 0x00007FFB71358CE0>
Traceback (most recent call last):
File "E:\PycharmProjects\pythonProject\test_basic.py", line 473, in <module>
print(str40.join())
^^^^^^^^^^^^
TypeError: str.join() takes exactly one argument (0 given)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。