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'/
posted @ 2020-01-14 13:38  13th  阅读(324)  评论(0编辑  收藏  举报