python数据类型之字符串(str)和其常用方法

字符串是有序的,不可变的。

下面的例子说明了字符串是不可变的

name = 'alex'
name = 'Jack'
"""
并没有变,只是给name开启了一块新内存,储存Jack

In [9]: name = 'alex'

In [10]: id(name)
Out[10]: 4501642800

In [11]: name = 'Rain'

In [12]: id(name)
Out[12]: 4501820168

原来的被python给清理了
"""

字符串常用方法:

s = 'Hello World'
print(s.swapcase())  # hELLO wORLD 大写变小写,小写变大写
print(s.upper()) # HELLO WORLD 变大写
print(s.lower())  # hello world 变小写,只对中英文有效
ss = 'alex edward' 
print(ss.title()) # Alex Edward 首字母大写
print(s.casefold())  # hello world  # 变小写,对于非中英文的也有效
print(s.center(13, '*'))  # *Hello World* 长度、两边要打印什么
print(s.count('o', 0, 5))  # 1 统计指定的字符串,范围从0到5
print(s.endswith('!'))  # False 以什么结尾
s2 = 'a	b'
print(s2)  # a    b
print(s2.expandtabs(10))  # a         b     # 扩展tab键的长度
print(s.find('l', 6, 10))  # 9 找到,指定范围
print(s.rfind('o'))  # 7 从右边开始找

info = "my name is {name} and i'm {age} years old".format(name='alex', age=27)
print(info)  # my name is alex and i'm 27 years old

print(s.index('o', 5, 11))  # 7  和list的index一样  lindex()从左边找,rindex()从右边找

s3 = 'aa11啊'
print(s3.isalnum())  # 是否包含阿拉伯的数字或字符 True
print(s3.isalpha())  # 是否是阿拉伯字符  False
print(s3.isdigit())  # False  是否是数字  和isnumeric()、isdecimal()一样
print(s3.isidentifier())  # True 是否是合法的变量
print(s3.islower())  # True 是否小写
print(s3.isprintable())  # True 是否可被打印  二进制流的不可被打印
print(s3.istitle())  # False  首字母大写  isupper() 是否都是大写
print(s3.isspace())  # 是否有空空格

names = ['alex', 'jack', 'rain']
str_name = '|'.join(names)
print(str_name)  # alex|jack|rain 把列表变成字符串后拼接字符串

print(s.ljust(20, '-'))  # Hello World---------  s在左边
print(s.rjust(20, '-'))  # ---------Hello World  s在右边

print(s.upper())  # HELLO WORLD 大写

s4 = '  
hello world
	   '
print(s4.strip())  # hello world 去掉两边的空格、换行,tab. 还有lstrip()和rstrip()

s5 = 'anvasd'
s6 = '12%$#k'
table = str.maketrans(s5, s6)  # s5和s6长度必须一样 翻译成ASCII码,用来自己定义密码表
print(table)  # {97: 36, 110: 50, 118: 37, 115: 35, 100: 107}
print('edward'.translate(table))  # ekw$rk  根据s5,s6的对应表翻译

print(s.partition('o'))  # ('Hell', 'o', ' World') 以o为中心,把别的两边分开 rpartition(),从右边开始分

print(s.replace('l', 'L', 1))  # HeLlo World  只换1个

print(s.split('o', 1))  # ['Hell', ' World'] 按o分,按哪个分哪个就没了  rsplit()从右边分

s7 = 'a
b
alex
c'
print(s7.splitlines())  # ['a', 'b', 'alex', 'c'] 按换行分

print(s.startswith('H'))  # True 以什么开始
print(s.endswith('d'))  # True 以什么结束

print(s.zfill(15))  # 0000Hello 长度变成15,不够了用0填

原文地址:https://www.cnblogs.com/lshedward/p/9917769.html