if __name__ == '__main__': str1 ="my name is XXX" str2 ="XXX" str3 ="breakloop" str4=17 str5=234.56789
字符串,字符数组
Python3中的字符串可以等同于字符串数组。例如
print("str1[0] =", str1[0]) print("str1[0:1] =", str1[0:1]) print("str1[0:2] =", str1[0:2]) print("str1[3:5] =", str1[3:7])
结果为
str1[0] = m str1[0:1] = m str1[0:2] = my str1[3:5] = name
需要指出的是,:后的数字代表也是索引,而非长度。3:5,表示【3,5),包括3,不包括5.
那么问题来了,能否对str1中的数据进行修改呢?例如
str1[3]='a'
TypeError: 'str' object does not support item assignment
输出格式
Python3中可以将数字类型的数据,以某种字符串格式输出。
print("str4 in d format %d"%str4) print("str4 in o format %o"%str4) print("str4 in x format %x"%str4) print("str4 in s format %s"%str4) print("str5 in d format %d"%str5) print("str5 in e format %e"%str5) print("str5 in f format %f"%str5) print("str5 in .2f format %.2f"%str5)
结果为:
str4 in d format 17 str4 in o format 21 str4 in x format 11 str4 in s format 17 str5 in d format 234 str5 in e format 2.345679e+02 str5 in f format 234.567890 str5 in .2f format 234.57
%d,表示整型
%o,表示8进制
%h,表示十六进制
%s,表示字符型
%e,表示科学表示法,
%f,表示浮点型,若在f前加(.数字),表示小数点后保留的位数,不足则补0
内部工具方法
与其它语言类似,字符串都有长度,是否包含,替换,去除头尾空格,分隔符,获取索引,添加等工具方法。
先看一个其它语言没有的操作方法,复制。
print("str3*2: ", str3*2) print("str3=", str3)
输出结果为
str3*2: breakloopbreakloop str3= breakloop
若在字符串后,使用(*数字)则表示,将字符串复制几次。
再来看几个简单操作。
print("str2 in str1? ", str2 in str1) #判断str1中是否包含str2 print("str3 replace str2, in str1: ", str1.replace(str2, str3))#将str1中的str2,用str3代替 print("str1=", str1) print("str1 + str2: ", str1+str2)#连接str1和str2 print("str1=", str1)
相应输出结果为
str2 in str1? True str3 replace str2, in str1: my name is breakloop str1= my name is XXX str1 + str2: my name is XXXXXX str1= my name is XXX
再来看几个其它操作。
print("str3 length = ", len(str3)) #获取长度 print("str1 split by ''", str1.split(" ")) #使用空格为分隔符,分割str1 print("str1 strip", str1.strip()) #去除头尾的空格 print("how many 'm' in str1?", str1.count("m")) #查找str1中,m出现的次数 print("how many 'm' in str1, from index 1 to 5?", str1.count("m",1,5)) #查找str1中,m出现的次数,范围为【1,5) print("how many 'm' in str1, from index 1 to 6?", str1.count("m",1,6)) #查找str1中,m出现的次数,范围为【1,6) print("get the first index of 'm' in str1 :", str1.find("m")) #获取str1中第一个m的索引 print("get the first index of 'm' in str1, from index 1 to 5 :", str1.find("m",1,5)) #获取str1中第一个m的索引,范围为【1,5) print("get the first index of 'm' in str1, from index 0 to 6 :", str1.find("m",0,6)) #获取str1中第一个m的索引,范围为【1,6)
结果为
how many 'm' in str1? 2 how many 'm' in str1, from index 1 to 5? 0 how many 'm' in str1, from index 1 to 6? 1 get the first index of 'm' in str1 : 0 get the first index of 'm' in str1, from index 1 to 5 : -1 get the first index of 'm' in str1, from index 0 to 6 : 0需要指出的是,查找范围是【x,y)