python基础篇(str篇)

字符串是python编程过程中最常用的类型,熟练的掌握其函数及相关特性能提高开发效率(本文主要用于个人学习笔记)。

以下是主要的字符类函数:
字符串大小写转换类型方法:
(1)capitalize()
首字母大写

s = 'capitalize'
print(s.capitalize())
→Capitalize

(2)lower()
大写变小写

s = 'LOWER'
print(s.lower())
→lower

(3)upper()
小写变大写

s = 'upper'
print(s.upper())
→UPPER

(4)swapcase()
大小写互换

s = 'sWaPcAsE'
print(s.swapcase())
→SwApCaSe

增删、修改类型方法:
(1)chars.join(iterable)
将chars参入iterable对象的遍历参数之间

a = '.'.join('abc')
print(a)
→a.b.c
b = ''.join(['a','b','c'])
print(b)
→abc

注:join()的效率要高于‘+=’,在将迭代对象转为字符串时优先选择join()方法。

(2)replace(old,new)
用new字符串代替old字符串

s = 'replace'
print(s.replace('e','a'))
→raplaca

(3)split(sep,maxsplit)
根据sep字符或字符串来分割self字符串,返回一个列表,其中maxsplit代表分割次数。

s = 'a,b,c'
print(s.split(',',1))
→['a', 'b,c']

c = 'abceadcerrcedd'
c = c.split('ce')
print(c)
→['ab', 'ad', 'rr', 'dd']

注:还存在rstrip(),从右至左分割。
(4)strip(chars)
去除开头与结尾的chars字符,多用于出去首尾空格符

s = ' strip '
c = s.strip()
print(c)
strip

注:存在rstrip(),从右至左开始。
(5)center(width, fillchar)/ljust(width, fillchar)/rjust(width, fillchar)
三种函数用法类似,同是用fillchar参数来填充str以达到宽度width,若width小于len(str)则不显示填充效果。
center()从中间展开填充:

s = 'center'
print(s.center(9,'*'))
→**center*

ljust()从左开始计数后填充:

s = 'ljust'
print(s.ljust(9,'*'))
→ljust****

rjust()从右开始计数后填充:

s = 'rjust'
print(s.rjust(9,'*'))
→****rjust

查询类型方法:
(1)find(sub, start, end)
在索引值start到end范围内查找sub子字符串,若存在返回索引值,否则返回-1。

s = 'find'
print(s.find('i'))
→1
  
s = 'find'
print(s.find('i', 1, 3))
→1

存在rfind(),从右找,索引值不会因此改变。
(2)index(sub, start, end)
同find(),但是找不到时会报错。
也存在rindex()。

判断类型方法:
(1)isalnum()
判断字符是佛为汉字或字母:

s1= 'a1C3b'
print(s1.isalnum())
→True
s2 = 'a1C 3b'
print(s2.isalnum())
→False

(2)isalpha()
判断是否为字母(或汉字)

s1= 'a1C3b'
print(s1.isalpha())
→False
s2 = 'aC好b'
print(s2.isalpha())
→True

(3)isdigit()
判断是否为纯数字(整数)

s1= 'a1C3b'
print(s1.isdigit())
→False
s2 = '123.4'
print(s2.isdigit())
→False
s3 = '1234'
print(s3.isdigit())
→True

(4)islower()、isupper()
是否都为小写、大写。
(5)istitle()
是否首字母大写。
(6)isspace()
是否都是空白字符(包括制表符\t\n\r等)

format方法

format方法的实用性很好,算得上是python字符串的一种优势,极大提高效率。
format()主要通过字符串中的{索引}、{关键字}来参入对应的值。
(1)对于{索引}而已,format里的参数必须按照对应顺序填写:

a = '这里{0}{1},{1}{0}西瓜皮,西瓜皮里{0}{2}'.format('有个','冬瓜皮','象拔蚌')
print(a)
→这里有个冬瓜皮,冬瓜皮有个西瓜皮,西瓜皮里有个象拔蚌

注:在替换数量少的情况下索引值可省略即{},但必须确保format里的参数数量和索引数量相同。

a = '这里{}{},{}{}西瓜皮'.format('有个','冬瓜皮','冬瓜皮','有个')
print(a)
→这里有个冬瓜皮,冬瓜皮有个西瓜皮

(2)对于{关键字},format会自动对应相应位置:

a = '这里{have}{pi},{pi}{have}西瓜皮,西瓜皮里{have}{jb}'.format(jb='象拔蚌',have='有个',pi='冬瓜皮')
print(a)
→这里有个冬瓜皮,冬瓜皮有个西瓜皮,西瓜皮里有个象拔蚌

(3)除此之外format还有填充和对齐的功能,这俩种功能往往一起使用:
‘^’.’<’.’>'分别表示中、左对齐、右对齐,后面带上总width,作用于center(),ljust(),rjust()相似:

a = 'aaa{name:*^8},bbb{char:*<9}'.format(name = '666',char=777)
print(a)
→aaa**666***,bbb777******

最后:

需要注意的是字符串类型不可改变,一个内存地址拥有一个值,以上所有关于字符串改变的方法意味着创建了新字符串对象。
如果遇到需要频繁更改字符串的情况,python的io模块提供了StringIO(str)方法,此方法很特别,能在不创建新对象的条件下直接修改字符串的值,用法如下:

import io
s = 'helloworld'
news = io.StringIO(s)
news.seek(5)
news.write('python')
print(news.getvalue())
→hellopython
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值