认识字符串

引号和三引号

字符串包含在引号或者三引号。

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():是否只包含空白