python字符串

python字符串


字符串定义

python中定义字符串可以用单引号或双引号括起来,也可使用三个引号括起来,三引号可以跨行,例如

str1 = 'abc'
str2 = '''abc
		defxxx  salkfj
		alksfd'''

字符串常量

在python中,字符串都是不可变的,换句话说,如果你使用+连接字符串,那么本质上是新建了一个字符串,而不是在原字符串后加上一段。所有的字符串都是常量,而我们的字符串变量是引用了这个常量


字符串的分片

字符串可以像列表和元组一样进行分片,就连操作也是一样的

str1 = "hello,world"
print(str1[:5])# hello

使用str1[::-1]可以将字符串反转


字符串常用方法

  • capitalize():返回将字符串的第一个字符变为大写后的字符串,原字符串不变,若第一个字符不是字母,则不变

  • casefold():返回将字符串的所有字符变为小写后的字符串,原字符串不变,其他语言的大小写也会转换

  • center(width):返回一个将字符串用空格填充至width长度,并把原字符串居中的字符串,原字符串不变,如果空格是单数,则字符串后面会多一个空格,如果width小于字符串长度,则返回原字符串。例如

    str1 = "hello,world"
    print(str1.center(15))# hello,world
    
  • count(sub[,start[,end]]):​计算sub在字符串中出现的次数,startend表示查找范围,下同

  • endswith(sub[,start[,end]]):​判断字符串是否是以sub结尾的,类似的有startswith

  • find(sub[,start[,end]]):​获取sub在字符串中的索引值,如果没有,返回-1,类似的rfind可以从右边开始找

  • index(sub[,start[,end]]):和find类似,不同的是如果没有,则返回一个异常

  • join(sub):​返回一个把原字符串插入到sub的每两个元素间后的字符串,如果sub只有一个字符,则返回sub,例如

    str1 = "1"
    print(str1.join("abc"))# output:a1b1c
    print(str1.join(['a','b','c']))# output:a1b1c
    
  • lower():​将大写转为小写,原字符串不变,只对英文字母转换,类似的有upper,将小写转换为大写

  • lstrip([chars]):​返回去掉字符串左边所有是字符串chars的成员后的字符串,默认是空格,类似的有rstrip,去掉的是右边的,例如

    str1 = "12132456"
    print(str1.lstrip("12"))# 32456
    
  • partition(sub):​将原字符串以字符串sub为分界线的3元组,例如

    s1='11222233'
    print(s1.partition('2'))# ('11', '2', '22233')
    
  • replace(old,new,[,count]):将原字符串里的old替换为new的字符串,不超过count次,count缺省时为无穷次。原字符串不会改变

  • split(sep=None,maxsplit=-1):​ 对字符串进行切片,如果sep没有参数,则默认按空格为分隔符,最多分成maxsplit次,默认为无数次,返回切片后的字符串组成的列表,例如

    str1 = "123 15 666"
    print(str1.split())# ['123', '15', '666']
    print(str1.split("1"))# ['', '23 ', '5 666']
    
  • swapcase():将原字符串的大小写翻转


原生字符r

​ ‘r’是防止字符转义的,如果路径中出现’\t’的话,不加r的话\t就会被转义,而加了’r’之后’\t’就能保留原有的样子,原理是在转义字符前加\,举个例子

s = r"\tt"
print(s)# \tt

字符串的格式化

format

有两种形式,位置参数和关键字参数,它可以把字符串里对应的位置或者关键字替换成format的参数,原字符串不变

  1. 位置参数,举个例子

    s1 = 1
    s = '{0} + 2 = {1}'
    print(s.format(s1,3))# 1 + 2 = 3
    

    这里的{0}{1} 就是位置字段,它们会依次被替换成format里对应的位置参数

  2. 关键字参数,举个例子

    s1 = 1
    s = '{x} + 2 = {y}'
    print(s.format(x=s1,y=3))# 1 + 2 = 3
    

    在这里{x}和{y}就是关键字字段,x和y是关键字,format里的参数是关键字对应的变量或常量。

这两种形式可以混用,但位置参数必须在关键字参数之前,个人不推荐这样使用,就不举例了

如果原字符串里本身包含{0},且这个不是要替换的字段,则需要将其写为{{0}},类似于转义字符,这样{0}将不会参与format函数的替换,注意:在不使用format时,不会发生转义,例如

s1 = 1
s = '{{0}} + 2 = 3'
print(s.format(s1))# {0} + 2 = 3

在使用时可以使用格式化字符来进行显示,例如

s1 = 111111
s = '{0:.1e} + 2'
print(s.format(s1))# 1.1e+05 + 2

​具体的格式化字符如下

在这里插入图片描述

格式化符号

这个类似于c语言的printf函数,就是语法略有不同,举个例子

s = '%d + %.2f = %d'
x = 1
y = 2.2
z = 3.2
print(s%(x,y,z))# 1 + 2.20 = 3
r = '%c'
print(r%97)# a

注意:这不是print函数的用法,而是字符串的,例如这样也可以

s = "%.2f"%0.3

格式符表如下
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值