首页 > 代码库 > 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 字符串的基本用法