什么是字符串?

字符串该如何定义呢?通俗的说:字符串就是一系列的字符。

创建字符串的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 不支持单字符。就算是单字符,也作为字符串来使用。

Python基础(七):字符串的使用(上)的更多相关文章

  1. python基础之字符串讲解(上)

    字符串 字符串是 Python 中最常用的数据类型.我们可以使用引号('或者")来创建字符串. 创建字符串很简单,只要为变量分配一个值即可.For example: 为str输入一个变量,p ...

  2. Python基础数据类型-字符串(string)

    Python基础数据类型-字符串(string) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版 ...

  3. Python基础(二) —— 字符串、列表、字典等常用操作

    一.作用域 对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用. 二.三元运算 result = 值1 if 条件 else 值2 如果条件为真:result = 值1如果条件为 ...

  4. Python基础__字符串拼接、格式化输出与复制

    上一节介绍了序列的一些基本操作类型,这一节针对字符串的拼接.格式化输出以及复制的等做做详细介绍.一. 字符串的拼接 a = 'I', b = 'love', c = 'Python'. 我们的目的是: ...

  5. Python基础二字符串和变量

    了解一下Python中的字符串和变量,和Java,c还是有点区别的,别的不多说,上今天学习的代码 Python中没有自增自减这一项,在转义字符那一块,\n,\r\n都是表示回车,但是对于不同的操作系统 ...

  6. python基础、字符串和if条件语句,while循环,跳出循环、结束循环

    一:Python基础 1.文件后缀名: .py 2.Python2中读中文要在文件头写: -*-coding:utf8-*- 3.input用法      n为变量,代指某一变化的值 n = inpu ...

  7. Python基础之字符串和编码

    字符串和编码 字符串也是一种数据类型,但是字符串比较特殊的是还有个编码问题. 因为计算机自能处理数字,如果徐娅处理文本,就必须先把文本转换为数字才能处理,最早的计算机子设计时候采用8个比特(bit)作 ...

  8. python基础类型—字符串

    字符串str 用引号引起开的就是字符串(单引号,双引号,多引号) 1.字符串的索引与切片. 索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推. a = 'ABCDEFGHIJK' p ...

  9. python基础七

    subprocess subprocess是专门用来替代os.system;os.spawn更加的先进. 但是subprocess.run()是在python3.5之后才出现的 实例 >> ...

  10. python基础知识——字符串详解

    大多数人学习的第一门编程语言是C/C++,个人觉得C/C++也许是小白入门的最合适的语言,但是必须承认C/C++确实有的地方难以理解,初学者如果没有正确理解,就可能会在使用指针等变量时候变得越来越困惑 ...

随机推荐

  1. Chrome 80 & SameSite & cookie

    Chrome 80 & SameSite & cookie chrome://settings/help https://developers.google.com/web/updat ...

  2. Error: Actions must be plain objects. Use custom middleware for async actions.

    原本代码: import { SREACH_FOCUS, SREACH_BLUR } from "./actionType" export const searchFocus = ...

  3. 关于MVCC,我之前写错了,这次我改好了!

    关于MVCC的原理,在<我想进大厂>之mysql夺命连环13问写过一次,但是当时写的其实并不准确,这个理解可以应付面试,帮助快速理解,但是他的真正实现原理我想再次拿出来说一说. 简单理解版 ...

  4. Redis与Spring Data Redis

    1.Redis概述 1.1介绍 官网:https://redis.io/ Redis是一个开源的使用ANSIC语言编写.支持网络.可基于内存 亦可持久化的日志型.Key-Value型的高性能数据库. ...

  5. .Net -- NLog日志框架配置与使用

    NLog是适用于各种.NET平台(包括.NET标准)的灵活,免费的日志记录平台,NLog可将日志写入多个目标,比如Database.File.Console.Mail.下面介绍下NLog的基本使用方法 ...

  6. hexo 报错 use_date_for_updated is deprecated...

    hexo 报错 use_date_for_updated is deprecated... WARN Deprecated config detected: "use_date_for_up ...

  7. 后端程序员之路 17、LaTeX公式

    之前的文章写了两个公式:d(x,y)=\sqrt{\sum_{i=1}^{n}(x_i-y_i)^2} H_x=-\sum_{i=1}^{n}p(x_i)\log_{2}{p(x_i)} LaTex ...

  8. 后端程序员之路 1、linux、centos

    CentOS.Ubuntu.Debian三个linux比较异同 - 记事本 - 博客频道 - CSDN.NEThttp://blog.csdn.net/educast/article/details/ ...

  9. 如何理解JavaScript中的函数

    转: 如何理解JavaScript中的函数 JS中的函数简介 JS中的函数是一种通过调用来完成具体业务的一段代码块.最核心的目的是将可重复执行的操作进行封装,然后供调用方无限制的调用. JS中的函数的 ...

  10. 单细胞分析实录(9): 展示marker基因的4种图形(二)

    在上一篇中,我已经讲解了展示marker基因的前两种图形,分别是tsne/umap图.热图,感兴趣的读者可以回顾一下.这一节我们继续学习堆叠小提琴图和气泡图. 3. 堆叠小提琴图展示marker基因 ...