日常编码中,大多数时候我们要对数据进行处理,而这些数据不管是数组、列表、字典,最终都逃不开字符串的处理。
今天,小会就和大家聊一聊字符串。
一、字符串的定义
估计很多人看到这个标题就想关网页了,别这样!不妨往下看看,今天小会用人话给大家解释这些复杂的定义,绝对秒懂。
书本的定义是,字符串是放在引号里面的一系列字符。小会觉得用人话不严谨地说,就是标点符号和字母文字组成的那些单词、句子,比如:
‘hello’
‘My lucky number is 7’
重点就是一定一定一定要用引号引起来,至于是单引号或双引号均可,但是必须要前后匹配,不能开始用单引号,结束用双引号。(引号只是为了告诉Python,中间的内容是字符串而已,引号本身不会显示出来。)
举个例子:
'What's your name?' #这样写是不对的,会报错
上面这句话中有三个单引号,第二个本该显示出来,但 Python 以为第二个引号代表字符串结束了,第三个单引号代表新的字符串开始,但确没有找到结束的单引号,所以报错。正确写法是:
"What's your name?"
第一个和第三个采用双引号匹配,中间的单引号就会被 Python 认为是正常的字符显示出来了。
(这里简单提下,三个单引号或者双引号,主要是用来作为文档注释的。)
同时,字符串是可以合并的,比如:
name = 'Maxiaohui' #这是用变量储存了一段字符串
print('Hello ' + name)
Hello Maxiaohui
可以用加号,把多个字符串连成一个。注意 hello 的 o 后面有个空格,否则连接的字符串,Hello 和 Maxiaohui之间就没有空格了。
二、转义字符
在需要在字符中使用特殊字符时,Python用反斜杠()转义字符,比如:
n 代表换行
name = 'ManXiaonHui'
print(name)
Ma
Xiao
Hui
加单引号 可以显示单引号,还是刚刚那个例子,这样做也是可以的:
print('What's your name?')
What's your name?
t 横向制表符(也叫进格符),相当于按 tab 键的效果,可以产生空格效果(但它产生的并不是一个空格):
name = 'JacktRose'
print(name)
Jack Rose
原始字符串
如果,你只是想写一个普通的,并不想把它当做转义字符用,你可以使用“原始字符串”,方法是在第一个引号前面加上一个 r:
print('C:somename') #这里的 n 正好跟换行符一样,于是悲剧了
C:some
ame
print(r'C:somename') #前面加一个r,就不会把 n 当换行符了
C:somename
转义字符还有很多,就不再一一列举了。
三、用 index 拿字符中的一部分
ndex 就是一个位置顺序、索引,比如:
name = 'Jack'
共4个字母,从第1个到第4个依次是j,a,c,k。但是 index 是从0开始数,所以 j 的 index 是0,a 的 index 是1,以此类推。
比如我们只想打印 ac:
name = 'jackma'
print(name[1:3])
ac
1代表开始的 index,包含这一位,3代表结束的 index,不包含这一位,所以[1:3] 就是取 index 是1和2的字符,也就是 ac。
负数可以表示从后往前数,-1代表最后一个字母,但不包含最后一个字母:
name = 'jackma'
print(name[1:-1])
ackm
只填一个 index 就只拿这个字符:
name = 'jackma'
print(name[2])
c
四、字符串的方法
方法,也叫函数,是 Python 对数据执行的操作,不同类型的数据,对应有不同的方法。
小会用人话翻译一下,电磁炉对应配套的锅,才能煮火锅;水果蔬菜对应配套的榨汁机,才能得到美味健康的鲜榨果汁。字符串对应的也有很多方法,比如把字符变成大写的等等:
upper() 方法,字符串全部由大写组成:
name = 'maxiaohui'
print(name.upper())
MAXIAOHUI
同理:
- lower() 方法,字符串全部由小写组成;
- title() 方法,字符串中每个单词首字母变成大写;
- digit()表示字符串内全部为数字;
- alpha()表示字符串内全部为字符;
- space()表示字符串有一个或多个空格组成;
- alnum()表示字符串内全部为数字和字符;
- count()方法,统计字符在字符串中出现的次数;
字符串的方法还有很多,就不再一一列举了。
五、格式化字符串
Python格式化输出分为两类,那是在pyton2的时代,即 % 和 format。
% 格式化输出:
- 如何在%的格式输出中,输出用来看做标记为的%符号呢? 使用两个百分号(%%)
- %(-)(width) width为设置长度,默认左填充空格,添加-号为右填充
- .width代表字符串截断,保留多少长度的字符串
- type %s字符串 %d十进制整数 %f小数 ...
- 多个参数是,后面的参数需要使用括号包裹起来
'姓名:%-5s 年龄:%4d 爱好: %.8s' % ('码小会',25,'python、Java')
output:
'姓名:码小会 年龄: 25 爱好: python、J'
format格式输出:
format在python3开始官方就表示为替换%的输出方式,之所以还保留着%,主要是为了兼容性考虑...
- 对比%,format使用花括号{}表示变量
- < > ^ 代表了format的对齐方式
name = 'Jack'
age = 18
print('My name is {} and I am {}'.format(name, age))
'My name is Jack and I am 18'
f-string格式输出:
是字符串引号前以f/F开头,并使用{}标注替换位置的使用形式。举个例子:
name = 'Jack'
age = 18
print(f'My name is {name} and I am {age}')
'My name is Jack and I am 18'
-------------------------------------------分界线---------------------------------------
以上就是码小会总结的最基础的字符串相关知识点分析,如果觉得感兴趣想学习Python,我们还有相关Python课程推荐哦,可以了解一下:
嘿有趣之Python零基础快速入门 - 代码课堂www.daimaketang.com最后,更多精彩内容,欢迎关注【码小会】账号,期待与你们一起学习!