2018-10-06 007 字符串 A
字符串是一串字符。
上面那句明显是废话,所以划掉;
用若干个引号括起来的内容被称为字符串,若干可以取1~4不等,其中三引号或四引号包含的内容可以跨行。
这一节先简单说字符串的操作,下一节再来说字符串的方法;
字符串索引
字符串的索引就是从零开始对字符串各个字符的编号,于是,可以用它的编号直接访问字符串中的单个字符,或者通过下面的切片方法访问子串;
一个string的基本方法:len(str)用来求字符串的长度,具体来说就是该字符串包括的字符的个数。
字符串切片
字符串切片是本菜鸡第一次遇到的一个小东西,大意就是可以通过Str[m:n]的表示方法将字符串Str编号从m到n-1的部分“切”出来形成一个新的字符串,对于切片的具体操作,我们不妨SMtC:
Str = "hello world"
print( len(Str) ) #Str长度的测量;
print( Str[0] )
print( Str [ : ] ) #print(Str)的全切片;
print( Str[0 : len(Str) ] ) #全切片的另一种方法;
print( Str[3: ] )
print( Str[0 : 4] )
print( Str[ : -3] ) #切片的一种高级用法(负数)
print( Str[0 : 15] ) #违规切片
输出结果是:
11 #显然,空格也被视为一个字符;
h #显然,字符串的编号从0开始;
hello world #整个切片;
hello world #整个切片的另一种方法;
lo world #从索引为0到索引为len(Str)-1的部分;
hell #从索引为0到索引为4-1的部分;
hello wo #去掉后三个,负数表示去掉若干;
hello world #违规切片如果是简单的超出,貌似也没问题;
字符串连接
两个相邻的字符串如果中间只有空格,会自动相连:
”hello””world” = “helloworld”
两个字符串相连接直接用+连起来就好了;
字符串重复
这一点在前面介绍过,Str * n 就是n个Str的重复;
字符串比较
字符串比较也是普通的用<>来比较,但比较的原则应该注意一下: 它把两个字符串按照索引从小到大一个字符一个字符按照A表依次比较,若其中一个被比较完毕还没有分出胜负,先完的被认为较小,举个例子:
if ( "ABD" > "ABCD" ) :
print ("Good!")
if ("ABCD" > "ABC" ) :
print ("SO Good")
结果如下:
Good!
SO Good
转义字符
转义字符是镶嵌在字符串中起到特殊作用的字符,其不可被打印,虽然是由若干的字符捏在一起组成,但却被认为是一个字符;
所有转义字符的意义如下:
字符 | 含义 | 字符 | 含义 |
---|---|---|---|
\’ | 单引号 | \f | 换页(FF) |
\” | 双引号 | \n | 换行(LF) |
\ | 反斜杠 | \r | 回车(CR) |
\a | 响铃(BSL) | \t | 水平制表符(HT) |
\b | 退格(BS) | \v | 垂直制表符(VT) |
看得出,这些转义字符中,很多都是与输出格式有关系,还有的直接控制硬件(响铃之类),其实在C++中也有这样的设定,但很多时候本菜鸡都直接分成好几个字符串,然后排版罢了……
“方法”与“操作”
按照本菜鸡的理解,操作是通过语句对对象作出改动,是由外向内的动作,而方法则是通过这个对象本身内置的函数来进行操作,细品一品颇有种由内而外的意思;所以以字符串为例,方法的使用一般格式是Str.func(),具有浓浓的调用函数的意思,而操作就不然。