Python基础(七):字符串的使用(上)
什么是字符串?
字符串该如何定义呢?通俗的说:字符串就是一系列的字符。
创建字符串的3种方式
单引号创建
>>> a = 'I am a student'
>>> print(a)
I am a student
双引号创建
>>> b = "I am a teacher"
>>> print(b)
I am a teacher
三引号创建
三引号又分为单三引号、双三引号,通过连续 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 韩梅梅
常见的5种转义字符
转义字符列举
Python 中常见的转义字符,我这里为大家详细列举出来了。
- \n: 换行符;
- ': 单引号;
- \: 在行尾时,续行符;
- \t: 空四个字符,也称缩进,相当于按一下 Tab 键;
- \n\t: 换行加每行空四格;
\n
:换行符
>>> a = 'i\nlove\nyou'
>>> print(a)
i
love
you
\'
:单引号
>>> 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
\
:在行尾时,续行符
>>> s = 'abcd\
eegf'
>>> print(s)
Abcdeegf
\t
:表示空四个字符,也称缩进,相当于按一下 Tab 键
>>> print("Python")
Python
>>> print("\tPython")
Python
\n\t
:换行加每行空四格
>>> print("\n\tLilei\n\tlove\n\tHanmeimei")
Lilei
love
Hanmeimei
>>> print("\n\tLilei\n\tlove\n\tHanmeimei")
Lilei
love
Hanmeimei
# 注: \t\n 效果和\n 是一样的,不建议使用。
>>> print("\t\nPython")
Python
>>> print("\nPython")
Python
>>> print("\n\tPython")
Python
字符串的索引和切片
关于字符串的索引和切片,大家好好了解一下就行,直接上例子。
>>> 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
字符串拼接的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’ 进行字符串拼接,少用‘+’ 。
字符串比较
注意下面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
字符串驻留机制
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#'
>>> q = 'ab#'
>>> print(id(p),id(q))
51209808 51210368
>>> print(p == q)
True
# p 和 q 不是同一个对象,存储地址相同才是同一个对象。
>>> print(p is q)
False
字符串中需要注意的地方
- 字符串本质:字符序列。
- Python 字符串是不能变的的。因此,我们无法对字符串进行修改。
- Python 不支持单字符。就算是单字符,也作为字符串来使用。