什么是字符串?

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

创建字符串的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. nasm aat函数 x86

    xxx.asm: %define p1 ebp+8 %define p2 ebp+12 %define p3 ebp+16 section .text global dllmain dllmain: ...

  2. 算法型稳定币USDN有哪些使用功能

    众所周知,稳定币是基于区块链的支付工具,旨在实现最终用户要求的价格稳定性.有些稳定币利用法定货币作为抵押资产.其他则使用一系列其他非法定类型的抵押资产.还有一些尝试使用算法来实现价格稳定性而根本没有抵 ...

  3. 为什么说USDN是一种应用型稳定币?

    USDN是由NGK Global出品的一种新型稳定币系统,里面是涵盖了包括货币供需.Bancor.抵押借贷等在内的一整套算法.该稳定币构想一经提出,便在社区引发了不小的热度. 官方对于USDN的定位是 ...

  4. 「NGK每日快讯」11.18日NGK公链第15期官方快讯

  5. SpringBoot+Vue豆宝社区前后端分离项目手把手实战系列教程01---搭建前端工程

    豆宝社区项目实战教程简介 本项目实战教程配有免费视频教程,配套代码完全开源.手把手从零开始搭建一个目前应用最广泛的Springboot+Vue前后端分离多用户社区项目.本项目难度适中,为便于大家学习, ...

  6. java中的桥接方法

    本文转载自java中什么是bridge method(桥接方法) 导语 在看spring-mvc的源码的时候,看到在解析handler方法时,有关于获取桥接方法代码,不明白什么是桥接方法,经过查找资料 ...

  7. STM32之SPI通信

    SPI总线简介 >SPI总线介绍 SPI接口是Motorola首先提出的全双工三线同步串行外围接口,采用主从模式(Master Slave)架构:支持多slave模式应用,一般仅支持单Maste ...

  8. ElasticSearch 聚合分析

    公号:码农充电站pro 主页:https://codeshellme.github.io ES 中的聚合分析(Aggregations)是对数据的统计分析功能,它的优点是实时性较高,相比于 Hadoo ...

  9. 看完了进程同步与互斥机制,我终于彻底理解了 PV 操作

    尽人事,听天命.博主东南大学硕士在读,热爱健身和篮球,乐于分享技术相关的所见所得,关注公众号 @ 飞天小牛肉,第一时间获取文章更新,成长的路上我们一起进步 本文已收录于 CS-Wiki(Gitee 官 ...

  10. Linux的启动过程及init进程

    Linux下有三个特殊进程: idle进程(pid=0)idle进程其前身是系统创建的第一个进程,0号进程,也唯一一个没有通过fork()或者kernel_thread产生的进程,由系统自动创建,运行 ...