dxbjfu0 2020-03-06
字符串特征
1.字符串是由字符组成的
2.任意数据类型都可以转化成字符串
字符串取值
1.字符串取值是根据字符串的索引取值,索引从0开始,例如:
name = "learner"
print(name[2]) #结果为"a"
print(name[100]) #超出索引范围,报错,IndexError
字符串切片
1.字符串切片,取左边的元素不取右边的元素,例如:
name = "learner"
print(name[1:3]) #结果为"ea"
print(name[:3]) #前面省略不写,代表从0开始,结果为"lea"
print(name[1:]) #后面的省略不写,代表取到末尾,结果为"earner"
print(name[:]) #前后都省却不写,代表从头取到尾,相当于复制结果为"learner"
new_name = name
print(new_name) #也是字符串的复制
print(name[0:100]) #取出所有值,切片超出了范围也不会报错,非切片操作超出索引范围会报错
print(name[::-1]) #从右到左取值
print(name[::2]) #步长为2,取索引值为0,2,4,6……的值
PS:步长是负数,就是从右到左取值;步长为正数,就是从左到右取值,(末尾位置-开始位置与步长符号一致可以取值)
字符串格式化输出
1.第一种方式
name = "yanzi"
age = 18
print("""
name:%s
age:%d
"""%(name,age))
2.第二种方式
print("""name:{}
age:{}""".format(name,age))
字符串的内置函数
1.大小写互换
print(name.lower()) #小写
print(name.upper()) #大写
print(name.title()) #每个单词的首字母大写
print(name.capitalize()) #字符串最开始的单词大写
2.查找,find,index,count print(name.find("y")) #查找y元素所在的索引值,没有找到就返回-1 print(name.find("y")) #查找y元素所在的索引值,没有找到就报错 print(name.count("y")) #统计y元素出现的次数 3.替换 print(name.replace("y","KKK")) #y是旧值,"KKK"是要替换的新值 4.join,字符串拼接 # 对列表进行操作 seq = ['hello', 'good', 'boy', 'doiido'] print(" ".join(seq)) #hello good boy doiido # # 对字符串进行操作 seq2 = "hello good boy doiido" print(":".join(seq2)) #h:e:l:l:o: :g:o:o:d: :b:o:y: :d:o:i:i:d:o # # 对元组进行操作 seq3 = ('hello', 'good', 'boy', 'doiido') print(":".join(seq3)) #hello:good:boy:doiido # # 对字典进行操作,只对key进行连接 seq4 = {'hello': 1, 'good': 2, 'boy': 3, 'doiido': 4} print(":".join(seq4)) #hello:good:boy:doiido # # 合并目录 import os print(os.path.join('/hello/', 'good/boy/', 'doiido')) #/hello/good/boy/doiido 5.strip 可以剔除 print(' a f '.strip()) #剔除左右两边的空格 print("ad".strip("a")) #指定字符进行剔除 6.split()分割字符串 print("i love you".split(" ")) print("i/love/you".split("/")) 7.isdigit 判断是不是一个正整数 print(name.isdigit()) #false print("1.1".isdigit()) #false print("-1".isdigit()) #false print("222".isdigit()) #True