Python基础入门—字符串
字符串
目录
- 字符串是不可变数据类型
- 字符串在Python里是一个对象,面向对象就是通过类实例化一个对象,通过对象调方法
字符串的创建
- 赋值创建
s = 'hello world'
print(s)
type(s)
hello world
str
- str()函数转化
s = str(3.14)
s
type(s)
'3.14'
str
字符串的常见运算
字符串的首尾拼接
- ‘+’加号可以把两个字符串首尾连接起来
a = 'pyt'
b = 'hon'
a+b
'python'
字符串的重复输出
- '*' 乘号可以把字符串重复输出
print('abc'*10)
abcabcabcabcabcabcabcabcabcabc
判断元素存在否
'32' in '132'
True
字符串的索引和切片
字符串是一个可迭代对象,具有索引值属性,可做切片
字符串切片的标准语法:
str[开始位置, 终止位置, 步长和方向]
注意:选区的区间属于左闭右开型,即从“起始”位开始,到“结束”位的前一位结束(不包含结束位 本身)。
s = "人生苦短,我用python"
s[0]
s[-1]
s[2:-4]
'人'
'n'
'苦短,我用py
str[:] 表示全部索引
str[-1] 最后一个字符负数下标为-1
字符串的常用方法
字符串的检索
语法 | 解释 |
---|---|
字符串.count(寻找的对象, 开始索引值,结束索引值) | 返回:你寻找的对象,在字符串里面出现的次数 |
字符串.find(要查找的对象,最小的索引值,结束索引值) | 如果对象包含在字符串内,则返回开始的索引值,否则返回-1 |
字符串.index(要查找的对象,最小的索引值,结束索引值) | 如果对象包含在字符串内,则返回开始的索引值,否则报错 |
a = '我爱北京天安门,天安门上太阳升'
a.count("天安门")
a.find('门')
2
5
字符串的分割
语法 | 解释 |
---|---|
字符串.split("分割符",分割次数) | 返回:分割后的列表(默认以特殊字符分割,空格 |
字符串.[1] | 按照行分隔,返回一个包含各行作为元素的列表。 |
字符串.partition(分隔符) | 把str以分隔符为标准,分割成三部分,str前,str和str后,返回元组 |
s = 'hello world'
s.split()
a = 'abcd哈fgabcd哈123'
a.partition('哈')
['hello', 'world']
('abcd', '哈', 'fgabcd哈123') #默认是第一个分割,分成三部分,返回的是元组
字符串的合并
"合并符".join(字符串)
"**".join('1,2,3,4,5,6,7,8')
'1**,**2**,**3**,**4**,**5**,**6**,**7**,**8'
字符串的替换
字符串.replace(被替换的字符, 用来替换的字符, 替换次数)
s = "我爱北京天安门,天安门上太阳升"
s.replace('天安门', '故宫')
'我爱北京故宫,故宫上太阳升' #默认全部替换
去除字符串两端的特殊字符方法
- 去除两边—— 字符串.strip(可以传入指定去除什么)
- 删除str字符串两端的空白字符以及特殊字符
- 这里的特殊字符包括制表符\t、回车符\r、换行符\n
- 去除单边
- 字符串.rstrip()——只去除右边的空格和特殊字符
- 字符串.lstrip()——只去除左边的空格和特殊字符
b = " 1241235 "
b.strip()
'1241235'
字符串的格式化输出
format()方法的使用,关键是掌握参数的传递方式;
print('{}的年龄是{}岁{}'.format('Tom', 20 ,'!')) # 依次传入 Tom的年龄是20岁! print('{0}的年龄是{2}岁{1}'.format('Tom','!', 20)) #也在{}里面填入索引值 Tom的年龄是20岁! '{name}的年龄是{age}'.format(age=20,name='Tom') # 参数位置可以不按顺序显示。 Tom的年龄是20
字符串的方法总览
方法 | 描述 |
---|---|
title() | 每个单词首字母大写 |
lower()/upper() | 全部小写/大写 |
capitalize() | 首字母大写,其余小写 |
swapcase() | 反转大小写 |
join(seq) | 以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串,相对于运算符而言,性能更佳 |
rstrip() | 删除字符串字符串末尾的空格. |
istrip() | 删除字符串开头的空格 |
strip([chars]) | 在字符串上执行 lstrip()和 rstrip() |
ljust(width[, fillchar]) | 返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。 |
rjust(width,[, fillchar]) | 返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串 |
zfill (width) | 返回长度为 width 的字符串,原字符串右对齐,前面填充0 |
bytes.decode(encoding="utf-8", errors="strict") | Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。 |
len(string) | 返回字符串长度 |
center(width, fillchar) | 返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。 |
count(str, beg= 0,end=len(string)) | 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数 |
find(str, beg=0 end=len(string)) | 检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1 |
index(str, beg=0, end=len(string)) | 跟find()方法一样,只不过如果str不在字符串中会报一个异常. |
rfind(str, beg=0,end=len(string)) | 类似于 find()函数,不过是从右边开始查找. |
startswith(str, beg=0,end=len(string)) | 检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。 |
endswith(suffix, beg=0, end=len(string)) | 检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False |
max(str) | 返回字符串 str 中最大的字母。 |
min(str) | 返回字符串 str 中最小的字母。 |
lstrip() | 截掉字符串左边的空格或指定字符。 |
isalnum() | 如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False |
isalpha() | 如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False |
isdigit() | 如果字符串只包含数字则返回 True 否则返回 False |
islower() | 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False |
isnumeric() | 如果字符串中只包含数字字符,则返回 True,否则返回 False |
isspace() | 如果字符串中只包含空白,则返回 True,否则返回 False. |
istitle() | 如果字符串是标题化的(见 title())则返回 True,否则返回 False |
isupper() | 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False |
isdecimal() | 检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。 |
rindex( str, beg=0, end=len(string)) | 类似于 index(),不过是从右边开始. |
index(str, beg=0, end=len(string)) | 跟find()方法一样,只不过如果str不在字符串中会报一个异常 |
split(str="", num=string.count(str)) | num=string.count(str)) 以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num 个子字符串 |
replace(old, new [, max]) | 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次。 |
splitlines([keepends]) | 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。 |
translate(table, deletechars="") | 根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中 |
maketrans() | 创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。 |
expandtabs(tabsize=8) | 把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。 |
字符串.splitlines()按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表。参数 keepends 默认为 False,去掉了换行符,如果为 True,则保留换行符。 ↩︎