字符串
1、定义
- 用引号引起来的一串字符
- 用引号来创建字符串
- 单引号
- 双引号
- 三单引号
- 三双引号
name = "hangzhou"
area = 'gongshu'
history = "5000"
famous_person = """苏轼,许仙,白素贞"""
capticalof = '''越国,南宋'''
print(type(name),type(area),type(history),type(famous_person),type(capticalof))
结果为
pm = '''轻轻的我走了
正如我轻轻地来
'''
print(pm)
结果:
2、字符串的运算及常见操作
- 拼接
a = "hello"
b = ",python"
print(a+b)
拼接使必须是同一种数据类型
- 重复
a = "abc"
print(a*3)
- 索引(偏移)[ ]
sr = "Python"
for i in range(0,6):
print(sr[i],end = " ")
结果为:
当然字符串的索引值也可以为负值。若索引值为负值,则表示由字符串的结尾向前数。最后一个元素的索引值为-1,以此类推。
sr = "Python"
print(sr[-2])
结果为:
对字符串的切片受用方法为:
a[x,y]
这里表示分割字符串a,x表示开始索引值,y表示结尾索引值(不包括)
sr = "Life is short, you need python."
print(sr[2:10])
结果为:
- 大小写互换
- sr.lower()—>转小写
- sr.upper()—>转大写
- sr.swapcase()—>大小写互换
- sr.title()—>转换为标题的形式
- sr.capitalize()—>首字母大写
sr = "Life is short, you need python."
print(sr.lower())
print(sr.upper())
print(sr.swapcase())
print(sr.title())
print(sr.capitalize())
结果为:
简单的一个应用:验证码的不论大小写
code = "FGnb"
iput = input("请输入验证码:")
if iput.lower() == code.lower():
print("验证码正确!")
else:
print("对不起,验证码错误,请重试!")
3、字符串的格式输出对齐
- sr.center([len],[填充字符])
sr = "Life is short, you need python."
print(sr.center(41,'!'))
结果为:
- sr.ljust([len],[填充字符])
- sr.rjust([len],[填充字符])
sr = "Life is short, you need python."
print(sr.ljust(41,'!'))
print(sr.rjust(41,'#'))
结果为
- sr.zfill([len])居右对齐,默认填充0
sr = "Life is short, you need python."
print(sr.zfill(41))
4、删除指定字符
- sr.strip()删除左右两边的指定字符
- sr.lstrip()
- sr.rstrip
sr = "####Life is short, you need python.####"
print(sr.strip('#'))
print(sr.lstrip('#'))
print(sr.rstrip('#'))
结果为:
当然这种匹配的字符必须是从头匹配,如果在中间那就无法生效
sr = "!!####Life is short, you need python.####!!"
print(sr.strip('#'))
print(sr.lstrip('#'))
print(sr.rstrip('#'))
5、计数
- sr.count()计算某一元素在字符串中出现的次数,可指定开始与结束搜索的索引值
sr = "!!####Life is short, you need python.####!!"
print(sr.count('o'))
print(sr.count('o',9,17))
结果为:
6、字符串的搜索定位与替换
- sr.find(),检测指定字符串中是否包含子串,存在返回索引值,否则返回-1
- sr.index(),功能与上同,不同的是不存在时会报一个异常
- sr.rindex()功能相同,从左往右查找
sr = "!!####Life is short, you need python.####!!"
print(sr.find('e',9,25))
print(sr.find('z',9,25))
print(sr.index('z',9,25))
- sr.replace([现有],[替换],替换个数)
sr = "!!####Life is short, you need python.####!!"
print(sr.replace('you need','I use'))
使用时需注意空格的匹配问题!
7、字符串条件判断
- isalnum()判断字符串是否由字母和数字组成
- isalpha()判断是否只是由字母或汉字组成
- isdigit()判断是否只由数字构成
sr = 'fgnb123kky哈哈哈'
sr1 = '哈哈哈123'
sr2 = '哈哈哈abc'
print(sr.isalnum())
print(sr1.isalnum())
print(sr2.isalnum())
print(sr.isalpha())
print(sr1.isalpha())
print(sr2.isalpha())
print(sr.isdigit())
其他与字符串操作有关的函数
8、制表符的转化
- sr.expandtabs()
nm = '0123456789012345678901234567890'
sr = "Life is\tstrange,\twhat's the answer"
print(nm)
print(sr.expandtabs())
9、字符串的分割变换
- join(),将指定字符插入到元素之间
- split(),以指定字符分割并去除该字符
- partition(),以指定字符分割并保留该元素
sr = "Life is strange, what's the answer"
print('$'.join(sr))
li = ['what','can','i','do']
print(' '.join(li))
print(sr.split('w'))
print(sr.partition('e'))
结果为:
10、ASCII值和字符的转化
- chr()—>数字转字符
- ord()—>字符转数字
11、字符串的格式化符号
格式化符号 | 含义 |
---|---|
%c | 格式化字符及ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整型 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%f | 格式化浮点数,可指定精度 |
%e | 科学计数法格式化浮点数 |
%p | 十六进制格式化变量的地址 |