Python 字符串处理

                     

贡献者: addis

预备知识 Python 基本变量类型

1. 字符串处理

   字符串(string)可以想象成由字符构成的特殊数组,一般用于储存一段文字。一个字符串变量如

s = 'python String 字符串'
注意也可以使用双引号 "..."。用 type(s) 查看类型得到 str,即 string 的缩写。

   input() 函数可以在程序运行的过程中获取用户输入的字符串,例如

s = input('请输入:')
print('您输入的内容是:', s)
如果希望用户输入其他类型,如整数,那么输入后再进行变量类型转换即可,如 int(s)

   len(s) 用于获取字符串长度

print('s = ', s, '; length = ', len(s))
也可以用三个单引号或双引号表示多行字符串,如
s = '''这是第一行
这是第二行
这是第三行'''
注意如果第一个 ''' 后面必须紧接第一个字符,第二个 ''' 必须紧跟最后一个字符。

转义符

   如果在字符串中要表示一些特殊的字符,我们可以使用 \ 开头的转义符(escape character),例如 \n 表示换行,\' 表示单引号,\" 表示双引号,\\ 表示 \。如果字符串两边用了双引号,内部的单引号不需要转义,反之亦然。

print('it's good') # 错误, python 会把 'it' 理解为一个字符串
print("it's good") # 正确
print('it\'s good') # 正确

   如果不想使用转义符,可以在第一个单引号或双引号前面加 rR。例如 r'a\nb' 中的 \n 不代表换行而是 \n 两个字符。

格式化

截取字符串

   字符串的截取与数组的截取相同

s = '0123456789'
print(s[0:3]) # 截取第一位到第三位的字符
print(s[:]) # 截取字符串的全部字符
print(s[6:]) # 截取第七个字符到结尾
print(s[:-3]) # 截取从头开始到倒数第三个字符之前
print(s[2]) # 截取第三个字符
print(s[-1]) # 截取倒数第一个字符
print(s[::-1]) # 创造一个与原字符串顺序相反的字符串
print(s[-3:-1]) # 截取倒数第三位与倒数第一位之前的字符
print(s[-3:]) # 截取倒数第三位到结尾
输出:
012
0123456789
6789
0123456
2
9
9876543210
78
789

连接字符串

delimiter = ','
mylist = ['Brazil', 'Russia', 'India', 'China']
print (delimiter.join(mylist))
print('abc'+'def')
输出
Brazil,Russia,India,China
abcdef

字符串搜索

s='python String function'
print('%s find nono=%d' % (s,s.find('nono')))
print('%s find t=%d' % (s,s.find('t')))
print('%s find t from %d=%d' % (s,1,s.find('t',1)))
print('%s find t from %d to %d=%d' % (s,1,2,s.find('t',1,2)))
print('%s rfind t=%d' % (s,s.rfind('t')))
print('%s count t=%d' % (s,s.count('t')))
输出:
python String function find nono=-1
python String function find t=2
python String function find t from 1=2
python String function find t from 1 to 2=-1
python String function rfind t=18
python String function count t=3

字符串替换

   替换 old 为 new:s.replace('old','new')

   替换指定次数的 old 为 new:s.replace('old','new',maxReplaceTimes)

字母处理

s = 'python String 字符串'
print('s =          ', s);
print('lower =      ', s.lower()); # 全部变为小写:
print('upper =      ', s.upper()); # 全部变为大写:
print('swapcase =   ', s.swapcase()); # 大小写互换
print('capitalize = ', s.capitalize()); # 首字母大写,其余小写
print('title =      ', s.title()); # 首字母大写
输出:
s =           python String 字符串
lower =       python string 字符串
upper =       PYTHON STRING 字符串
swapcase =    PYTHON sTRING 字符串
capitalize =  Python string 字符串
title =       Python String 字符串

格式化相关

   获取固定长度,右对齐,左边不够用空格补齐:s.ljust(width)

   获取固定长度,左对齐,右边不够用空格补齐:s.ljust(width)

   获取固定长度,中间对齐,两边不够用空格补齐:s.ljust(width)

   获取固定长度,右对齐,左边不足用 0 补齐

s='python String'
print('%s ljust = %s' % (s,s.ljust(20)))
print('%s rjust = %s' % (s,s.rjust(20)))
print('%s center = %s' % (s,s.center(20)))
print('%s zfill = %s' % (s,s.zfill(20)))
输出:
python String ljust = python String       
python String rjust =        python String
python String center =    python String    
python String zfill = 0000000python String

字符串去空格及去指定字符

   去两边空格:s.strip()

   去左空格:s.lstrip()

   去右空格:s.rstrip()

   去两边字符串:s.strip('d'),相应的也有 lstrip,rstrip

   按指定字符分割字符串为数组:s.split(' ')

s = ' python String function '
print('%s strip=%s' % (s,s.strip()))
s = 'python String function'
print('%s strip=%s' % (s,s.strip('d')))

翻转字符串

sStr1 = 'abcdefg'
sStr1 = sStr1[::-1]
print(sStr1)
输出
gfedcba

   关于更多高效的字符串处理方法,感兴趣的读者可以查阅正则表达式的使用方法。

   另见 string 模块


致读者: 小时百科一直以来坚持所有内容免费无广告,这导致我们处于严重的亏损状态。 长此以往很可能会最终导致我们不得不选择大量广告以及内容付费等。 因此,我们请求广大读者热心打赏 ,使网站得以健康发展。 如果看到这条信息的每位读者能慷慨打赏 20 元,我们一周就能脱离亏损, 并在接下来的一年里向所有读者继续免费提供优质内容。 但遗憾的是只有不到 1% 的读者愿意捐款, 他们的付出帮助了 99% 的读者免费获取知识, 我们在此表示感谢。

                     

友情链接: 超理论坛 | ©小时科技 保留一切权利