和众多编程语言一样,字符串类型在python中也属于不可变类型的可迭代数据类型,值得注意的是,python遍历字符串不会得到字符类型,而是会得到一个长度为1的字符串(这点同java不同),ord()函数主要用来返回对应字符的ascii码,chr()主要用来表示ascii码值对应的字符。
1、字符串定义
sentence = 'tom\'s pet is a cat' # 单引号中间还有单引号,可以转义
sentence2 = "tom's pet is a cat" # 也可以用双引号包含单引号
sentence3 = "tom said:\"hello world!\""
sentence4 = 'tom said:"hello world"'
# 三个连续的单引号或双引号,可以保存输入格式,允许输入多行字符串
words = """
hello
world
abcd"""
print(words)
2、字符串切片
py_str = 'python'
len(py_str) # 取长度
py_str[0] # 第一个字符
'python'[0]
py_str[-1] # 最后一个字符
# py_str[6] # 错误,下标超出范围
py_str[2:4] # 切片,起始下标包含,结束下标不包含
py_str[2:] # 从下标为2的字符取到结尾
py_str[:2] # 从开头取到下标是2之前的字符
py_str[:] # 取全部
py_str[::2] # 步长值为2,默认是1
py_str[1::2] # 取出yhn
py_str[::-1] # 步长为负,表示自右向左取
py_str + ' is good' # 简单的拼接到一起
py_str * 3 # 把字符串重复3遍
py_str.split("t") # 根据字符切片,得出结果为列表
3、测试和替换
常用主要是对字符串构成的判断与操作
S = "Abcd.."
S.isalnum() #是否全是字母和数字,并至少有一个字符
S.isalpha() #是否全是字母,并至少有一个字符
S.isdigit() #是否全是数字,并至少有一个字符
S.isspace() #是否全是空白字符,并至少有一个字符
S.islower() #S中的字母是否全是小写
S.isupper() #S中的字母是否便是大写
S.istitle() #S是否是首字母大写的
S.lower() #将字符串中的字母全部转化为小写字母
S.upper() #将字符串中的字母全部转化为大写字母
S = "this is string example....wow!!!"
print (S.startswith( 'this' )) # True
print (S.startswith( 'string', 8 )) # False
print (S.startswith( 'this', 2, 4 )) # False
4、去掉空格和特殊符号
name.strip() 去掉空格和换行符
name.strip('xx') 去掉某个字符串
name.lstrip() 去掉左边的空格和换行符
name.rstrip() 去掉右边的空格和换行符
5、搜索和替换
name.count('x') 查找某个字符在字符串里面出现的次数
name.capitalize() 首字母大写
name.center(n,'-') 把字符串放中间,两边用- 补齐
name.find('x') 找到这个字符返回下标,多个时返回第一个;不存在的字符返回-1
name.index('x') 找到这个字符返回下标,多个时返回第一个;不存在的字符报错
name.replace(oldstr, newstr) 字符串替换
6、连接与分割
','.join(slit) 用逗号连接变成一个字符串,slit可以是字符,列表,字典(可迭代的对象)
,int 类型不能被连接
name.split() 默认是按照空格分割
name.split(',') 按照逗号分割