python之路06--之字符串的所有操作
一、字符串的索引与切片
1、字符串的索引
说明:字符串是有顺序得,这个顺序也可称作下标,默认从零开始
a = "abcdef12345"
print(a[0]) #获取下标为0的字符串
print(a[-1]) #获取字符串的最后一个字符
2、字符串的切片
1、从左往右的顺序获取字符串
说明:字符串是支持切片的,默认读取顺序是从左往右的顺序,指定为负数是则顺序为总有往左
a = "abcdef12345" print(a[0:3]) #顾头不顾尾:表示从下标零开始,到下标三结束,但是不会打印下标三的字符串 print(a[0:-1]) #顾头不顾尾:表示从下标零开始,到最后一个下标结束,但是不会打印最后一个下标的字符串 print(a[0:],a[:]) #表示打印全部字符串,从头到结尾,[0:] == [:] print(a[0:0]) #不会报错,但是取不到字符串,因为这个写法不识别 print(a[0:5:2]) #顾头不顾尾:从下标零获取到下标五的字符串(实际获取的是下标四的字符串),获取的步长位2,打印的结果为:ace
2、从右往左的顺序获取字符串
a、将字符串倒序显示出来
a = "abcdef" print(a[::-1])
b、获取eca
a = abcdef print(a[4::-2])
二、格式换输出
1、以占位符的形式格式化输出
占位符说明:
%s:str(字符串)
%d:digit(数字)
name = input("请输入姓名:")
age = int(input("请输入年龄:"))
height = int(input("请输入身高:"))
msg = "我叫:%s,今年:%d,身高:%d,学习进度%%3" %(name,age,height)
print(msg)
2、以format的形式格式化输出
下面是三种形式的format使用方法
1、第一种方法 s = '我叫{},今年{},爱好{},再说一下我叫{}'.format('ouyang',16,'girl','ouyang') print(s) 2、第二种方法 s = '我叫{0},今年{1},爱好{2},再说一下我叫{0}'.format(ouyang,36,'girl') print(s) 3、第三种方法 s = '我叫{name},今年{age},爱好{hobby},再说一下我叫{name}'.format(age=18,name='ouyang',hobby='girl') print(s)
三、字符串的所有操作
1、字母b开头 --> 字符串的所有操作
将字符串转换为16进制数(10进制、二进制:都是同样的方法)
num = "a" #a在16进制数里为10 v = int(num,base=16) #base=指定的时多少位进制数 print(v) #打印结果也就是10
2、字母C开头 --> 字符串的所有操作
name = "my name is ouyang" print(name.capitalize()) #字符串首字母大写 print(name.count("a")) #记录字符串里a的个数,统计("")里的字符串 print(name.center(50,"*")) #(50,"*")表示一共要打印50个字符,不够的用*号补充在变量name内容的两侧,如果不指定填充物默认以空格填充
3、字母e开头 --> 字符串的所有操作
name = "my name is ouyang" print(name.encode()) #将字符串转换成二进制格式 print(name.endswith("in")) #判断变量name的值以in结尾,是则返回True,不是则返回False #-------------分割符---------------------------------------------------------------------------## #a = "this \tis test" #一个字符串里添加了tab键 ## #print(a.expandtabs(tabsize=50)) #用expandtabs(tabsize=50)可以将tab键替换成50个空格 ## #ptint(a.expandtabs()) 如果字符串里面\t,则将\t转换为tab键(如果字符串没有八个,则用空格补足八个,大于八个不足十六位的则用空格补足十六位,补的是八的倍数),用的不多 #---------------结束符-------------------------------------------------------------------------##
4、字母f开头 --> 字符串的所有操作
name = "my name is ouyang" print(name.find("name")) #显示的结果是("name")里指定字符串的下标(就是查找字符串的下标) print(name[name.find("name"):9]) #字符串切片,print(name[name.find("name"):9])表示打印从name带头到下标为9的字符串 #------------------分割符--------------------------------------------------------------## names = "my name is {name},age {age}" ## print(names.format(name="zain",age="23")) #format可以格式化字符串 ## #-------------------结束符-------------------------------------------------------------##
5、字母 i开头 --> 字符串的所有操作
name = "my name is ouyag" print(name.index("y")) #打印字符串对应的下标 print("aE123".isalnum()) #判断字符串里包含英文字符(包含大写)和数字,是则返回True、有特殊字符则返回false print("abR".isalpha()) #判断字符串是纯英文字符(包含大写)是则返回True、否则返回false print("234".isdigit()) #判断字符串是不是整数,是则返回True、否则返回False print("A_234".isidentifier()) #判断是不是合法的标识符(变量名)、实则返回True、否则返回False print("aE".islower()) #判断字符串是不是小写,是则返回True、不是则返回False print("234".isspace()) #判断是不是一个空格,是则返回True、反之则返回False print('My Name Is'.istitle()) #判断字符串是不是title(首字母大写)、是则返回True、反之则返回False print('My Name Is'.isupper()) #判断字符串是不是大写(全是大写)、是则返回True、反之则返回False #将字符串转换为数字类型 a = "123" print(type(a),a) b = int(a) print(type(b),b)
6、字母 j开头 --> 字符串的所有操作
说明:join可以处理列表、元组、字符串、但是不可以处理数字类型。无论处理的是什么类型,处理后的类型为字符串类型
s1 = '71'.join("ouyang") print(s1) #输出结果为:o71u71y71a71n71g print('*'.join(['1','2','3'])) #输出的结果是1*2*3,类似拼接 list = ["71net.com","71box.net","欧阳奇异"] print(''.join(list)) #无缝衔接,结果为:71net.com71box.net欧阳奇异
7、字母 l开头 --> 字符串的所有操作
name = "my name is ouyang" print(name.ljust(60,'%')) #(60,'%'):60为长度(定义总长度为60)如果超长了则只显示60个,%为填充物(字符串不足时填充,写在字符串的结尾) print("71net".lower()) #将大写字母替换为小写,对数字不影响 print("My Name Is OuYang".lstrip()) #去掉字符串左面的空格和换行 print(len(name)) #统计字符串的长度,列表,字典也通用
8、字母 m开头 --> 字符串的所有操作
#+++++++++++++++++++++分割符+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ p = str.maketrans("abcdefli","123$%^&8") #用后面的"123$%^&8"覆盖了前面的"abcdefli"、前后字符串的长度要一样,否则会报错 +++ print("zhangsan".translate(p)) #将变量p传给字符串"zhangsan" 、实现字符串加密 +++ #++++++++++++++++++++++++结束符+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
9、字母 r开头 --> 字符串的所有操作
print("ouyang".replace('ouyang','欧阳',1)) #替换,语法('old','new','count')如果不写count则全部替换,指定count则只替换count次 print('71net.com\n'.rstrip()) #去掉字符串右面的空格和换行 print("my name is zain sun".rfind("m")) #从左往右获取指定的字符(这里是m),最右面(最后)字符的下标 print(name.rjust(60,'+')) #(60,'+'):60为长度(定义总长度为60)如果超长了则只显示60个,+为填充物(字符串不足时填充,写在字符串前面)
10、字母 s开头 --> 字符串的所有操作
print(' \n adiyi.com '.strip()) #去掉左右两侧的换行和空格 print('aaa***aaab'.strip('ab')) #删掉了字符串a和b,先删掉单独的a,然后删除单独的b,结果为:*** print('my name is ouyang'.split("m")) #将字符串替换为列表(默认是以空格分割,这里指定以字母m分割),本次的打印结果为 ['', 'y na', 'e is ouyag'] print('12\n34\n56'.splitlines()) #将文本转换成列表,以换行为分割符 print('OuYang'.swapcase()) #大小写互换(即之前是大写的给替换为小写,之前是小写的给替换为大写 ) print('71net.com'.startswith("71")) #判断字符串以什么开头,如果是则返回True、反之则返回False +++++++++++++分割符++++++++++++++++++++++++++++++++++++++++++++++++ 判断一个字符串同时以XXX开头并且以XXX结尾 a = "my name is ouyang" if a.startswith("my") and a.endswith("yang"): print("OK") else: print("Error") +++++++++++++结束符++++++++++++++++++++++++++++++++++++++++++++++
11、字母 t开头 --> 字符串的所有操作
print("adiyi com".title()) #将字符串替换为title(即首字母大写)
12、字母 u开头 --> 字符串的所有操作
print("OuYang".upper()) #将小写字母替换为大写,对数字无影响 --------分割符-------------------------------------- #判断输入验证码不区分大小写 s_str= 'acEQ1' you_input =input('请输入验证码,不区分大小写') if s_str.upper() == you_input.upper(): print('输入成功') else: print('请重新输入') -----------结束符-------------------------------------------------------------------------
13、字母 z开头 --> 字符串的所有操作
print("www.71net.com".zfill(30)) #规定字符串的长度为30,不够的用0在左侧填充

浙公网安备 33010602011771号