python字符串基本操作
@TOC
字符串操作
字符串可索引,可切片
1. 首字母大写、全部大写、小写
name = "love you"
print(name.title())
print(name.upper())
print(name.lower())
存储数据时,lower()很有用,因为无法确保用户输入正确的大小写格式,就先转化为小写,显示的时候再转化为合适的格式。
字符串拼接,数字要str()
python的整数除法只得到整数
2. 删除空白
message = " 1 2 3 "
print(message.rstrip()) # 去末尾空白
print(message.strip()) # 去两端空白
print(message.lstrip()) # 去开头空白 left right
# 取出全部空白可以用replace()
message.replace(' ','')
3. 重复
直接乘重复次数
>>> a='123'
>>> a*5
'123123123123123'
>>>
4. 拼接
字符串连接的几种不同方式
def concat1():
z = x + y
return z
def concat2():
z = "%s%s" % (x, y)
return z
def concat3():
z = "{}{}".format(x, y)
return z
def concat4():
z = "{0}{1}".format(x, y)
return z
5. 查找
>>a='abcabcabcxyz'
>>a.count('ab')
3
>>a.find('ca')
2
>>a.find('cx')
8
>>a.find('ca',4,6)
-1
>>a.find('ca',4,9)
5
6. 相关判断
是否以start开头:str.startswith('start')
是否以end结尾:str.endswith('end')
是否全为字母或数字:str.isalnum()
是否全字母:str.isalpha()
是否全数字:str.isdigit()
是否全小写:str.islower()
是否全大写:str.isupper()
格式化
In [1]: '{0},{1}'.format('kzc',18)
Out[1]: 'kzc,18'
In [2]: '{},{}'.format('kzc',18)
Out[2]: 'kzc,18'
In [3]: '{1},{0},{1}'.format('kzc',18)
Out[3]: '18,kzc,18'
`
^、<、>分别是居中、左对齐、右对齐,后面带宽度;:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充。
比如
In [15]: '{:>8}'.format('189')
Out[15]: ' 189'
In [16]: '{:0>8}'.format('189')
Out[16]: '00000189'
In [17]: '{:a>8}'.format('189')
Out[17]: 'aaaaa189'
print('{:*^60}'.format(' 每个TERMINALNO 数据记录数 '))
******************** 每个TERMINALNO 数据记录数 ******************** (中文字符居然只算1个字符,所以有中文字符时候输出不同行还是对不齐)
可用如下形式将数字格式化
>>'{:0>2}'.format(1)
'01'
>>'{:0>2}'.format(10)
'10'
>>'{:0>2}'.format(100)
'100'
>>'Pi is {:.2f}.'.format(3.1415)
'Pi is 3.14.'
表示二进制,b,o,d,x
isdigit()判断是否为纯数字
>>a='123ac'
>>a.isdigit()
False
>>a='123'
>>a.isdigit()
True
7. 字符串反转
>>a[::-1]
'321'
>>reversed(a)
<reversed object at 0x0000023FEFC5C6D8>
>>''.join(reversed(a))
'321'
例子
>>if a.startswith('-'):
... a[0]=''
Traceback (most recent call last):
File "<input>", line 2, in <module>
TypeError: 'str' object does not support item assignment
>>if a.startswith('-'):
... a = a[1:]
>>a
'1--3--5-'
>>if a.endswith('-'):
... a = a[:-1]
>>a
'1--3--5'
>>a.replace('--','-')
'1-3-5'/