字符串驻留:
仅保存一份相同且不可变字符串方法,不同的值被存放在字符串驻留池中,Python支持字符串驻留机制,对于符合标识符规则的字符串(仅包含下划线(_)、字母和数字)会启动字符串驻留机制。例如:
#字符串驻留机制
a="abcd_11"
d="abcd_11"
id(a)
>>>2355133760208
id(b)
>>>2355133760208
a is b
>>>true
#不符合驻留机制规则,返回的内存id不一致
a="abcd#"
b="abcd#"
id(a)
>>>2355133165672
id(b)
>>>2355133784280
a is b
>>>false
字符串比较和同一性:
可以直接使用 ==,!=对字符串进行比较,是否含有相同的字符。
使用is/not is ,判断两个对象是否同一个对象,比较的是对象的地址,即id(obj1)是否和id(obj2)相等
成员操作符:
in/not in 关键字,判断某一个字符(子字符串)是否存在于字符串中。
字符串常用方法
常用查找方法:
a="知之者不如好之者,好之者不如乐之者"
方法和使用示例 | 说明 | 结果 |
len(a) | 字符串长度 | 17 |
a.startswith('知之者‘) | 以指定字符串开头 | Ture |
a.endseith('乐之者') | 以指定字符串结尾 | True |
a.find('之') | 第一次出现指定字符串位置 | 1 |
a.rfind('之‘) | 最后一次出现的指定字符串位置 | 15 |
a.count('之‘) | 指定字符出现几次 | 4 |
a.isalnum() | 所有字符全是字母或者数字 | False |
去除首尾信息:
可以通过strip()去除字符串首尾指定信息,通过lstrip()去除字符串左边信息,rstrip()去除字符串右边信息。
a="!@#asda*&!"
#去首尾 !
a.strip("!")
>>>'@#asda*&'
#去左边信息
a.lstrip('!')
>>>'@#asda*&!'
#去右边信息
a.rstrip('!')
>>>'!@#asda*&'
#去两边空格
b=" as "
b.strip()
>>>"as"
大小写转换:
a="all things in their being are good for something"
示例 | 说明 | 结果 |
a.capitalize() | 产生新的字符串,首字母大写 | 'All things in their being are good for something' |
a.title() | 产生新的字符串,每个单词都首字母大写 | 'All Things In Their Being Are Good For Something' |
a.upper() | 产生新的字符串,所有字符串全转成大写 | 'ALL THINGS IN THEIR BEING ARE GOOD FOR SOMETHING' |
a.lower() | 产生新的字符串,所有字符串全转成小写 | 'all things in their being are good for something' |
a.swapcase() | 产生新的字符串,所有字母大小写转换 | 'ALL THINGS IN THEIR BEING ARE GOOD FOR SOMETHING' |
格式排版:
center(),ljust(),rjust() 这三个函数用于对字符串实现排版,如下:
a="ALL"
#居中补齐
a.center(10,'*')
>>>'***ALL****'
a.center(10) #没有*号,两边空格
>>>" ALL "
#左边补齐
a.ljust(10,"*")
>>>'ALL*******'
#右边补齐
a.rjust(10,"*")
>>>'*******ALL'
其他方法:
1.isalnum() #是否为字母或数字
2.isalpha() #检测字符串是否只有有字母组成(含汉字)
3.isdigit() #检测字符串是否只有有数字组成
4.isspace() #检测是否为空白符
5.isupper() #是否为大写字母
6.islower() #是否为小写字母
注*字符串可变方法点击查看