首页 > 代码库 > No.2 字符串的基本用法

No.2 字符串的基本用法

之前讲到变量的时候,有些变量被进行了不同形式的赋值。你可以在IDE中进行下面的编写:

num = 1
string = 1
print(num + string)

就会得到如下的结果

Traceback (most recent call last):
  File "F:/PycharmPrograme/StringDemo.py", line 3, in <module>
    print(num + string)
TypeError: unsupported operand type(s) for +: ‘int‘ and ‘str‘

  原因是字符串(string)只是Python中的一种数据类型,另一种数据类型称之为整数(integer),而不同的数量类型是不能进行合并的,但是可以通过转换的方法……

如果不知道变量是什么数据类型,可以通过type()函数来查看类型,在IDE输入print(type(word)。

另外,由于中文注释会导致报错,所以一定要在文件开头加一句注释——“#coding:utf-8”,也可以在设置里面找到“File Encoding”设置为UTF-8、

 

接下来,我们来转化数据类型,以便于使得数据可以根据我们期望的方式进行计算。比如讲string类型转化为int类型,用于计算。

num = 1
string =1
print(1 +int(string))

打印的结果:2

从上面的例子可以看出,将不同的类型的数据转换为同一类型后,就可以进行合并了。

 

既然字符串可以相加,那么字符串之间也可以相乘,得到的结果便是字符串重复的次数

words = word*3
print(words)

结果:wordwordword

 

word =a loooooong word‘#16个字符
num =12
string = bang
total = string *(len(word)-num)
print(total)

结果:bangbangbangbang

其中len(word)-num等价于‘bang’*4

 

字符串的分片与索

字符串可以通过string[x]的方式进行索引、分片,也就是加入一个[]。字符串的分片(slice)实际上可以看做是从字符串中找出来你要截取的内容,复制出来一小段你要的长度,存储在另一个地方,而不会字符串这个源文件改动。分片获得的每个字符串可以看做是元字符串的一个副本。

name = My Name is Mike

>>>print(name[0])
M
>>>print(namep[-4])
M
>>>print(name[11:14])
Mik
#from 11th to 14th,14th one is excluded
>>>print(name[11:15])
Mike
#from 11th to 15th,15th one is excluded

>>>print(name[5:])
me is Mike
>>>print(name[:5])
My Na
M y   N a m e   i s   M i k e  
0 1 2 3 4 5 6 7 8 9 10 11 12

13

14 15

两边分别代表着字符串的分割从哪里开始,并到哪里 结束。

以 name[ 11: 14] 为例, 截取的编号从第 11个字符 开始,到位置为14但不包含第14个字符结束。

而像 name[ 5:]这样的写法代表着从编号为5的字符到结束的字符串分片。

相反,name[: 5] 则代表 着从编号为0的字符开始到编号为5但不包含第5个字符的字符分片。

可能容易搞混,可以想象成第一种是从5到最后面,程序员懒得数有多少个所以就省略地写。

第二种是从最前面到5,同样是懒得写0,所以就写成了[:5]。

 

字符串的方法

Python是面向对象进行编程的语言,而对象拥有各种功能、特性,专业术语称之为——方法(Methon)。为了方便理解,我们使用Java中常用的例子——汽车

汽车有着许多的特性和功能,汽车就被视为对象,其中开车是一个重要的功能,用Python表述:car.drive()

phone_number = 1386- 666- 0006
hiding_number = phone_number.replace( phone_number[: 9],* * 9)
print(hiding_number)

结果:*********- 0006

 

字符串格式化符

____a word she can get what she ____ for. 
A. With B. came

  这样的填空题,当字符串中有多个这样的“空”需要填写的时候,我们可以用.format()进行批处理,它的基本使用方法有如下几种:

print({} a  word she can get what she {} for..format(with,came))

print({preposition} a  word she can get what she {verb} for..format(preposition=with,verb=came))

print({0} a  word she can get what she {1} for..format(with,came))

 

No.2 字符串的基本用法