adapt

【python全栈】3. 字符串操作和for循环
1. 字符串操作 s = 'abcDEF' # 1 字符串首字母大写 s.capitalize() # 2 ...
扫描右侧二维码阅读全文
10
2019/04

【python全栈】3. 字符串操作和for循环

1. 字符串操作

特定字符串(字母组成的一些字符串)的一些操作,其中1、2、3、4、5、6较为常见,可熟悉记忆

s = 'abcDEF'

# 1 字符串首字母大写
s.capitalize()

# 2 字符串所有字母大写
s1 = s.upper()

# 3 字符串所有字母小写
s2 = s.lower()

# 4 大小写翻转
s3 = s.swapcase()

# 5 字符串隔开的每个词的首字母大写(注意:空格和连字符等 非字母字符 均有效)
s = 'hello world!'
s4 = s.title()
s = 'hello$%#world!'
s5 = s.title() # 也能有效使所有隔开的单词首字母大写

# 6 将字符串放在设置的宽度中心,两边的填充可选
s6 = s.center(width, fill=None) #width为指定的宽度,fill为除字符串外的其他位置的填充物(不传入就为空格)。 

# 7 将字符串中的\t转换为tab键(占8个空格)并与\t前面的字符合在一起共占8位,不够的补空格。[超过8位的,未满16位的就利用空格补满16位]
s = 'abcdrs\tuvw'
s8 = s.expandtabs()
# 输出结果为abcdr   uvw

1.1 字符串公共方法

下面是常见的对字符串的各种操作方法

# 1 字符串长度
s = 'asdfg'
print(len(s)) # 字符串长度

# 2 判断字符串以某字符开头
s1 = s.startswith('as')
print(s1) # True 返回值为True和False
s2 = s.startswith('f', 3,5) # 判断字符串第4位之后是以f开始的,区间左包右不包
s3 = s.startswith('d', 2,5) # 判断第3位字符到第5位字符是不是以d开头的

# 3 判断字符串以某字符结尾
s4 = s.endswith('g')
s5 = s.endswith('d', 0,3) # 用法和startswith方法一样

# 4 找寻字符串是否有某个字符
s = 'asdfg'
s6 = s.find('d')
# 返回2,即d字符所在的索引位置(如指定字符在字符串中有多个,仅返回第一个的位置)。如果没找到指定字符则返回-1
s7 = s.find('dfg')
# 返回的还是2,即多个字符返回第一个字符的索引位置
s8 = s.find('qdfg')
# 这样也会返回-1,因为第一个字符q未在字符串中
s9 = s.find('d',0,2) # find方法还可以切片查找,左闭右开,所以这里并不能找到字符d,返回-1

# 5 利用index找寻字符串中某字符索引,与find类似
s = 'asdfg'
s10 = s.index('s') #返回1
s11 = s.index('q') #返回ValueError,这是index和find的区别
# find找不到返回-1 ,index找不到报错

# 6 去掉字符串前后的空格或其他字符

s = '   abcd   '
s12 = s.strip() # 只能去掉字符串前后的,不能去掉字符串中间的空格
# 结果为abcd
s = '%abcd$'
s13 = s.strip('%$') # 可以同时删除多个前后的不同的字符,但是只能在前后,中间的不能删掉
# 结果为abcd

# 只删除字符串左边的字符
s.lstrip()
# 只删除字符串右边的字符( 它们的使用方法同strip()一样 )
s.rstrip()

# 7 计数:统计字符串字符的个数
s = 'abcd efdg abc gg'
s14 = s.count('a')
# 返回2,若没有则返回0
s15 = s.count('ab') # 返回2
s16 = s.count('a',0,4) #返回1,因为是切片后再计数

# 8 字符串拆分 split方法,返回列表
s = 'a1a2a3a4a5'
s17 = s.split('a') # 以a分割,分割后a就没了。
# 返回 ['', '1', '2', '3', '4', '5'],因为a为第一个元素,所以返回的列表的第一个元素是空字符串。
# 记住split()方法是一分为二,虽然第一个a左边没有,但也是会分出来,只不过是空字符串。

1.2 字符串替换

下面是常见的对字符串的替换操作

s = 'abcdefga'
s18 = s.replace('a','A')# 此处没有指定替换的个数,所以全部替换
# 返回'AbcdefgA'
s19 = s.replace('a','A',1) # 只替换一次
# 返回'Abcdefga'

1.3 判断字符串的组成

s = 'abc123'
s20 = s.isalnum() # 判断字符串是否仅由字母或数字组成,是则返回True,反之返回False
s21 = s.isalpha() # 判断字符串是否仅由字母组成
s22 = s.isdigit() # 判断字符串是否仅由数字组成

2. 格式化输出:format()方法

格式化输出的常见方法,当然还可以如这篇文章描述的一样使用占位符进行格式化输出。不过还是推荐使用format()方法

a = 'aa'
b = 'bb'
c = 'cc'
s = '这是第一个{0},这是第二个{1},这还是第一个{0},这是第三个{2}'.format(a,b,c) #大括号里面的可以重用,format中只需给一次
s1 = '这是第一个{},这是第二个{}这是第三个{}'.format(a,b,c) # 这时候可以不加索引,但是需要按顺序给定
s2 = '这是第一个{a1},这是第三个{c1},这是第二个{b1},这还是第一个{a1}'.format(a1 = a, b1 = b, c1 = c) # 这样就可以在大括号里写上具体要表示的意思,最后在format中给定需要的变量即可。

3. for循环

s = 'abcdefg'
for i in s:
    print(i) # 迭代输出s的每一个元素

未完待续...

最后修改:2019 年 04 月 10 日 10 : 06 PM
如果觉得我的文章对你有用,请随意赞赏

发表评论