Python培训
美国上市Python培训机构

400-111-8989

热门课程

字符串是什么—Python 基础

  • 发布:ZackGuo510
  • 来源:ZackGuo510
  • 时间:2018-03-01 15:03

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

 

  • String(字符串)

  • Number(数字) 

  • List(列表) 

  • Tuple(元组) 

  • Sets(集合) 

  • Dictionary(字典)

今天讲一下字符串。


字符串是什么呢? 


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

  1. ‘hello’

  2. My favourite number is 23

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

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

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

  1. 'What's your name?' #这样写是不对的,会报错

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

  1. "What's your name?"

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


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

  1. name = 'ZackGuo510' #这是用变量储存了一段字符串

  2. print('Hello ' + name)

  3. Hello ZackGuo510

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


转义字符 

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

\n 代表换行

  1. name = 'Zack\nGUO\n510'

  2. print(name)

  3. Zack

  4. GUO

  5. 510


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

  1. print('What\'s your name?')

  2. What's your name?


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

  1. name = 'Jack\tRose'

  2. print(name)

  3. Jack    Rose

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


原始字符串 

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

  1. print('C:\some\name')  #这里的 \n 正好跟换行符一样,于是悲剧了

  2. C:\some

  3. ame

  4. print(r'C:\some\name')  #前面加一个r,就不会把 \n 当换行符了

  5. C:\some\name

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


用 index 拿字符中的一部分

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

  1. name = 'zack'

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

比如我们只想打印 ac:

  1. name = 'zackguo'

  2. print(name[1:3])

  3. ac

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


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

  1. name = 'zackguo'

  2. print(name[1:-1])

  3. ackgu


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

  1. name = 'zackguo'

  2. print(name[2])

  3. c


字符串的方法 

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

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

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

  1. name = 'jack'

  2. print(name.upper())

  3. JACK


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

  1. name = 'JACK'

  2. print(name.lower())

  3. jack


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

  1. name = 'apple pie'

  2. print(name.title())

  3. Apple Pie


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

  1. name = '  jack '

  2. print(name.strip())

  3. jack


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

  1. str1="Hello world!"

  2. >>> str1.find('llo')

  3. 2"Hello world!"

  4. >>> str1.find('llo',3,8)

  5. -1


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

  1. list1 = ['a', 'b', 'c']

  2. new_list = "-".join(list1)

  3. print(new_list)

  4. a-b-c

  5. string1 = 'zack'

  6. new_string = ":".join(string1)

  7. print(new_string)

  8. z:a:c:k


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

  1. a ='hello world'

  2. print(a.count('l'))

  3. 3


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

  1. name = 'za ck'

  2. print(len(name))

  3. 5 #空格也是字符

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


in 和 not in

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

  1. 'z' in 'zack'

  2. True

not in

  1. 'w' not in 'word'

  2. False

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


格式化字符串 

在字符串中插入变量

.format()

  1. name = 'Jack'

  2. age = 18

  3. print('My name is {} and I am {}'.format(name, age))

  4. 'My name is Jack and I am 18'


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

  1. name = 'Jack'

  2. age = 18

  3. print(f'My name is {name} and I am {age}')

  4. 'My name is Jack and I am 18'


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

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

2、作为多行注释

  1. '''

  2. 大家好,我是注释

  3. 我是给人看的

  4. 不是给机器执行的

  5. '''

  6. names = """jack

  7. rose

  8. tom

  9. """

  10. print(names)

  11. jack

  12.  rose

  13. tom

预约申请免费试听课

怕钱不够?可就业挣钱后再付学费!    怕学不会?助教全程陪读,随时解惑!     担心就业?一地学习,可全国推荐就业!

上一篇:Python的模块与函数
下一篇:Python 中的数字—Python 基础

Python培训线上和线下的区别

不懂pandas,你怎么Python语言进行机器编程​?

了解Python语言的2D绘图库​Matplotlib,才能绘制出专业图像!

Python培训干货分享|不可不知的Python 爬虫工具

选择城市和中心
贵州省

广西省

海南省