Python字符串详解
2017-10-22 23:36
246 查看
字符串
- 作用: 名字,性别,国籍,地址等描述信息
- 定义: 在单引号、双引号、三引号内,由一串字符组成
优先掌握的操作:
- 按索引取值(正向取+反向取):只能取
- 切片(顾头不顾尾,步长)
- 长度len
- 成员运算in和not in
- 移除空白strip
- 切分split
- 循环
strip移除空白
name='*egon**' print(name.strip('*')) print(name.lstrip('*')) print(name.rstrip('*'))
判断指定字符是否在结尾或开对,返回True或False
name='alex_SB' print(name.endswith('SB')) #判断字给定字符串是否在结尾,如果在则返回True,不在则为False ------ True print(name.startswith('alex')) #判断给定字符串是否在开头,如果在则返回True,不在则为False ---- True
字符串替换replace方法
name='alex say :i have one tesla,my name is alex' print(name.replace('alex','SB',1)) #替换,把alex替换为SB,1表示只替换匹配到的第一个字符串 ----- SB say :i have one tesla,my name is alex
自定义格式format的三种玩法
#format,自定义格式,注意中间的空格。把format后面的字符串放入大括号中。 res='{} {} {}'.format('egon',18,'male') print(res) -------- egon 18 male #按照输入的位置,按0,1,2,3指定位置排列。 res='{1} {0} {1}'.format('egon',18,'male') print(res) --- 18 egon 18 #设置变量,指定变量的位置,format后面的输入顺序就不重要了。 res='{name} {age} {sex}'.format(sex='male',name='egon',age=18) print(res) --- egon 18 male
查找字符串中索引位置find,rfind,index,rindex,count方法
name='egon say hello' print(name.find('0',1,3)) #查找0,顾头不顾尾,找不到则返回-1不会报错,找到了则显示索引 ---- -1 #同上,但是找不到会报错 print(name.index('e',2,4)) --- ValueError: substring not found #顾头不顾尾,如果不指定范围则查找所有 print(name.count('e',1,3)) --- 0
指定分隔符-split,把一串字串切为列表。
name='root:x:0:0::/root:/bin/bash' print(name.split(':')) #指定冒号为默认分隔符 为空格 --- ['root', 'x', '0', '', '/root/', '/bin/bash'] #只想拿到顶级目录 name='C:/a/b/c/d.txt' print(name.split('/',1)) --- ['C:', 'a/b/c/d.txt'] #从右开始切分 name='a|b|c' print(name.rsplit('|',1)) --- ['a|b', 'c']
join
#可迭代对象必须都是字符串,把tag加入到对应的字符串中。 tag='-' print(tag.join(['egon','say','hello','world'])) --- egon-say-hello-world
字符串居中和填充-center
name='egon' #30为总字符串,让name在30个字符中居中,不够的用-填充。 print(name.center(30,'-')) --- #30为总字符串,让name在30个字符中居中,不够的用-填充。
字符串靠左和填充-ljust
#30为总字符串,让name在30个字符中排最左,不够用*填充 name='egon' print(name.ljust(30,'*')) --- egon**************************
字符串靠右和填充-rjust
#30为总字符串,让name在30个字符中排最右,不够用*填充。 name='egon' print(name.rjust(30,'*')) --- **************************egon
#用0填充-zfill
name='egon' print(name.zfill(50)) #50个字符,name在最右。 --- 0000000000000000000000000000000000000000000000egon
指定制表符的长度-expandtabs
name='egon\thello' #\t制表符 print(name) --- egon hello name='egon\thello' print(name.expandtabs(1)) #1为指定多少个字隔做为分隔符号。 --- egon hello
大小定替换-lower,upper
#全替换为小写 name='Egon' print(name.lower()) --- egon #全替换为大写 print(name.upper()) --- EGON
首字母大写-captalize
name='egon' print(name.capitalize()) --- Egon
大小写翻转-swapcase
print(name.swapcase()) --- eGoN
每个单词的首字母大写-title
msg='egon say hi' print(msg.title()) --- Egon Say Hi
is数字系列
在python中
num1=b'4' #bytes
num2=u'4' #unicode,python3中无需加u就是unicode
num3='四' #中文数字
num4='IV' #罗马数字
isdigt:bytes,unicode
#isdigit来判断字符串是否为数字 #0-9数字类型返回True print(num1.isdigit()) #True print(num2.isdigit()) #True #非0-9数字类型返回False print(num3.isdigit()) #False print(num4.isdigit()) #False
isnumberic:unicode中文数字,罗马数字
#bytes类型无isnumberic方法 print(num2.isnumeric()) #True print(num3.isnumeric()) #True print(num4.isnumeric()) #True
三者不能判断浮点数
num5='4.3' print(num5.isdigit()) print(num5.isdigit()) print(num5.isdigit())
总结:
最常用的isdigit,可以判断bytes和unicode类型,这也是最常见的数字应用场景
如果要判断中文数字或罗马数字,则需要用到isnumeric
is其他
print('===>') name='egon123' print(name.isalnum()) #判断字符串是否由字母或数字组成 print(name.isalpha()) #判断字符串是否只由字母组成 print(name.isidentifier()) print(name.islower()) print(name.isupper()) print(name.isspace()) print(name.istitle())
相关文章推荐
- Python字符串编码详解
- python字符串内建函数详解
- python字符串连接的三种方法及其效率、适用场景详解
- 我与python约个会:17. 字符串详解及序列类型
- Python学习之字符串格式化详解
- Python 字符串方法详解
- python字符串详解
- Python 字符串方法详解
- 详解Python核心对象类型字符串
- Python学习之字符串格式化详解
- 详解Python当中的字符串和编码
- python 字符串详解
- Python操作redis字符串(String)详解 (三)
- 手把手教你:python字符串编码详解
- Python - 格式化(format())输出字符串 详解 及 代码
- python 字符串的split()函数详解
- Python 字符串方法详解
- python leetcode 字符串相乘实例详解
- 详解Python字符串对象的实现
- Python实现字符串格式化输出的方法详解