Python3学习笔记:字符串

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)


你可能感兴趣的:(人工智能,Python3,Python3)