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在左侧填充
posted @ 2018-07-07 23:58  欧-阳  阅读(175)  评论(0)    收藏  举报