字符串方法

字符串方法:

1、capitalize() ---->首字母大写

 

2、casefold() --->大写转小写,可以处理特殊的大小写对应关系

 

3、lower() ---》简单的大写转小写

 

4、center(self,width,fillchar=None)

width ---》设置宽度,并将内容居中

fillchar---> 空白填充字符 (只能一个字符)

例:tes t= "gcx"

v = test.center(20)

print(v)

打印结果:10个空格gcx10个空格

若:v = test.center(20," * ")

结果:**********gcx**********

ljust(self,width,fillchar=None) --->字符串放在左边,后面加填充字符

rjust(self,width,fillchar=None) ---》字符串放在右边,后面加填充字符

zfill(width ) --->字符串放右边,默认以数字零填充

 

5、count(self,sub,start=None,end=None)

sub ---> 要统计出现次数的字符(子序列)

start、end ---》开始位置结束位置

 

6、endswith(self,suffix,start=None,end=None) --->判断是否以XXX结尾并返回一个布尔值

startswith() --->以XXX开头

 

7、find(self, sub,start=None,end=None) ----> 从起始位置开始找,找到第一个之后,获取其下标

返回 -1 表示没有找到

注意:若有start 和 end 参数 表示在范围(start=< X < end)里面找sub

 

8、format(*args,**kwargs) ---> 格式化,加一个字符串中的占位符替换为指定的值

例:test =" my name is {name},age {age}"

print(test)

打印结果:my name is {name},age {age}

v = test.format(name='gcx',age=24) 也可以写成 v = test.format( **{“name” : "gcx" , "age" : 24} )

print(v)

打印结果:my name is gcx,age 24

扩展:test = 'I am {0}, age {1}' ----->必须以 0 开始,这样写之后系统会自动按顺序对应参数值

v = test.format('gcx', 24)

print (v)

打印结果:I am gcx,age 24

 

9、format_map(self,mapping) ----> 与format的作用相同仅仅只是传参的形式不同

例:test =" my name is {name},age {age}"

v = test.format_map({"name" : 'gcx', "age" : 24}) ---》以字典形式传入

 

10、index( self, sub, start=None,end=None ) ---> 获取sub在字符串中的索引,如果没有程序会报错(注意与find的区别)

 

11、isalnum(self) ---> 判断字符串中只是包含字母和数字(纯字母、纯数字、字母数字混合),并返回一个布尔值(true or false)

 

12、expandtabs( n) --- > 从起始位置开始以n个字节为步长开始寻找制表符(/t),遇到制表符就暂停,不足n位以空格补齐。

 

13、isalpha(self) ----> 判断字符串里面是否只包含字母汉字,并返回一个布尔值

 

14、isdigit()、isdecimal() 、isnumeric() --> ---->判断字符串是否只包含数字,并返回一个布尔值

isdecimal ---->十进制小数

isdigit ----> 不支持中文形式的数字如:二

isnumeric ---> 支持中文

 

 

 

 

isdigit() ---》能识别各种数字形式

 

15、swapcase() --->大小写转换

 

16、isidentifier() --->判断字符串是否满足变量的命名规则(字母、数字、下划线构成,数字不能开头、不能纯数字)并返回一个布尔值

 

17、islower() ---> 判断是否是小写

lower( ) --->将字符串转换成小写

isupper() ---》判断是否全部为大写

upper() ---》 转换成大写

 

18、isprintable() -->如果字符串里面的字节都能打印出来则输出为true,否则为false,如:/n 、/t 换行符、制表符

 

19、isspace() --->判断一个字符串里面是否全部是空格

 

20、title() ----》把字符串里面的内容转换成标题的形式(首字母大写)

istitle() ----》判断暖字符串是否满足首字母大写的形式。

 

21、join(self, iterable) --->将字符串中的每一个元素按照指定的分隔符进行拼接

例:test = "你是风儿我是沙"

print (test)

t = "_"

v = t.join(test)

print (v)

打印结果:你是风儿我是沙

你_是_风_儿_我_是_沙

 

22、不加参数chars时表示:

lstrip(self, chars=None) ----->去掉字符串左边的空格 、换行、制表符(/t)

rstrip(self, chars=None) ---->去掉字符串右边的空格 、换行、制表符(/t)

strip(self, chars=None) ---->去掉一个字符串里面的空格、换行、制表符(/t)

加上参数chars表示去掉指定的参数字符

例:test = "xalex"

v = test.lstrip("x")

print (v)

打印结果:alex

例:test = "xalex"

v = test.rstrip("axa")

print (v)

打印结果:ale

注意:执行的时候回自动匹配参数里面包含的字符,不一定要整个子序列全部匹配,先进行最多匹配(最长公共子序列)

 

23、maketrans(self, *args,**kwargs) ---->创建字符串的对应关系

translate(self, table) ---> 把字符串按照设定的对应关系,进行替换操作

例:v = "aeiou"

m = str.maketrans("aeiou" , " 12345" )

new_v = v.tanslate(m)

print(new_v)

打印结果:12345

24、

partition(self,sep) ----> 按照字符串中出现的第一个sep参数(从左边往右找)分割字符串为 子字符串(永远是3份,sep参数被单独分割出来)

rpartition(self,sep) ----> 与partition不同的是从有往左边找第一个出现的sep参数进行截取

split (self , sep=None, maxsplit= -1) -------> maxsplit表示按照sep分割的次数,且分割后sep是被去掉的,使用split进行切割生成的结果是一个列表

splitlines(self,keepends=None) --->只能根据字符串中的换行符(/n)进行切割,切割成子字符串,可以加入true、false参数来决定是否在子字符串中保留换行符

 

例:计算字符串 "5+9" 的值

value = "5+9"

v1 , v2 = value.split("+") -----> 直接把分割后的值赋值给V1 , V2

v1 = int(v1) ---->字符串转成整型格式

v2 = int(v2)

 

 

25、startswith(self,prefix,start=None,end=None) -----> 判断字符串是否是以prefix参数开头 ,并返回布尔值,

endswith (self,prefix,start=None,end=None) ---》 判断字符串是否以XXX结尾

 

26、swapcase() ---》把字符串中的大写换成小写,小写换成大写

 

27、replace() --->替换字符串里面的指定字符

例:test = "alexalexalex"

v = test.replace("ex" , "bb") ----》 把字符串中所有的 ex 替换成 bb

或者

v = test.replace("ex", "bb", 1) ------>只把第一个 ex 替换成 bb

 

 

从字符串中取元素:

test = "learning"

v = test [0:2] ---> ( 0 =< X < 2 ) 如果是[0 : -1] 则表示除最后一个全部取出,最后一个字符 -1,倒数第二个字符 -2,以此类推......

print (v)

打印结果:le

 

在Python3中:

len() ----》获取字符串的长度,如传入 learning 则结果为: 8,如传入字符串“郭晨希”则结果为 3

获取列表元素(逗号分隔)的个数

在Python2中:

len("郭晨希") ----》 结果为 9(因为在utf-8编码中一个中文有三个字节)

 

 

输出字符串中的字符与索引:

test = input("请输入:")

v = range (0,len(test))

for item in v:

print(item , test[item])

 

 

range函数可以按照指定规则创建连续的数字

range(0,100)---》 输出0 --99

range(0,100,5)---》输出:0、5、10、15........ (5表示步长)

range (100,0,-1) -----> 输出:100、99、98.........

 

在python3中:

range(100) ----》只有在for循环中调用range时才会创建 0---99(一个一个的创建)

在Python2中

v = range(100) ---> 直接就在内存中创建了 0--99

v = xrange (100) ---> 相当于Python3中的range,只有在用for循环时才被创建

 

字符串一旦被创建就不可在原内存里面修改,如果修改或者拼接就会在内存中开辟新的空间生成新的字符串。

必须要掌握的方法:replace / find /join /strip / startswith / split / upper / lower / format

 

 

字符串格式化

一:

例1: s = "my name is %s ,age %s " %("gcx" , 24) ---->注:%s 表示此处是一个字符串,如果后面参数传入时对应的不是字符串类型,系统会自动把参数转换成字符串的类型

print (s) ------>打印结果:my name is gcx ,age 24

 

%s ---- > 字符串 如果写成 %.4s的形式则表示对后面传入的字符串截取4位进行显示

 

%d -----> 整数

 

%f -----> 浮点数(默认保留6位小数)

如果想保留2位小数要写成: %.2f

如果想要打印出 百分号 前面要写成 : %.2f %%

例2:v = "I am %(name)s ,age %(age)d" %{"name" : "gcx" ,"age" : 24}

例3:print ('root','x','0' , sep = ' : ') ---->打印结果:root:x:0 其中“sep”用来指定分隔符

 

例4: msg = “I am %(name)-60s ,age 24” %{"name" : "gcx"}

从name开始占60个字符,name在60个字符位置中靠左对齐

 

使用format格式化字符串

例1:s = "i am {}, age{},hobby{}" .format("gcx", 24, "study")

注意:使用以上格式要注意 format 方法里面的参数要与前面的 {} 一一对应,不对应则会报错

 

例2:s = "i am {2}, age{1},hobby{0}" .format("gcx", 24, "study")

s = "i am {1}, age{1},hobby{1}" .format("gcx", 24, "study")

注意:以上两种格式都是正确的程序不会报错,当前面以索引的形式存在,format提供参数的时候可以不一一对应,但前面花括号的索引值 不能超过format元组参数的索引值范围。

 

例3:s = "I am {0[0]} , age{0[1]},really{0[2]}".format([0,1,2],[3,4,5])

打印结果:i am 0,age1,really2

 

例4 :s = "I am {:s},age{:d},money{:f}".format("seven",18,99999.99)

例5:s = "I am {:s},age{:d}".format(*["seven",18])

例6:s = "numbers: {:b},{:o},{:d},{:x},{:X},{:%}" .format(14,14,14,14,14,14.58672 , 2)

注:使用这种格式程序会自动把format里面的参数按顺序传入前面的花括号,然后按照花括号里面的格式进行类型的转换(format里面的参数多了没关系,但如果少了就完不成一一对应,系统就会报错)

b ---> 表示二进制

o --->表示八进制

x ---> 表示英文字母小写的十六进制 (如:a 表示11)

X ---> 表示英文字母大写的十六进制 (如:A 表示11)

% ----> 表示已 %数的形式表示(默认保留6为小数)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值