字符串是由零个或多个字符组成的有限序列,它是编程语言中表示文本的数据类型。字符串是一种序列类型,因此也支持序列类型的各种操作。

在python中用单引号('')、双引号("")、和三引号(''' ''' | """ """)包起来的内容表示字符串。

注意:

1.字符串示例

>>> 'hello world'
hello world

>>> type('hello world')
<class 'str'>

>>> "hello world"
hello world

>>> "Isn't, they said"
"Isn't, they said"

#转义字符
>>> 'Isn\'t, they said'
"Isn't, they said"

#多行字符
>>> ''' hello world
hello world
hello world'''
' hello world\nhello world\nhello world'

2.原始字符串

原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。用rR来表示原始字符串。

>>> r'C:\Windows\System32\cmd'
'C:\\Windows\\System32\\cmd'

>>> R'C:\Windows\System32\cmd'
'C:\\Windows\\System32\\cmd'

3.字符串拼接

在编程中最常见的操作就是对字符串的操作。

# 字符串拼接
>>> 'hello' + ' world'
'hello world'

# 字符串重复3次
>>> 'hello' * 3
'hellohellohello'

# 字符h 是否在字符串'hello'
>>> 'h' in 'hello'
True

# 字符h 是否不在字符串'hello'
>>> 'h' not in 'hello'
False

4.获取单个字符

>>> 'hello world'[0]
'h'

>>> 'hello world'[4]
'o'

>>> 'hello world'[-1]
'd'

>>> 'hello world'[-2]
'l'

5.获取一组字符

注意:在使用切片时,要注意左开右合,就是左边是闭区间,右边是开区间

# 从下标0开始到下标3结束
>>> 'hello world'[0:4]
'hell'

# 从下标0开始,反方向的第一个结束。 -号表示反方向
>>> 'hello world'[0:-1]
'hello worl'

>>> 'hello world'[0:-3]
'hello wo'

# 从下标3开始直到字符串末尾
>>> 'hello world'[3:]
'lo world'

>>> 'hello world'[3:-1]
'lo worl

>>> 'hello world'[:4]
'hell'

>>> 'hello world'[:-1]
'hello worl'

# 第一位必须是正数,不然没有意义
>>> 'hello world'[-1:4]
''

6.获取字符串的长度

>>> len('hello world')
11

7.常见字符串操作函数

大小写相关

函数名描述示例结果
capitalize()这一行首字母转换为大写‘jupyter notebook’.capitalize()‘Jupyter notebook’
title()所有单词的首字母都大写‘jupyter notebook’.title()‘Jupyter Notebook’
casefold()全部转换为小写“BOOK”.casefold()book
lower()全部转换为小写“BOY”.lower()boy
upper()全部转换为大写“boy”.upper()BOY
swapcase()把大写转小写,小写转大写“Jared Chen”.swapcase()jARED cHEN
istitle()判断首字母是否全部为大写“Jared Chen”.istitle()
“Jared chen”.istitle()
True
False
isupper()判断是否全部大写“JARED CHEN”.isupper()
“JARED CHENa”.isupper()
True
False

查找相关

函数名描述示例结果
find()查找字符串中包含的指定字符,并返回字符串中最左边的指定字符的下标‘jupyter notebook’.find(‘up’)1
rfind()从左往右数,找到最右边那个值的下标“jared chen”.rfind(‘e’)8

判断相关

函数名描述示例结果 
isalnum()判断字符串中是不是同时包含字母和数字,如果同时包含了字母和数字,而且没有包含其它空格和任何特殊字符那么就返回True‘123aBc’.isalnum()
‘.123aBc’.isalnum()
True
False
 
isalpha()判断字符串中是不是只有英文字母,如果只有英文字母而其没有其它数字、空格和任何特殊字符,就返回True‘123aBc’.isalpha()
‘aBc’.isalpha()
False
True
 
isdecimal()判断是否为十进制“123”.isdecimal()
“0x123”.isdecimal()
“abc”.isdecimal()
True
False
False
 
isdigit()判断是否为整数“123”.isdigit()
“123.2”.isdigit()
True
False
 
isnumeric()判断是否只包含数字“123.2”.isnumeric()
“123”.isnumeric()
False
True
 
isspace()判断字符串是否为空格“12 34”.isspace()
“ “.isspace()
False
True
 
endswith()判断字符串是否以指定字符结尾,如果是,就返回True‘jupyter notebook’.endswith(“an”)
‘jupyter notebook’.endswith(‘ok’)
False
True
 
startswith()判断字符串是否以指定字符开始,如果是,就返回True‘jupyter notebook’.startswith(‘an’)
‘jupyter notebook’.startswith(‘ju’)
FalseTrue

打印格式相关

format()

>>> name = "my \tname is {name}, age is {age}."
>>> name
'my \tname is {name}, age is {age}.'
>>> name.format(age=22,name='jared')
'my \tname is jared, age is 22.'

join()

>>> list = ["1","2","3","4","5"]
>>> "+".join(list)
'1+2+3+4+5'

ljust()

>>> name = 'hello'
>>> name.ljust(100,"*")
hello***********************************************************************************************

rjust()

>>> name = 'hello'
>>> name.rjust(100,"*")
'***********************************************************************************************hello'

center()

>>> name = 'hello'
>>> name.center(100,"-")
'-----------------------------------------------hello------------------------------------------------'

替换相关

expandtabs()

把字符串中的tab转换成多个空格,这里转换成了30个空格

>>> name = "jupyter\tnotebook"
>>> name.expandtabs(30)
'jupyter                       notebook'
>>> name.expandtabs(tabsize=30)
'jupyter                       notebook'

replace()

替换字符串中的指定字符,可以指定替换次数

>>> "jared chen".replace('e','E',1)
'jarEd chen'

>>> "jared chen".replace('e','E')
'jarEd chEn'

其他常用操作

split()

把字符串按照指定字符分成一个列表,默认以空格分割成一个列表

>>> "jared+chen+".split("+")
['jared', 'chen', '']

splitlines()

按照换行符,把字符串分割成一个列表

>>> "boy\njared\n".splitlines()
['boy', 'jared']

lstrip()

去除左边的换行

>>>> "\n1 23\n".lstrip()
'1 23\n'

rstrip()

去除两边的换行

>>> "\n1 23\n".strip()
'1 23'

count()

>>> 'jupyter notebook'.count('o')
3

encode()

>>> 'jupyter notebook'.encode()
b'jupyter notebook'

python3.7 入门教程

Python 准备工作(1) Python 基本数据类型 Number(2) Python 字符串 str(3) Python 列表List(4) Python 元组tuple(5) Python 集合set(6) Python 字典 dict(7) Python 变量(8) Python 运算符(9) Python 条件语句(10) Python 循环语句(11) Python 包 模块(12) Python 函数一(13) Python 函数二(14) Python 面向对象(15) Python 正则(16) Python json(17) Python 枚举(18) Python 闭包(19) Python 装饰器(20) Python 杂记(21) Python with(22)