1、创建字符串
name = 'Zhang-San'
sex = '男'
age = str(18) # 把整型的18转换为字符串'18'
# 创建多行字符串
info = '''
性格温和,脾气好,
喜欢打球,爱好旅游
'''
2、下标、切片、分割与合并
字符串下标从0开始,在字符变量后面用中括号[]索引
name = 'Zhang-San'
# 索引字符串
first_str = name[0] # 'Z'
last_str = name[-1] # 'n'
# 切片字符串
first_name = name[0:5] # 'Zhang'
last_name = name[-3:] # 'San'
# 分割字符串
name.split('-') # 按符号'-'分割字符串,返回值为['Zhang', 'San'],不传参则默认按空格分割
# 合并字符串
name = first_name + last_name # 'Zhang-San'
name = first_name.join(last_name) # SZhangaZhangn,在last_name每个字符间都插入first_name
name = ''.join([first_name, last_name]) # 'Zhang-San'
3、常用方法
3.1 判断是否包含
name = 'Zhang-San'
# in和not in判断字符串是否包含子串
is_Zhang = 'Zhang' in name # True
not_Li = 'Li' not in name # True
# is判断
name.isalpha() # True,如果字符串只包含字母,并且非空;
isalnum() # True,如果字符串只包含字母和数字,并且非空;
isdigit() # False,如果字符串只包含整数,并且非空;
isdecima() # False,如果字符串只包含十进制数字,并且非空;
isnumeric() # False,如果字符串只包含数字,并且非空;
isspace() # False,如果字符串只包含空格,制表符和换行,并且非空;
isitle() # True,如果字符串仅包含以大写字母开头、后面都是小写字母的单词。
# 是否以某字符串为开头/结尾
name.startwith('Zhang') # 是否以'Zhang'开头,True
name.endwith('san') # 是否以'san'结尾,Falese
3.2 英文大小写转换
up_name = name.upper() # 'ZHANG-SAN'
lo_name = name.lower() # 'zhang-san'
name.is_upper() # True,如果全部字母均为大写
name.is_lower() # True,如果全部字母均为小写
name.capitalize() # 字符串的第一个字符大写
name.swapcase() # 全部字符大小写转换
3.3 字符串对齐
# 在长度为10的字符串中左对齐,空位用'*'填充,返回值'hello*****'
word = 'hello'.ljust(10, '*')
# 在长度为10的字符串中右对齐,空位用'-'填充,返回值'-----hello'
word = 'hello'.rjust(10, '-')
# 在长度为10的字符串中居中,空位用空格填充,返回值' hello '
word = 'hello'.ljust(10)'
3.4 删除两端字符
word.lstrip('*') # 删除字符串左端'*'
word.rstrip('-') # 删除字符串右端'-'
word.strip() # 删除字符串两端空格,不传参默认是空格
3.5 复制和粘贴
复制和粘贴需要用到pyperclip模块,有copy0)和paste()函数,该模块不是Python自带的,需要导包
import pyperclip
pyperclip.copy('Li-Si')
name = pyperclip.paste()
# name = 'Li-Si'
3.6 查找、统计和替换
# 查找
word.find('lo') # 查找lo在word第一次出现的位置,若找不到则返回-1
word.rfind('lo') # 查找lo在word最后一次出现的位置,若找不到则返回-1
word.index('lo') # 查找lo在word第一次出现的位置,若找不到则报错
word.rindex('lo') # 查找lo在word最后一次出现的位置,若找不到则报错
# 统计
word.count('e', 1, 4) # 在word的第2~3个字符中统计l的个数,默认范围是从头到尾
# 替换
word.replace('l', 'e', 3) # 替换word中的l为e,最大替换3次,默认不限次数
word.expandtabs(tabsize=8) # 把tab替换为空格,默认tab为8个空格