python字符串中的格式字符可以省略吗_python中字符串及字符串的格式化

1、当字符串中有转义字符,但是你又不希望转义,则可以通过在字符串前加上字母r来告诉编译器不转义字符串中转义字符

例如:

f = open('c:\newline\test.txt','wb')

这样会当成转义字符进行转义,如果在前面加上r就不会

f = open(r'c:\newline\test.txt','wb')

2、分片操作

L[i,j,k]从L的索引为i开始,直到索引为j,但是不包括j,每隔k位就取出,i的默认值是0,j的默认值是L的长度,k的默认值是1

当k为正数时,表示从i开始到j,不包括j,并且i

例如:

L=[1,2,3,4,5]

print(L[0:5]) #输出:1,2,3,4

print(L[slice(0,5)]) # 跟上面等效

print(L[:]) #输出:1,2,3,4,5

print(L[slice(None,None)]) #跟上面等效

print(L[:5:2]) #输出:1,3,5

print(L[slice(None,5,2)]) #跟上面等效

当k为负数时,表示从i开始,到j结束,不包括j,并且i>j

例如:

L=[1,2,3,4,5]

print(L[5,1,-1]) #输出5,4,3

L=[1,2,3,4,5]

print(L[slice(5,1,-1)])

print(L[::-1]) #输出5,3,2,1

print(L[slice(None,None,-1)])

3、int,str,repr能够将字符串转化为数字,也能够将数字转化为字符串。ord将字母转化为ascii,chr将数字转为字符

4、join将对象连接起来,split通过某些分隔符将对象分隔

5、字符串的格式化:%[name][flag][width][.precision]typecode 其中width.和precision可以用*代替,表示可以从输入项的下一个取值:

例如:

print('kk%+*.*fw' % (8,4,125454564545453.454545456))

6、利用字典进行格式化,利用字典的键查找值

print('%(x)d %(k)s'%{'x':45,'k':'how are you'})

7、另外一种字符串格式化方法

例如:

template = '{0},{moto},{food}'

print(template.format('ham',moto='spam',food='egg'))

在这里利用位置,或者参数名字进行调用,如果确定用位置,则这个位置必须是不带名字的参数

例子 :

import sys

print('{1[spam]} runs {0.platform}'.format(sys,{'spam':'laptop'}))

print('{config[spam]} runs {sys.platform}'.format(sys=sys,config={'spam':'laptop'}))

8、具体的格式化:

语法是{fieldname!conversionflag:formatspec}

其中fieldname可以是name或者index,conversionflag可以是r,s,a分别代表该值被repr,str,ascii内置函数的调用,formatspec在下面讨论

例如:

a='a'

print('{0!r}'.format(a))

print('{name!r}'.format(name='ad'))

下面讨论formatspec的形式如下:

[[fill]align][sign][#][0][width][.precision][typecode]

其中fill表示当位数不够时,用什么填充,但是这个必须和对齐符号连起来使用。

例如:'#{0:¥<10}#'.format(124) #输出:'#124¥¥¥¥¥¥¥#'

align表示对齐方式:(右对齐),=(具体使用我不清楚),^(居中对齐)

例如:'@{0:&<10}@'.format(123) #输出:'@123&&&&&&&@' 其中&是填充字符,

其中.precision表示精度,typecode表示类型,比如说d,e,f

例如:'@{0:&<10.4f}@'.format(123.0) #输出:'@123.0000&&@'

9、在python2.6和python3.0中提供了一宗内置format函数有相同的功能

例如:

'{0:.2f}'.format(12.3) 和format(12.3,'.2f')

10、格式化方法能够通过位置,键,属性引用和二进制类型代码 例如:'{0},{1:b},{name.path}'.format('hello',2,name=sys) #解释一下:第一个{0}是通过位置进行引用的,{name.path}通过键并且利用了其属性

当在%表达式中想用键查找其值的时候,后面必须是字典,例如:'%(name)s'%dict(name="lucy")

11、格式化方法也可不写位置,例如:'{:f} ,{:.2f},{:06.2f}'.format(3.14159,3.14159,3.14159) #输出:3.141590,3.14,003.14

12、注意一下区别:

'%s'%1.23 #输出:1.23

'%s'%(1.23,)#输出:1.23

’%s'%((1.23),)#输出:1.23

'{:.2f}'.format(1.2345) #输出:1.23

'{:.2f},{:d}'.format(1.2345,99) #输出:1.23,99

'{:f}'.format(1.2345)#输出:'1.234500'

'{0}'.format((1.2345,))#输出:'(1.2345,)'

13、不可变对象有:数字,字符串,元祖,不可变集合;可变对象有:列表,字典,可变集合

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值