一、字符串的定义
使用单引号或双引号来创建字符串, 使用三引号创建多行字符串。双引号中可以嵌套单引号,单引号中可以嵌套双引号。但是单引号嵌套单引号或者双引号嵌套双引号就会出现歧义。类如:
二、字符串的运算
a='string'
b='Python'
运算 | 描述 | 示例 |
---|---|---|
+ | 字符串拼接(速度慢) | a+b='stringPython' |
* | 将字符串重复多少次 | a*2='stringstring' |
[] | 通过索引获取字符串中的字符 | a[0]='s' |
[:] | 截取字符串的一部分 | a[1:3]='tr' |
in | 成员运算符 - 如果字符串中包含给定的字符返回True | 't' in a输出True |
not in | 成员运算符 - 如果字符串中不包含给定的字符返回True | 's' not in a输出False |
r/R | 原始字符串:所有的字符串都是直接按照字面的意思来使用 | print(r'/n')输出/n |
与数字类型一样,字符串也是不可变类型,字符串本身是不可修改的,类如:
三、常用内置方法
方法 | 描述 | 示例 |
---|---|---|
string.count(str, beg=0,end=len(string)) | 返回str在string里面出现的次数,如果 beg 或者end指定则返回指定范围内str出现的次数 | 'Python’'.count('y')=1 |
string.find(str, beg=0,end=len(string) | 检测str是否包含在string中,如果beg和end指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1 | 'Python'.find('th')=2 'Python'.find('oo')=-1 |
string.index(str, beg=0,end=len(string)) | 跟find()方法一样,只是如果str 不在string 中会报一个异常 | 'Python'.index('oo')抛出异常 |
string.isdigit() | 如果string只包含数字则返回True,否则返回False | '123'.isdigit()=True |
string.join(seq) | 以string作为分隔符,将seq中所有的元素(的字符串表示)合并为一个新的字符串 | ','.join('Python')='P,y,t,h,o,n' |
string.lower() | 转换string中所有大写字符为小写 | 'Python'.lower()=python' |
string.replace(str1, str2, num=string.count(str1)) | 把string中的str1替换成str2,如果num指定,则替换不超过num次 | 'PythonPython'.replace('ython','ay',1)='PayPython' |
string.split(str="", num=string.count(str)) | 以str为分隔符切片 string,如果num有指定值,则仅分隔num个子字符串 | 'P,y,t,h,o,n'.split(',')=['P', 'y', 't', 'h', 'o', 'n'] |
string.startswith(obj, beg=0,end=len(string)) | 检查字符串是否是以obj开头,是则返回True,否则返回 False。如果beg和end指定值,则在指定范围内检查 | 'Python'.startswith('P')=True |
string.strip([obj]) | 删除string字符串两端的空格 | ' ccc '.strip()='ccc' |
string.upper() | 转换string中的小写字母为大写 | 'Python'.upper()='PYTHON' |
四、多行字符串
可以使用三引号(单引号或双引号都可以)来编写跨行字符串,类如:
五、格式化字符串
1、%
'Hello %s' % 'Python'
"i'm %s, %d years old" % ('ccc',18)
%s 表示用字符串替换,%d 表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略.。
常见的占位符有:
占位符 | 替换内容 |
---|---|
%s | 字符串 |
%d | 整数 |
%s | 浮点数 |
%x | 十六进制数 |
2、format
简单的 format 格式化方法基本有两类:
- 位置参数
- 关键字参数
位置参数:{0}、{1}、{2},使用时必须按顺序,不能随意调整,类如:
# 'I am ccc,18 years old'
# 18是第一个参数,对应{0},'ccc'是第二个参数,对应{1}
fs = 'I am {1},{0} years old'.format(18, 'ccc')
关键字参数:{name}、{age},使用时必须以键值对的方式,可以随意调整顺序,类如:
# 'I am ccc,18 years old'
fs = 'I am {name},{age} years old'.format(name='ccc', age=18)
3、f-Strings
Python3.6开始支持,语法与 str.format()使用的语法类似,只需要在格式化字符串前加f或F即可,类如:
name,age='ccc',18
# 'I am ccc,18 years old'
fs = f'I am {name},{age} years old'
格式化时,可以使用函数、字典、对浮点数精度做限制等等,可以使用{{}}获取到{,}类如:
name,age='ccc',18.123
# 'I am CCC,18.12 years old'
fs = f'I am {name.upper()},{age:.2f} years old'
# '字典{"name":"ccc"}'
fs1 = f'字典{{"name":"ccc"}}'