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 不支持单字符。就算是单字符,也作为字符串来使用。
posted @ 2021-04-10 16:51  pure3417  阅读(154)  评论(0编辑  收藏  举报