字符串及其操作方法

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:括号不填默认删除空格,括号里填什么字符就前后删除什么字符,可多填,中间不用逗号分开。不能删字符串中间的字符,只能删两边的 

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()) #字符串只由数字组成

  输出结果为:

True
False
False

16、计算一个元素在字符串里出现了多少次(计数):count()

  ps:与“len()”一样可用于列表

s = "123666aaaaad"
ls = s.count("6")
print(ls)

  输出结果为:

3

  

 

 

 

 

 

 

 

 

 

 

猜你喜欢

转载自www.cnblogs.com/aries-zhang/p/10328049.html