str:字符串,用引号引起来的都是字符串。用于储存少量数据进行操作。
其他数据类型转换为字符串类型的方法:str()。
字符串的索引与切片。
索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推。
a = 'ABCDEFGHIJK'print(a[0]) #索引要用中括号括起来
输出结果为:
A
切片就是通过索引(索引首:索引尾:步长)截取字符串的一段,形成新的字符串,原字符串不作任何改变(原则就是顾头不顾尾,意思就是从设定的头开始到设定的尾的前一位数据)。
a = 'ABCDEFGHIJK'print(a[0:3])print(a[2:5])print(a[0:]) #默认到最后print(a[0:-1]) # -1 是列表中最后一个元素的索引,但是要满足顾头不顾尾的原则,所以取不到K元素print(a[0:5:2]) #加步长,步长指在设定的切片首位之间,每间隔步长-1,取一个数据。这段代码意为在ABCDE中每隔一个数据取一个数据,所以输出位ACE。print(a[5:0:-2]) #反向加步长;意为从F开始到A之间,每隔一个数据,取一个数据,所以输出的数据是FDB
ps:
若要取全部值可用【:】冒号两边都为空,若【0:0】输出为空,不会报错
要取的数据之间的步长必须相等
★★★字符串的常用方法:★★★
1、首字母大写:capitalize()
s = "aires" s1 = s.capitalize() print(s1)
输出结果为:
Aires
2、字符串所有字母大写:upper()
s = "aires"s2 = s.upper()print(s2)
输出结果为:
AIRES
3、字符串所有字母小写:lower()
s = "AIRES"s3 = s.lower()print(s3)
输出结果为:
aires
4、字符串中字母大小写反转:swapcase()
(1)大写转小写
s = "AIRES"s4 = s.swapcase()print(s4)
输出结果为:
aires
(2)小写转大写
a = "aires"s41 = a.swapcase()print(s41)
输出结果为:
AIRES
5、在单词中间隔着空格、特殊字符或数字的情况下首字母大写:title()
s = "air;es asd-fg fj2fj"s5 = s.title()print(s5) #只要字符串中有除了英文以外的字符,那么那个字符后面的那一个英文字母转换为大写。
输出结果为:
Air;Es Asd-Fg Fj2Fj
6、字符串内容居中,字符串总长度,空白处填充其他字符:center() (长度,填充字符)
s = "Aires"s6 = s.center(40,"-") #(长度,填充)若使用此方法,长度必须填,若想保持不变可以填0,不可为空。填充符可不填,默认为空格。print(s6)
输出结果为:
-----------------Aires------------------
7、位数补齐(不常用):exoandtabs()
s = "Air\tes" # \t
s = "Air\tes" #\t==Tab键 若字符串中有“\t”键 那便与它前面的字符加空格补齐八位,若前面的字符已够八位那便补齐16位,然后是24位...32位s7 = s.expandtabs()print(s7)
输出结果为:
Air es
8、★公共方法(字符串,元组,列表,字典等皆可用的方法)len() (变量名)
s = "Aires"s8 = len(s) print(s8)
输出结果为:
5 #用于字符串输出有多少字符,用于元组输出有多少元素,用于列表输出有多少元素,用于字典输出有多少键值对;
9、判断一组字符串的开头或结尾(可切片):
开头:startswith()
s = "Aires"s9 = s.startswith("Air",0,4) #(需要判定的开头,设定切片首,设定切片尾)(顾头不顾尾)print(s9)
输出结果为:
True # 返回的值为bool(布尔值)
结尾:endswith()
s = "Aires"s91 = s.endswith("re",0,4) #(需要判定的结尾,设定切片首,设定切片尾)(顾头不顾尾)print(s91)
输出结果为:
True
10、寻找字符串中是否有某个字符:find() 通过字符找索引 index()与find()差不多,但找不到会报错,所以一般选择用find()
s = "Aires"s10 = s.find("re",0,4) #用find通过元素(字符)寻找索引,找到的情况下返回第一个元素(字符)的索引,找不到返回-1.print(s10)
输出结果为:
2
11、删除字符串前后的空格或字符:strip();
删除左侧的空格或字符:lstrip();
删除右侧的空格或字符:rstrip();
从左删lstrip() 意为只删左面的,右面的不懂,反之,从右删rstrip() 意为只删右边的,左边的不动。
ps:括号不填默认删除空格或换行符(\n),括号里填什么字符就前后删除什么字符,可多填,中间不用逗号分开。不能删字符串中间的字符,只能删两边的
s = "**Ai*res**"s11 = s.strip("*A") #括号不填默认删除空格,括号里填什么字符就前后删除什么字符,可多填,中间不用逗号分开。不能删字符串中间的字符,只能删两边的print(s11)
输出结果为:
i*res
12、★分割 字符串转换为列表:split()
s = "Ai;re;s"s12 = s.split(";") 括号中不写默认为以空格分割字符串为列表。括号里填什么符号就以什么符号分割字符串为列表。print(s12)
输出结果为:
['Ai', 're', 's'] #结果为列表
13、格式化输出的三种玩法:format(尽量用这种格式化输出方法)
s13='我叫{},我{}岁了,我的爱好是{}'.format('aires',18,'play computergame') #顺序输入s131='我叫{0},我{1}岁了,我的爱好是{2}'.format('aires',18,'play computergame') #索引s132='我叫{name},我{age}岁了,我的爱好是{hobby}'.format(hobby='play computergame',name='aires',age=18) #字典(键值对)print(s13)print(s131)print(s132)
输出结果为:
我叫aires,我18岁了,我的爱好是play computergame我叫aires,我18岁了,我的爱好是play computergame我叫aires,我18岁了,我的爱好是play computergame
14、替换:repalce()(需要替换的字符,新的字符,替换次数)替换次数为空默认全部替换
s = "123666aaaaad"ls = s.replace("a","q")print(ls)
输出结果为:
123666qqqqqd
15、判断字符串是否由(数字,字母,数字或字母)组成:
数字:isdigit() ;
字母:isalpha() ;
数字或字母:isalnum()
只返回两个结果(布尔值)(True,False)
ps:括号里不写参数
name = "aires132546"print(name.isalnum()) #字符串由字母或数字组成print(name.isalpha()) #字符串只由字母组成print(name.isdigit()) #字符串只由数字组成
输出结果为:
TrueFalseFalse
16、★计算一个元素在字符串里出现了多少次(计数):count()
ps:与“len()”一样可用于列表
s = "123666aaaaad"ls = s.count("6")print(ls)
输出结果为:
3