一 字符串常用方法
数字
python3
中,不管数字有多大都属于int
类型
python2
中,有长整形,用long
修饰
- 字符串转换为数字
a = "123"
b = int(a)
print(b,type(b))
- 各个制转换为十进制
//2进制
num = "0011" #0b11
v = int(num,base=2)
print(v)
//16进制
num1 = "a"
print(int(num1,base=16))
- bit_length()
#至少用几位来表示二进制
#011
age = 3
r = age.bit_length()
print(r)
字符串
- 首字母大写转换
test = 'tiantian'
test = test.capitalize()
print(test)
- 所有变小写
test = test.lower()
print(test)
- 更牛逼,很多未知的对应关系变小写
print(test.casefold())
- 设置宽度,并将内容居中
#center
# def center(self, width, fillchar=None):
#第一个参数,总长度,第二个填充字符,一个字符,可有可无
print(test.center(20,"*"))
打印
******TianTian******
- 字符串出现次数
def count(self, sub, start=None, end=None):
start:开始位置 可不填
end:结束位置 可不填
test = 'TianTian'
print(test.count("an"))
- 以..开头或以..结尾
test = 'TianTian'
print(test.endswith('an'))
print(test.startswith('an'))
打印
True
False
- 从开始往后找,找到第一个后,获取其位置
没找到返回 - 1
参数:左闭又开
print(test.find('an'))
def find(self, sub, start=None, end=None)
- 将一个字符串中的占位符替换为指定的值
test = 'hell world i love {name} and {age}'
vv = test.format(name='tt',age=12)
print(vv)
或者
test = 'hell world i love {0} and {1}'
vv = test.format('tt',12)
print(vv)
- format_map
test = 'hell world i love {name} and {age}'
vv = test.format_map({"name":'tian',"age":19})
print(vv)
- index 返回位置下标
test = "tiantian"
print(test.index("s"))
- 字符串中是否只包含字母和数字
test = "tiantian"
print(test.isalnum())
- expandtabs
断句,不足6个补空格(6是你自己填写的)
test = "1234567\t89"
v = test.expandtabs(6)
print(test,"++++++",len(v))
打印结果
补了5个空格
1234567 89 ++++++ 14
expandtabs应用
test = "username\temail\tpassword\nTianTianBaby223\t5920*****@qq.com\t123\n"
v = test.expandtabs(20)
print(v)
打印结果
username email password
TianTianBaby223 5920*****@qq.com 123
- isalpha
判断是否是字母,汉字
test = "asdt"
print(test.isalpha())
- 判断是否是数字
test = "②"
print(test.isdecimal(),"\n")
print(test.isdigit())
print(test.isnumeric())
打印结果
False
True
True
test = "二"
# print(test.isalpha())
print(test.isdecimal(),"\n")
print(test.isdigit())
print(test.isnumeric())
打印
False
False
True
- isidentifier
判断是否是标识符
a = "_123"
print(a.isidentifier())
- isprintable
完全打印返回True,不可显示返回False
test = "111ddf\t"
print(test.isprintable())
- isspace
判断是否全部是空格,全是空格返回True,否则返回false
test = " "
print(test.isspace())
- 判断是否是标题与转化成标题
test = "TianTian Baby Cool"
print(test.istitle())
print(test.title())
打印
False
Tiantian Baby Cool
- join
将字符串每一个元素按照指定分隔符进行拼接
test = "今天天气好热"
print(" ".join(test))
打印
今 天 天 气 好 热
- 左右填充
test = "tiantian"
print(test.ljust(20,"*"))
print(test.rjust(20,"*"))
打印
tiantian************
************tiantian
- 0填充
print(test.zfill(20))
打印
000000000000tiantian
- islower
是否全是小写
test = "Tzhhh"
print(test.islower())
- 判断是否全是大写与变大写
test = "tzzT"
print(test.isupper())
print(test.upper())
- 去除左或右/r/t/空白以及左右/r/t/空白
test = " tiantianSunshine "
print(test.lstrip())
print(test.rstrip())
print(test.strip())
打印
tiantianSunshine
tiantianSunshine
tiantianSunshine
可以加参数,优先最多匹配
test = "tiantianSunshine"
print(test.lstrip("tiantian"))
print(test.rstrip("Suns45公里dfkglkhine"))
print(test.strip())
打印
Sunshine
tiantia
tiantianSunshine
- 对应关系替换
test = "aeiou"
test1 = "12345"
m = str.maketrans(test,test1)
print("abcdeifogu".translate(m))
- 字符串的分割
test = "你是s逆光s照耀s我"
print(test.partition("s"))
print(test.rpartition("s"))
print(test.split("s"))
print(test.split("s",1))
print(test.split("s",2))
print(test.rsplit("s",1))
打印结果
('你是', 's', '逆光s照耀s我')
('你是s逆光s照耀', 's', '我')
['你是', '逆光', '照耀', '我']
['你是', '逆光s照耀s我']
['你是', '逆光', '照耀s我']
['你是s逆光s照耀', '我']
- 换行分割
True/False 显示和保留换行
test = "adfsdf\nsdfsdf\nsdfasdf\nsdfdf"
print(test.splitlines(False))
打印结果
['adfsdf', 'sdfsdf', 'sdfasdf', 'sdfdf']
- 大小写转换
test = "TianTianBaby"
print(test.swapcase())
- 切片
获取字符串中的字符
test = "tiantianBaby"
print(test[0:1])
print(test[0:-1])
print(test[1])
print(test[2])
打印
t
tiantianBab
i
a
- len
python3 :len 获取当前字符由几个字符组成,中文每个算一个字符
test1 = "tiantianBaby"
test = "你好"
print(len(test),"++",len(test1))
- replace
字符串替换
test = "tiantiantianbaby"
print(test.replace("tian","didi"))
print(test.replace("tian","didi",1))
print(test.replace("tian","didi",2))
打印结果
didididididibaby
diditiantianbaby
didididitianbaby
- range
参数 : 起始,终点,步长
v = range(0,10,2)
for item in v:
print(item)
打印结果
0
2
4
6
8
v = range(0,10)
for item in v:
print(item)
打印结果
0
1
2
3
4
5
6
7
8
9
二 字符串拼接:
字符串一旦创建,不可修改
一旦修改或者拼接,都会造成重新生成字符串
原因:字符内存地址是连续的,如果可以修改的话插入更多字符的时候,后面的字符地址会依次窜位,耗费资源.
代码示例
name = "tiantian"
age = "18"
# #会生成新的字符串
info = name + age
print(info)
打印结果
tiantian18