• python中字符串及字符串的格式化


      

    1、当字符串中有转义字符,但是你又不希望转义,则可以通过在字符串前加上字母r来告诉编译器不转义字符串中转义字符
    
                    例如:
    
                    f = open('c:
    ewline	est.txt','wb')
    
                    这样会当成转义字符进行转义,如果在前面加上r就不会
    
                    f = open(r'c:
    ewline	est.txt','wb')
    
    2、分片操作
    
                    L[i,j,k]从L的索引为i开始,直到索引为j,但是不包括j,每隔k位就取出,i的默认值是0,j的默认值是L的长度,k的默认值是1
    
                    当k为正数时,表示从i开始到j,不包括j,并且i<j
    
                    例如:
    
                    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&&&&&&&@'  其中&是填充字符,<表示左对齐,10表示位数
    	其中.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、不可变对象有:数字,字符串,元祖,不可变集合;可变对象有:列表,字典,可变集合
    

      

  • 相关阅读:
    AJAX
    选择器
    断电原则
    radio为什么不能选择。急急急
    IBase<T>
    委托
    Log4Net
    博弈论 学习笔记
    解决You have new mail in /var/spool/mail/root提示
    Zookeeper分布式安装部署
  • 原文地址:https://www.cnblogs.com/hbcb533/p/3669715.html
Copyright © 2020-2023  润新知