Python系列:字符串的使用(1)

举报
数据分析与统计学之美 发表于 2021/09/27 21:22:48 2021/09/27
1.7k+ 0 0
【摘要】 python系列第五课

今天就带着大家开始我们——Python学习的第二课,Python数据类型之字符串的介绍1。
在这里插入图片描述
字符串是我们在以后的编程生涯中,用到概率最大的数据类型。灵活运用它对于提高代码效率很有必要,因此基础必须打牢。

1. 什么是字符串?

哈哈,想写一个好的定义怎么就这么难?通俗的说:字符串就是一系列的字符。

2. 创建字符串的3种方式

2.1 单引号创建

>>> a = 'I am a student'
>>> print(a)
I am a student

2.2 双引号创建

>>> b = "I am a teacher"
>>> print(b)
I am a teacher

2.3 三引号创建

三引号又分为单三引号、双三引号,通过连续 3 个单引号或者 3 个单引号,可以帮助我们创建多行字符串。

>>> a = '''
I am a student
My name is 黄伟
I am a teacher
My name is 陈丽
'''
>>> print(a)
I am a student
My name is 黄伟
I am a teacher
My name is 陈丽

3. 常见的5种转义字符

3.1 转义字符列举

Python 中常见的转义字符,我这里为大家详细列举出来了。

  • ’\n’: 换行符;
  • ’’’: 单引号;
  • ’’: 在行尾时,续行符;
  • ’\t’: 空四个字符,也称缩进,相当于按一下 Tab 键;
  • ’\n\t’: 换行加每行空四格;

3.2 ‘\n’: 换行符

>>> a = 'i\nlove\nyou'
>>> print(a)
i
love
you

3.3 ‘’’: 单引号

>>> s = 'Yes,he doesn't'
SyntaxError: invalid syntax

>>> s = 'Yes,he doesn\'t'
>>> print(s,type(s),len(s))
Yes,he doesn't <class 'str'> 14

3.4 '\ ': 在行尾时,续行符

>>> s = 'abcd\
eegf'
>>> print(s)
Abcdeegf

3.5 ‘\t’:表示空四个字符,也称缩进,相当于按一下 Tab 键

>>> print("Python")
Python
>>> print("\tPython")
Python

3.6 ‘\n\t’: 换行加每行空四格

>>> print("\n\tHuangwei\n\tlove\n\tChenli")
Huangwei
love
Chenli
>>> print("\tHuangwei\n\tlove\n\tChenli")
Huangwei
love
Chenli
#注: \t\n 效果和\n 是一样的,不建议使用。
>>> print("\t\nPython")
Python
>>> print("\nPython")
Python
>>> print("\n\tPython")
Python

4. 字符串的索引和切片

关于字符串的索引和切片,大家好好了解一下就行,直接上例子。

>>> x = 'python'
>>> print(x[0],x[5])
p n
>>> print(x[-6],x[-1])
p n
>>> print(x[1:4])
yth
>>> print(x[-5:-2])
yth
>>> x[::-1]
'nohtyp'
>>> x[::-2]
'nhy

5. 字符串分割:split()

split ()可以基于指定分隔符,将字符串分割成为多个字符串, 然后存到一个“ 列表” 中(!!!!很关键,这个)。如果不指定分隔符,将默认使用空白字符(空格/换行符/制表符)。

>>> a = 'to be or not to be'
>>> print(a.split())
['to', 'be', 'or', 'not', 'to', 'be']
>>> c = 'to be or not to be'
>>> print(c.split('be'))
['to ', ' or not to ', '']

6. 字符串拼接的2种方式

6.1 join()方法

>>> a = ['陈','丽','美','丽']
>>> b = ''.join(a)
>>> print(b)
陈丽美丽
>>> c = '\n'.join(a)
>>> print(c)
陈 
丽 
美 
丽

6.2 “+” 号拼接法

>>> print('str' + 'ing')
string
>>> str = ''
>>> for i in range(5):
		str += '陈丽' # 相当于 str = str + '陈丽'
>>> print(str)
陈丽陈丽陈丽陈丽陈丽

6.3 join 方法和“ +” 字符串拼接性能比较

import time
time01 = time.time()
st = ''
for i in range(1000000):
	st += '陈丽'
time02 = time.time()18
print('用时: ' + str(time02-time01))
用时: 1.2170696258544922

time03 = time.time()
a = []
#随着迭代次数增大。我们发现:使用 join 内置函数,拼接字符串所用时间少。
for i in range(1000000):
	a.append('陈丽')
li = ''.join(a)
time04 = time.time()
print('用时: ' + str(time04-time03))
用时: 0.24601387977600098

综上所述:进行字符串拼接,推荐使用‘join’ 进行字符串拼接,少用‘+’ 。

7. 字符串比较

注意下面3对符号。

  • ==、 !=:比较字符串 a 和字符串 b, 是否含有相同的字符。
  • is、 not is:比较两个对象, 是否是同一个对象。
  • in、 not in:判断某个字符, 是否存在于某个字符串中。
>>> str1 = 'abcdefgh'
>>> print('a' in str1)
True
>>> print('ab' in str1)
True
>>> str2 = "123"
>>> str3 = "123"
>>> str2 == str3
True
>>> str2 is str3
True
>>> id(str2)
1995935692312
>>> id(str3)
1995935692312

8. 字符串驻留机制

Python 支持字符串驻留机制,对于符合标识符的字符串(注意:仅仅包含下划线_、字母、数字),才会启用字符串驻留机制。此时,保存一份相同且不可变的字符串, 不同的值被存在驻留池中,因此,他们还是同一个东西。

>>> m = '12_abv'
>>> n = '12_abv'
>>> print(id(m),id(n))
51210312 51210312
>>> print(m == n)
True
# m 和 n 是同一个对象,存储地址相同才是同一个对象。
>>> print(m is n)
True
-----------------------------------------------------------------
>>> p = 'ab#'19
>>> q = 'ab#'
>>> print(id(p),id(q))
51209808 51210368
>>> print(p == q)
True
# p 和 q 不是同一个对象,存储地址相同才是同一个对象。
>>> print(p is q)
False

9. 字符串中需要注意的地方

  • 字符串本质:字符序列。
  • Python 字符串是不能变的的。因此,我们无法对字符串进行修改。
  • Python 不支持单字符。就算是单字符,也作为字符串来使用。
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。