day2-字符串
字符串可以理解为是单个字符的列表
相同点:
对列表的许多操作,也可以作用于字符串:
按下标取值
切片
用于for循环
len()
in 和not in操作符
1.定义字符串
name = '' #空字符串 >>> name = "dick" #非空字符串 >>> name[1] #通过下标取值 'i' >>> name[2] = 'q' #不能修改字符串的值,否则会报错 Traceback (most recent call last): File "<input>", line 1, in <module> TypeError: 'str' object does not support item assignment
2.切片
>>> name = "dick hu" >>> name[1:4] #取1到4之间的字符,包括1,不包括4 'ick' >>> name[1:-1] #取1到-1之间的字符,包括1,不包括-1 'ick hu' >>> name[0:3] 'dick' >>> name[:3] #从头开始取,0可以省略 'dick' >>> name[3:] #从3取到最后一个值 'k hu' >>> name[0::2] #后面的2表示:每隔一个字符就取一个 'dc u' >>> name[::2] #从头开始0可以省略,效果和上一句一样 'dc u'
3.capitalize()
用法:将字符串第一个字母转换为大写,其他都转为小写
name = "my name is Huwei and 22 years old" print(name.capitalize()) #输出 My name is huwei and 22 years old
4.count()
用法:返回str在string里出现的次数
name = "my name is {name} and {year} years old" print(name.count("i")) #输出 1
5.center(width,fillchar)
用法:返回一个指定的宽度width居中的字符串,fillchar为填充字符,默认为空格
name = "my name is huwei and 22 years old" print(name.center(50,"-")) #不够50个字符,两边使用-填充 #输出 ------my name is huwei and 22 years old------
6.encode()
用法:在python 3中encode编码的同时会把string变成bytes类型,decode同时会把bytes变成string类型
name = "my name is huwei and 22 years old" print(name.encode()) #转换成2进制 #输出 b'my name is huwei and 22 years old'
7.endwith(obj)
用法:检查字符串是否以 obj 结束,如果是,返回 True,否则返回 False
name = "my name is huwei and 22 years old" print(name.endswith("me")) #输出 False
8.find(str)
用法:检测 str 是否包含在字符串中 中,如果是,返回开始的索引值,否则返回-1
name = "my name is huwei and 22 years old" print(name.find("name")) #字符串也可以切片 #输出 3
9.format()
用法:函数可以接受不限个参数,位置可以不按顺序
#不设参数 >>>"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序 'hello world' >>> "{0} {1}".format("hello", "world") # 设置指定位置 'hello world' >>> "{1} {0} {1}".format("hello", "world") # 设置指定位置 'world hello world' #也可以设置参数 name = "my name is {name} and {year} years old" print(name.format(name = 'dick',year = 19)) #输出 my name is dick and 19 years old
10.foramt_map()
用法:格式化字符串
name = "my name is {name} and {year} years old" print(name.format_map({'name':'dick','year':19})) #输出 my name is dick and 19 years old
11.isalnum()
用法:如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False
name = "my name is huwei and 22 years old" print(name.isalnum()) #输出 False #字符串有空格 name = "mynameishuweiand22yearsold" print(name.isalnum()) #输出 True #字符串没有空格
12.isspace()
用法:如果 string 中只包含空格,则返回 True,否则返回 False
>>> age = ' age' >>> age.isspace() False #不是空格 >>> age = ' ' >>> age.isspace() True #是空格
13.isalpha()
用法:如果 string 至少有一个字符并且所有字符都是字母则返回 True,否则返回 False
name = "my name is {name} and {year} years old" print(name.isalpha()) #判断只是字符 #输出 False
14.isdigit()
用法:如果 string 只包含数字则返回 True 否则返回 False.
name = "my11" print(name.isdigit()) #判断只是数字 #输出 False
15.isidentifier()
用法:判断是不是一个合法的标识符
name = "my name is {name} and {year} years old" print(name.isidentifier()) #输出 False
16.islower()
用法:如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
name = "my name is {name} and {year} years old" print(name.islower()) #判断是不是全是小写 #输出 True
17.istitle()
用法:如果 string 是标题化的(见 title())则返回 True,否则返回 False
name = "my name is {name} and {year} years old" print(name.istitle()) #判断只是首字母大写 #输出 False
18.isupper()
用法:如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
print("name.isupper:",name.isupper()) #判断是不是全是大写 #输出 False
19.string.join(seq)
用法:以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
print(",".join(['1','2','3','4'])) #把列表变成字符串 #输出 1,2,3,4
20.ljust()
用法:返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
name = "my name is {name} and {year} years old" print(name.ljust(50,"-")) #50个字符,不够50,字符在左边,右边使用-填充 #输出 my name is {name} and {year} years old------------
21.rjust()
用法:返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
name = "my name is huwei and 22 years old" print(name.rjust(50,"-")) #50个字符,不够50,字符在右边,左边使用-填充 #输出 ------------my name is huwei and 22 years old
22.lower()
用法:转换 string 中所有大写字符为小写
name = "MY NAME IS HUWEI AND 22 YEARS OLD" print(name.lower()) #变小写 #输出 my name is huwei and 22 years old
23.upper()
用法:转换 string 中所有小写字符为大写
name = "my name is huwei and 22 years old" print(name.upper()) #变大写 #输出 MY NAME IS HUWEI AND 22 YEARS OLD
24.lstrip()
用法:截掉 string 左边的空格
print('\nhuwei'.lstrip()) #去掉左边的回车、空格 #输出 huwei
25.rstrip()
用法:截掉 string 右边的空格
print('huwei\n'.rstrip()) #去掉右边的回车、空格 #输出 huwei
26.strip()
用法:截掉 string 两边的空格
print('\nhuwei\n'.strip()) #去掉两边的回车、空格 #输出 huwei
27.replace(old,new,max)
用法:把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次
print("Hue wei.replace:",'Hue Wei'.replace('e','E',1)) #输出 HuE Wei
28.split(str)
用法:通过指定分隔符str对字符串进行切片,返回分割后的字符串列表
name = "my name is huwei and 22 years old" print(name.split()) #按照空格将字符隔开并转换成列表 #输出 ['my', 'name', 'is', 'huwei', 'and', '22', 'years', 'old']
29.swapcase()
用法:翻转 string 中的大小写
name = "my nAme iS Huwei and 22 yeARs old" print(name.swapcase()) #输出 MY NaME Is hUWEI AND 22 YEarS OLD
30.title()
用法:返回"标题化"的 string,就是说所有单词都是以大写开始,其余字母均为小写
name = "my name is huwei and 22 years old" print(name.title()) #首写字符变大写 #输出 My Name Is Huwei And 22 Years Old