认识字符串
引号和三引号
字符串包含在引号或者三引号。
a = 'abc'
b = "xyz"
c = ''' 一段文字 '''
d = """
这是一段文字
还可以分段
"""
print(a)
print(b)
print(c)
print(d)
可以使用 \
进行转义。
a = "I'm Tom"
b = 'I\'m Tom'
print(a)
print(b)
字符串输出
print('Hello world')
name = 'Tom'
print('我的名字是%s' % name)
print(f'我的名字是{name}')
字符串输入
input 输入的默认为字符串。
name = input('请输入您我姓名:')
print(f'您输入的姓名是:{name}')
print(type(name)) # <class 'str'>
下标/索引
可以通过下标快速找到对应的数据。
a = 'abcdefg'
print(a[1]) # b
切片
- 字符串、列表、元组都支持切片操作。
- 左闭右开:不包含结束位的下标。
a = 'abcdefg'
print(a[1:3]) # bc
# 左闭右开:第3位d并不包含
b = '0123456789'
print(b[2:5:1]) # 234
print(b[2:5:2]) # 24
# 最后一位表示步长,可省略默认为1
print(b[:5]) # 01234
print(b[5:]) # 56789
print(b[:]) # 0123456789
# 开始/结束如果不写,表示选取到最前/最后
print(b[::-1]) # 9876543210
# 步长为负数,表示倒序选取
print(b[-4:-1]) # 678
# -1表示最后一个数据,依次向前类推
print(b[-4:-1:1]) # 678
print(b[-4:-1:-1]) # 不能选取
# 步长方向和选取方向冲突,不能选取
# 改成:
print(b[-1:-4:-1]) # 987
字符串方法:查找
find( )
检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则则返回-1。
rfind( )
: 和 find( ) 功能相同,但查找方向为右侧开始。
index( )
检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则则报异常。
rindex()
: 和 index( ) 功能相同,但查找方向为右侧开始。
count( )
返回某个子串在字符串中出现的次数。
字符串方法:修改
replace( ) 替换
替换后返回一个新的字符串,因此也证明了字符串是不可变数据类型。
my_str = 'abc uvw abc'
new_str = my_str.replace('abc', 'xyz')
print(new_str) # xyz uvw xyz
print(my_str) # abc uvw abc
# 原字符串不变(字符串是不可变数据类型)
new2_str = my_str.replace('abc', 'xyz', 1)
print(new2_str) # xyz uvw abc 只替换1次
# 如果替换次数超过实际值,表示替换全部
split( ) 分割
分割,返回一个列表。
my_str = 'abc and xyz and python and html'
list_1 = my_str.split('and')
print(list_1) # ['abc ', ' xyz ', ' python ', ' html']
# 以 and 为分割符进行分割成列表,分割符丢失
list_2 = my_str.split('and', 2)
print(list_2) # ['abc ', ' xyz ', ' python and html']
# 指定分割2次,最后一个and不进行分割
join( ) 合并
合并为一个字符串。
list_1 = ['aa', 'bb', 'cc']
new_srt = '——'.join(list_1)
print(new_srt) # aa——bb——cc
new2_str = '……'.join(list_1)
print(new2_str) # aa……bb……cc
大小写转换
- capitalize():将字符串第一个字符转换成大写(其他的字符全都都改成小写)。
- title():将字符串每个单词首字母转换成大写。
- lower():将字符串中大写转小写。
- upper():将字符串中小写转大写。
my_str = "hello Python hello web"
print(my_str.capitalize()) # 字符串首字母大写
# Hello python hello web
print(my_str.title()) # 单词首字母大写
# Hello Python Hello Web
print(my_str.lower()) # 转小写
# hello python hello web
print(my_str.upper()) # 转大写
# HELLO PYTHON HELLO WEB
删除空白字符
- lstrip():删除字符串左侧空白字符。
- rstrip():删除字符串右侧空白字符。
- strip():删除字符串两侧空白字符。
字符串对齐
- ljust():左对齐。
- rjust():右对齐。
- center():居中对齐。
字符串方法:判断
返回的结果是布尔型数据类型:True 或 False。
- startswith():否是以指定子串开头。
- endswith():是否是以指定子串结尾。
my_str = "hello Python hello Web"
print(my_str.startswith('hello')) # True
print(my_str.startswith('hello', 10, 20)) # False
print(my_str.endswith('eb')) # True
print(my_str.endswith('web')) # False
- isalpha():是否至少有一个字符并且所有字符都是
字母
。 - isdigit():是否只包含
数字
。 - isalnum():是否至少有一个字符并且所有字符都是
字母或数字
。 - isspace():是否只包含
空白
。