- 在Python中,字符串属于不可变有序序列,使用单引号、双引号、三单引号或三双引号作为定界符,并且不同的定界符之间可以互相嵌套。
- 除了支持序列通用方法(包括双向索引、比较大小、计算长度、元素访问、切片、成员测试等操作)以外,字符串类型还支持一些特有的操作方法,例如字符串格式化、查找、替换、排版等等。
- 字符串属于不可变序列,不能直接对字符串对象进行元素增加、修改与删除等操作,切片操作也只能访问其中的元素而无法使用切片来修改字符串中的字符。
- 最早的字符串编码是美国标准信息交换码ASCII,仅对10个数字、26个大写英文字母、26个小写英文字母及一些其他符号进行了编码。ASCII码采用1个字节来对字符进行编码,最多只能表示256个符号。
原始字符串
在一个字符串字面量前加一个字符r,表示这个字符串是原始字符串,其中的\不被当作是转义字符前缀。
>>> s=r'hello\nworld'
>>> print(s)
hello\nworld
字符串常用方法或函数
字符串常用方法或函数 | 解释 |
---|---|
S.title() | 字符串S首字母大写 |
S.lower() | 字符串S变小写 |
S.upper() | 字符串S变大写 |
S.strip(),S.rstrip(),lstrip() | 删除前后空格,删除右空格,删除左空格 |
S.find(sub[,start[,end]]) | 在字符串S中查找sub子串首次出现的位置 |
S.replace(old,new) | 在字符串S中用new子串替换old子串 |
S.join(X) | 将序列X合并成字符串 |
S.split(sep=None) | 将字符串S拆分成列表 |
S.count(sub[,start[,end]]) | 计算sub子串在字符串S中出现的次数 |
查找子串 find()
在字符串中查找子串,返回第一次出现的位置下标(从0开始),如果找不到返回-1。
>>> s='He is a student'
>>> print(s.find('is'))
3
>>> print(s.find('am'))
-1
>>> s='This is a test'
>>> print(s.find('is',3)) #指定查找开始位置
5
>>> print(s.find('is',3,6)) #指定查找开始位置及终止位置
-1
统计子串出现的次数count()
>>> s='This is a test.'
>>> print(s.count('is'))
2
删除两端的空格
- 函数rstrip() 去掉字符串右边的空格
- 函数lstrip() 去掉字符串左边的空格
- 函数strip() 去掉字符串左右两边的空格
>>> s=' hello '
>>> s.rstrip()
' hello'
>>> s.lstrip()
'hello '
>>> s.strip()
'hello'
大小写转换
>>> s="Hello World"
>>> s1=s.lower()
>>> s1
'hello world'
>>> s2=s.upper()
>>> s2
'HELLO WORLD'
>>> s
'Hello World'
注意:使用字符串的函数时并不会更改原来的字符串,字符串是不可更改的
查找字串
>>> s="This is a test"
>>> s.find("is")
2
>>> s.find("he")
-1
find函数返回字串第一次出现的位置,下标从0开始,如果找不到,返回-1
字符串常量
>>> import string
>>> string.digits #数字字符常量
'0123456789'
>>> string.punctuation #标点符号常量
'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
>>> string.ascii_letters #大小写字母常量
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> string.ascii_lowercase #小写字母常量
'abcdefghijklmnopqrstuvwxyz'
>>> string.ascii_uppercase #大写字母常量
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'