首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

字符串是什么—Python 基础

Photo by adam-jang

Python 中有六种标准数据类型:

String(字符串)

Number(数字)

List(列表)

Tuple(元组)

Sets(集合)

Dictionary(字典)

今天讲一下字符串。

字符串是什么呢?

书本上说,字符串就是放在引号里面的一系列字符。我觉得用人话不严谨的说,就是标点符号和字母文字组成的那些单词、句子,比如:

但记住一定要用引号引起来,不然就是变量名了对吧。

引号只是告诉 Python,引号中间的内容是字符串而已,引号本身并不会真正显示出来,只有引号中的字符会显示出来。

单引号和双引号都可以,但是必须前后匹配,不能开始用单引号,结束用双引号。 为什么单双引号都可以呢?是为了方便很多特殊情况:比如:

上面这句话中有三个单引号,第二个应该被显示出来,但 Python 以为第二个代表字符串结束了,以为第三个单引号代表新的字符串开始,但没找到结束的单引号,所以报错。正确写法是:

第一个和第三个双引号匹配,中间的单引号就会被 Python 认为是正常的字符显示出来了。

字符串是可以合并的比如:

可以用加号,把多个字符串连成一个。注意 hello 的 o 后面有个空格,否则连接的字符串,Hello 和 ZackGuo510之间就没有空格了。 不过据说这种方法很占内存,不建议使用。

转义字符

在需要在字符中使用特殊字符时,Python用反斜杠()转义字符,比如:

\n 代表换行

\加单引号 可以显示单引号,还是刚才那个例子,这样做也行:

\t 横向制表符(也叫进格符),相当于按 tab 键的效果,可以产生空格:

注意,它产生的并不是一个空格,那么用 \t 跟直接按空格键制造空格有什么区别呢?书上没说,我查了好久才找到一个说得清楚的资料,分享一下: http://www.kidscode.cn/archives/2870

原始字符串

有时候,你就是想写一个普通的\,并不想把它当做转义字符用,你可以使用“原始字符串”,方法是在第一个引号前面加上一个 r:

转义字符还有很多,不再列举。

用 index 拿字符中的一部分

index 就是一个位置顺序、索引,比如:

共4个字母,从第1个到第4个依次是z,a,c,k。但是 index 是从0开始数,所以 z 的 index 是0,a 的 index 是1,以此类推。

比如我们只想打印 ac:

1代表开始的 index,包含这一位,3代表结束的 index,不包含这一位,所以[1:3] 就是取 index 是1和2的字符,也就是 ac。

负数可以表示从后往前数,-1代表最后一个字母,但不包含最后一个字母:

只填一个 index 就只拿这个字符:

字符串的方法

方法,也叫函数,是 Python 对数据执行的操作,不同类型的数据,对应有不同的方法。

我用人话翻译翻译,你可以这么想,水果对应的有搅拌机,能把水果变成果汁;纸对应的有粉碎机,把纸变成纸屑。字符串对应的也有很多方法,比如把字符变成大写的等等:

upper() 方法,把字符串变大写:

lower() 方法,把字符串变小写:

title() 方法,把字符串中每个单词变首字母大写:

strip() 方法,删掉字符前后多余的指定字符,不填的话默认删掉空格(大家知道 strip 这个词的意思吧,还真是贴切呢^_^):

find() 方法,查找某字符在不在字符串从start到end的范围中,如果存在的话返回index,不存在返回-1。也可以不指定范围,就全文查找。

join(seq) 把字符插入到要连接的元素序列、字符串、元组、字典中,形成一个新的字符串(如果你现在不知道元组、字典是什么没关系,以后会知道的)

count() 方法,统计字符在字符串中出现的次数

len() 方法,得到字符创长度。这个不是字符串的内建方法,而是全局方法

字符串的方法很多,不一一列举了。

in 和 not in

in查询某字符在不在字符串中

not in

True 和 False 是布尔值,代表对或错、真或假、有或无

格式化字符串

在字符串中插入变量

.format()

f-strings 这种方法是 Python 3.6 之后才有的,我在一个英文博客偶然看到的,感觉简洁很多。但是百度居然搜不到,大家都不用吗?有知道的原因求教。

三引号的作用(单双引号都可以)

1、在三引号中的字符串,可以保留格式,比如直接换行而不比使用 \n

2、作为多行注释

——over——

初学笔记难免有谬误,欢迎您指出,感谢。

——doyoudo is the best——

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180227G0L54700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券