创建字符串:
可以用单引号,也可以用双引号创建字符串
var1=‘hello,world’var2="hello,world"
字符串的操作:
1.乘法运算:
print('hello world'*2) #输出结果为hello worldhello world
2.判断字符串中是否存在给定字符
print('an' in 'animal') #输出‘True’print('s' in 'animal') #输出‘False’
列表,元组的操作都是这样
3.[ ],[ : ]通过索引获取字符串中的字符
a='animal'print(a[2:]) #输出‘imal’
和列表的切片操作相同
4.字符串的拼接
(1)用‘+’
a='123' b='abc' c=a+b print(c) #输出123abc
(2)用join()方法
a='abc'b='123'c=''.join([a,b])print(c) #输出abc123
a='abc'b='123'c='xyz'd='--'.join([a,b,c])print(d) #输出abc--123--xyz
用引号之间的字符串将断裂的字符串拼接
5.字符串的其他方法
st='hello kitty'print(st.count('l'))#输出‘2’,统计给定字符串的数量print(st.capitalize())#输出‘Hello kitty’,整个字符串的首字母大写print(st.center(20,'-'))#输出'-----hello kitty-----',居中字符串print(st.endswith('ty'))#输出True,判断是否以给定字符串结尾print(st.startswith('he'))#输出True,判断是否以给定字符串开头st1='he\tllo world'print(st1.expandtabs(tabsize=10))#输出'he llo world'print(st.find('s'))#查找到第一个指定字符串,并将索引值返回,若没找到,则返回-1 #可以指定查找的起始值和结束值,默认为0和len(string) #如:print(st.find('s',2,10)),表示在索引值为2和10的范围内查找子字符串 st2='you are {adj1} and {adj2}'print(st2.format(adj1='beautiful',adj2='tall'))#格式化输出的另一种方式print(st2.format_map({ 'adj1':'beautiful','adj2':'tall'}))#format()方法的字典形式print(st.index('h'))#输出给定字符串的索引值print('abc123!'.isalnum())#判断是否是数字或者字母
print('123'.isdecimal())print('123'.isdigit())print('123'.isnumeric())
三个方法的区别: isdigit() True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字 False: 汉字数字 Error: 无 isdecimal() True: Unicode数字,,全角数字(双字节) False: 罗马数字,汉字数字 Error: byte数字(单字节) isnumeric() True: Unicode数字,全角数字(双字节),罗马数字,汉字数字 False: 无 Error: byte数字(单字节)
print('abc'.isidentifier())#判断字符串是否是字母开头print('abc'.islower())#判断是否为全部小写print('abc'.isupper())#判断是否为全部大写print(' '.isspace())#判断是否为空格print('My Name Is Chen'.istitle())#判断是否是每个单词的首字母大写print('My Name Is Chen'.lower())#将字符串的所有字母小写print('My Name Is Chen'.upper())#将字符串的所有字母大写print('My Name Is Chen'.swapcase())#将字符串大写的字母小写,小写的字母大写print(st.ljust(50,'*'))#输出hello kitty***************************************print(st.rjust(50,'*'))#输出***************************************hello kittyprint(' my name is \n'.strip())#删除头尾所有的空格,换行符,也可以指定参数,删除头尾指定的符号,这是就不会删除空格和换行符 #print('--my name is-- '.strip('-')),输出为'my name is--' print(' my name is \n'.lstrip())#只删除字符串左边的空格和换行符print(' my name is \n'.rstrip())#只删除字符串右边的空格和换行符print('my name is is'.replace('is','are',1))#字符串替换,第三个参数为替换的个数print('my name is'.rfind('e'))#从右边开始寻找给定字符,并返回索引print('my name is'.split(' '))#以空格分割字符串,也可以是以其他字符分割字符串print('my name is'.title())#以所有单词首字母大写的形式输出字符串
常用方法有:
count()
center()
startswith()
find()
format()
lower()
upper()
strip()
replace()
split()
字符串格式化: 字符串格式化用操作符百分号(%)实现 如: >>> print('hello,%s'%'world') hello,world >>> print('我今年%s岁了'%10) 我今年10岁了 格式化字符串的%s部分称为转换说明符,标记了需要仿制转换值得位置,通用术语为占位符
%s 字符串 (采用str()的显示)
%r 字符串 (采用repr()的显示)
%c 单个字符
%b 二进制整数
%d 十进制整数
%i 十进制整数
%o 八进制整数
%x 十六进制整数
%e 指数 (基底写为e)
%E 指数 (基底写为E)
%f 浮点数
%F 浮点数,与上相同
%g 指数(e)或浮点数 (根据显示长度)
%G 指数(E)或浮点数 (根据显示长度)
指定精度的格式为一个英文格式下的句点加上希望保留的小数位数,如: print('圆周率为:%.2f'%3.141592) >>>圆周率为:3.14 如果要输出百分号:(可以用%%表示) print('营业额同比增长了%.2f%%'%50.33333) >>>营业额同比增长了50.33% 基本转换说明符的组成部分: (1)%字符,标记转换说明符开始 (2)转换标志(可选),-表示左对齐;+表示在转换值之前一定要加上正负号;“”(空格)表示正数之前保留空格;0表示转换值位数不够时用0填充 (3)最小字段宽度(可选),转换后的字符串至少应该具有该值指定的宽度,如果时*,宽度就会从值元组中读出 (4)点(.)后跟精度值(可选):如果转换的是实数,精度值表示出现在小数点后的位数;如果转换的是字符串,该数字就表示最大字段宽度;如果是*,精度就会从元组中读出 (5)转换类型:如s,f,d之类 字段宽度和精度: >>> print('圆周率PI为:%10f'%3.141593) 圆周率PI为: 3.141593 >>> print('保留两位小数,圆周率PI为:%10.2f'%3.141593) 保留两位小数,圆周率PI为: 3.14 >>> print('保留两位小数,圆周率PI为:%.2f'%3.141593) 保留两位小数,圆周率PI为:3.14 >>> print('字符串精度获取:%.5s'%'hello,world') 字符串精度获取:hello 再看以下代码: >>> print('从元组中获取字符串精度:%*.*s'%(10,5,'hello,world')) 从元组中获取字符串精度: hello >>> print('从元组中获取字符串精度:%.*s'%(5,'hello,world')) 从元组中获取字符串精度:hello 从结果看到,可以使用*(星号)作为字段宽度或精度(或两者都用*),数值会从元组中读取 符号,对齐和0填充 先看一个例子: print('圆周率PI的值为:%010.2f'%3.141593) >>>圆周率PI的值为:0000003.14 这样的输出结果,我们称之为“标表”,在字段宽度之前可以仿制一个“标表”,可以是零,加号,减号,空格。零表示用0 进行填充 减号(-)表示用来左对齐,如: 从元组中获取字符串精度:hello >>> print('圆周率PI的值为:%10.2f'%3.141593) 圆周率PI的值为: 3.14 >>> print('圆周率PI的值为:%-10.2f'%3.141593) 圆周率PI的值为:3.14 #此处右边为多出的空格 空格表示在正数前加上空格 >>> print('%d'%10+'\n'+'%d'%-10) 10 -10 >>> print('% d'%10+'\n'+'%d'%-10) 10 -10 由结果可知,该操作可以对齐正负数 加号(+)表示无论正负数都表示出符号: >>> print(('宽度前加加号:%+5d'%10)+'\n'+('宽度前加加号:%+5d'%-10)) 宽度前加加号: +10 宽度前加加号: -10