a='I love PYTHON. Python hate me.'
print(a.capitalize())
print(a.casefold())
print(a.title())
print(a.swapcase())
print(a.upper())
"""
输出内容:
I love python. python hate me.
i love python. python hate me.
I Love Python. Python Hate Me.
i LOVE python. pYTHON HATE ME.
I LOVE PYTHON. PYTHON HATE ME.
"""
其中,如果width<=len(string)的话,字符串原样输出。rjust并不是完全挤占zfill应用场所,下面例子可以说明问题。
a='-123'
print('\''+a.center(10)+'\'')
print('\''+a.ljust(-1)+'\'')
print('\''+a.rjust(10,'0')+'\'')
print('\''+a.zfill(10)+'\'')
'''
输出内容:
' -123 '
'-123'
'000000-123'
'-000000123'
'''
观察可见rjust与zfill的区别。如果字符串首为负号,那么zfill会在负号后面添加0,而rjust不会有这种情况。zfill在一些数据制表的情况下有特殊作用。
a='12233344445'
print(a.count('3',0,5))
#2,为a中'3'在'12233'部分出现次数
print(a.find('44'))
#6,为'44'在a中从左起首次出现时,首字符索引值
print(a.rfind('44'))
#8,为'44'在a中从右起首次出现时,首字符索引值
print(a.index('1',0,3))
#0,为'1'在'122'部分首次出现,a中的索引值
print(a.replace('3','4',2))
#12244344445,将原来a中头两个'3'更新为'4'
table=str.maketrans('12345','67890');
#创建替换表,'12345'中对应各个字符替换为'67890'
print(a.translate(table))
#67788899990
a='12233344445'
print(a.startswith('223',1,5))
#True,'2233'部分是以'223'起始
print(a.endswith('45'))
#True,a中以'45'结束
print(a.startswith(('1','2','3','4')))
#Ture,('1','2','3','4')中'1'为a起始
str_1='I Love Python'
print(str_1.istitle())
#True,str_1中所有单词首字母大写,其余字母小写
print("I LOVE PYTHON".istitle())
#False,"I LOVE PYTHON"中存在除单词首字母以外字母大写
print('ASDFghjkl'.upper().isupper())
#True,原字符串经过upper方法处理后,所有字母大写
#Python中方法从左往右依次调用
print("asdfghjkl123".islower())
#True,以上字符串所有字母都是小写,'123'部分不是字母
print("I love Python".isalpha())
#False,以上字符串存在空格、句点的非字母字符
print(" \n".isspace()) #原字符串组成字符依次为一个Tab、一个空格与一个'\n'
#True,以上字符都属于空白字符串内容
print("i like apple.\n".isprintable())
#False,其中的'\n'属于不可打印字符
print('张三_计算机1903班_Q123456'.isidentifier())
#True,该字符串可以作为Python合法标识符
print('\''+" 去除左侧空白 ".lstrip()+'\'')
#输出'去除左侧空白 ',右侧空白未被去除
print('\''+" 去除右侧空白 ".rstrip()+'\'')
#输出' 去除右侧空白',左侧空白未被去除
print('\''+' 去除 两侧 空白 '.strip()+'\'')
#输出'去除 两侧 空白',中间空白未被去除
print('\''+'1267123458934345'.strip('12345')+'\'')
#输出'671234589','6'到'9'中间的数字1至5未被去除
print('123.456.789'.partition('.'))
#分割成('123', '.', '456.789')
print('123456'.partition('.'))
#输出('123456', '', '')
print('123.456.789'.rpartition('.'))
#分割成('123.456', '.', '789')
print('123456'.rpartition('.'))
#输出('', '', '123456')
print('123 456 789 0'.split(' ',1))
#分割一次' ',输出['123', '456 789 0']
print('1234\n567\n890'.splitlines())
#按行分割,输出['1234', '567', '890']
print('123\r\n4567\n89\r0\n'.splitlines())
#不同操作系统下换行符也不同,split方法不能在多种操作系统下同时作用
#在Linux系统下,换行符为'\n',而Mac系统下换行符为'\r',Windows系统下甚至为'\r\n'
#splitlines方法,多种换行符均可以识别,输出['123', '4567', '89', '0']
print('123\r\n4567\n89\r0\n'.splitlines(True))
#输出['123\r\n', '4567\n', '89\r', '0\n'],换行符保留
print('.'.join(['www','baidu','com']))
#输出www.baidu.com,将各个字符串用'.'连接
字符串格式化使用format方法,在学习笔记2中有简要介绍。更深入的介绍如下:
使用{:align,width}实现,align标记对齐方法,width标记字符串宽度。
print('输出:{1:^10},{2:<10},{0:>10}.'.format(1234,'汉字','Chinese'))
#输出: 汉字 ,Chinese , 1234.
#依次为居中对齐、靠左对齐、靠右对齐
使用{:char,align,width},可使可用空间内空余空间使用字符char填充。
如果在数字对齐制表情况下,填充0实现数字对齐制表,需要将-10输出在10个字符可用空间内,输出'0000000-10'不符合要求,则可以通过{:010}实现。注意此方法只对数字有效,处理字符串会报错。
print("输出:{:%<10}".format('python'))
#输出:python%%%%
print("输出:{:010}".format(-10))
#输出:-000000010
如果需要输出数字标志正负符号,可通过{:+}实现,此时输出数字会标记正负。
如果需要输出的数字有千分符(,),可以通过{:,}实现,此时输出数字会有千分符划分。下横线同样可以用于千分符划分,使用方法相近。
print("输出:{:+},{:+}".format(250,-1.2))
#输出:+250,-1.2
print("输出:{:,},{:_}".format(10000000,1234567))
#输出:10,000,000,1_234_567
当需要对数字精度处理时,可以:
注意,保留有效数字时,如果没有到达小数位,则会通过科学计数法输出。保留数字时存在四舍五入。
print("输出:{:.2f}".format(3.196))
#输出:3.20
print("输出:{:.2g}".format(3.196))
#输出:3.2
print("输出:{:.3g}".format(3456))
#输出:3.46e+03
print("输出:{:.2}".format('123456'))
#输出:12
可以备注数字输出格式。整数备注方法有如下几种:
如果在以上备注前标注#,则输出时可以说明输出格式。
print("64的二进制:{:b}".format(64))
#64的二进制:1000000
print("49的Unicode字符:{:c}".format(49))#49=0x31
#49的Unicode字符:1
print("64的八进制:{:o}".format(64))
#64的八进制:100
print("64的十六进制:{:#x}".format(64))
#64的十六进制:0x40
对于浮点数,则有以下方式:
print("output:{:f}".format(1.23456789))
#output:1.234568
print("output:{:e}".format(123456789))
#output:1.234568e+08
print("output:{:g}".format(1.23456789))
#output:1.23457
print("output:{:g}".format(123456789))
#output:1.23457e+08
print("output:{:.2%}".format(0.037))
#output:3.70%
在有些时候,希望输出数字精度可以自行控制,则可以借助于关键字参数的形式设置输出的值;此外,多种选项的值都可以通过关键字参数设置。
print("output={:.{prec}f}".format(10.0,prec=3))
#output=10.000
print("output={:{fill}{align}{width}.{prec}{type}}"
.format(10.1234,fill='_',align='^',width=10,prec=3,type='g'))
#output=___10.1___
f-字符串可以更简洁地实现字符串格式化。相较于原来的格式化方法,f-字符串只需要将f/F在字符串前标注,之后即可直接在花括号里面添加变量名等想要输出的内容。
add_string='语法糖'
print(f"f-字符串属于一种{add_string}.")
#f-字符串属于一种语法糖.
而希望通过一定格式输出时,变量名等输出内容写在冒号前,格式则写在冒号之后即可,与上面基本相近。
add_string='语法糖'
print(f"f-字符串属于一种{add_string:->10}.")
#f-字符串属于一种语法糖.
#表示需要有10个字符的自由空间,字符串居右,'-'填充。
print(f"output={3.14*5**2:_^13.2f}")
#output=____78.50____
print(f"{-520:010}")
#-000000520
fill,align,width,prec,type='_','^',10,3,'g'
print(f"output={10.1234:{fill}{align}{width}.{prec}{type}}")
#output=___10.1___
注意f-字符串属于python3.6的产物,在较低级版本机器环境下可能无法识别,大多数情况下format方法更加泛用。