百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

Python 数据类型 - 字符串 python的字符串类型

bigegpt 2024-10-22 09:56 3 浏览


Python 数据类型 - 字符串

我们将在本节中介绍 Python 的字符串数据类型。

字符串是一系列字符,由计算机中的二进制数据表示。在 Python 中,字符串是 unicode 字符的集合。

Info

Python 字符串是不可变数据类型。

创建字符串

可以使用单引号或双引号创建字符串,也可以使用三引号创建多行字符串。

x = "String of characters"
x = """Multiline
string"""

访问字符串元素

切片操作符 [] 用来访问字符串中的字符,索引是跟 Python 其他的数据类型一样是从 0 开始的。

>>> x = 'Python Programming'
>>> print('x[0] =', x[0])
'P'
>>> print('x[4:15] =', x[4:15])
'on Programm'
>>> x[4] = 'l'
TypeError: 'str' object does not support item assignment

Warning

索引必须是整型数字,否则就会有 TypeError报错。

负索引

你可以通过负索引来访问字符串中的字符,比如 -1 就是指向最后一个字符,类似的, -2指向倒数第二个字符。

>>> s = "Python"
>>> print(s[-1])
'n'
>>> print(s[-2])
'o'
>>> print(s[-3])
'h'

删除字符串中的字符

由于字符串是不可变的,因此无法删除字符串中的字符。但是你可以为同一变量指定一个新字符串。例如,

>>> s = 'Python'
>>> s = 'Program'
>>> s
'Program'

整个字符串可以用 del 关键字来删除,

>>> del s

Python 字符串操作

连接两个或多个字符串

你可以通过来 + 号连接其两个或多个字符串。

>>> s1 = 'Python '
>>> s2 = 'Programming'
>>> print(s1 + s2)
'Python Programming'

如果你把两个字符串写在一起,它们会跟用 +一样,互相连接起来。

>>> print('Python ' 'Programming')
'Python Programming'

括号也可以用来连接在多行内的不同的字符串,这个在需要分叉长字符串(比如文件路径)的时候非常实用。

>>> s = ('Python '
     'Programming')
>>> s
'Pyhton Programming'

遍历字符串

可以通过 for 循环来遍历整个字符串,

s = 'Python'
for i in s:
    print(i)

P
y
t
h
o
n

字符串成员检查

通过 in 关键字可以来检查某个字符或者字符串是否存在于该字符串中。

>>> s = 'Python'
>>> print('a' in s)
False
>>> print('Py' in s)
True

适用于字符串的内置函数

应用于其他序列数据类型的函数也可适用于字符串。常用的函数比如 len() 来查找字符串中的字符数, enumerate() 则返回一个包含索引的对象和字符串中元素的值作为一对数据的数据对象。

Python 字符串格式化

转义

你可以通过 string-escape 来转义某些特殊的字符,这些特殊字符在 Python 中有特别的含义。比如,如果你想输出

James asked, "Do you know Andrew's place?"

你在这里既不能用单引号,也不能用双引号,因为字符串中含有了这两种引号。如果你试着把这段文字放在单引号或双引号内,你会得到 SyntaxError 错误。

>>> print("James asked, "Do you know Andrew's place?"")
SyntaxError: invalid syntax
>>> print('James asked, "Do you know Andrew's place?"')	  
SyntaxError: invalid syntax

解决方法就是要么你用三个单引号 ''' ,要么你就用转义方法。在 Python 中,转义是以反斜杠 \ 来开始的, \ 用来给解释器提示这里有特殊的处理。

#using triple quotation marks
print('''James asked, "Do you know Andrew's place?"''')

#escaping single quotes
print('James asked, "Do you know Andrew\'s place?"')

#escaping double quotes
print("James asked, \"Do you know Andrew's place?\"")

下表当中列出了 Python 当中的转义字符。

Escape sequence

Description

\\

反斜杠

\'

单引号

\"

双引号

\a

ASCII 声音警示

\b

后退键

\n

新建行

\r

回车

\t

水平制表符

\v

竖直制表符

\ooo

八进制符 ooo

\xHH

十六进制符 HH

>>> print("C:\\User\\Python36-32\\Lib")
C:\User\Python36-32\Lib
    
>>> print("First Line\nSecond Line")
First Line
Second Line

用原始字符串r来省略转义

你可以在字符串前加 r 或者 R 来把字符串变成原始字符串,这样就省略了转义字符。

比如下面的例子,

#without r
>>> print("C:\\User\\Python36-32\\Lib")
C:\User\Python36-32\Lib

#with r  
>>> print(r"C:\\User\\Python36-32\\Lib")
C:\\User\\Python36-32\\Lib

字符串format()方法

format() 方法是用来对字符串进行格式化的一把利器,在格式化的字符串中,占位符 {}将会被 format() 方法中的字符串来替代。

你可以通过位置或者关键字参数来制定替代的顺序。

#default placeholder
>>> s1 = "{}, {} and {}".format('Bread', 'Butter', 'Chocolate')
>>> print(s1)
'Bread, Butter and Chocolate'

#positional arguments
>>> s2 = "{1}, {2} and {0}".format('Bread', 'Butter', 'Chocolate')	  
>>> print(s2)
'Butter, Chocolate and Bread'

#keyword arguments
>>> s3 = "{a}, {x} and {c}".format(x = 'Bread', c = 'Butter', a = 'Chocolate')	  
>>> print(s3)
'Chocolate, Bread and Butter'



相关推荐

Docker篇(二):Docker实战,命令解析

大家好,我是杰哥上周我们通过几个问题,让大家对于Docker有了一个全局的认识。然而,说跟练往往是两个概念。从学习的角度来说,理论知识的学习,往往只是第一步,只有经过实战,才能真正掌握一门技术所以,本...

docker学习笔记——安装和基本操作

今天学习了docker的基本知识,记录一下docker的安装步骤和基本命令(以CentOS7.x为例)一、安装docker的步骤:1.yuminstall-yyum-utils2.yum-con...

不可错过的Docker完整笔记(dockerhib)

简介一、Docker简介Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,...

扔掉运营商的 IPTV 机顶盒,全屋全设备畅看 IPTV!

其实现在看电视节目的需求确实大大降低了,折腾也只是为了单纯的让它实现,享受这个过程带来的快乐而已,哈哈!预期构想家里所有设备直接接入网络随时接收并播放IPTV直播(电信点播的节目不是太多,但好在非常稳...

第五节 Docker 入门实践:从 Hello World 到容器操作

一、Docker容器基础运行(一)单次命令执行通过dockerrun命令可以直接在容器中执行指定命令,这是体验Docker最快捷的方式:#在ubuntu:15.10容器中执行ech...

替代Docker build的Buildah简单介绍

Buildah是用于通过较低级别的coreutils接口构建OCI兼容镜像的工具。与Podman相似,Buildah不依赖于Docker或CRI-O之类的守护程序,并且不需要root特权。Builda...

Docker 命令大全(docker命令大全记录表)

容器生命周期管理run-创建并启动一个新的容器。start/stop/restart-这些命令主要用于启动、停止和重启容器。kill-立即终止一个或多个正在运行的容器rm-于删除一个或...

docker常用指令及安装rabbitMQ(docker安装rabbitmq配置环境)

一、docker常用指令启动docker:systemctlstartdocker停止docker:systemctlstopdocker重启docker:systemctlrestart...

使用Docker快速部署Storm环境(docker部署confluence)

Storm的部署虽然不是特别麻烦,但是在生产环境中,为了提高部署效率,方便管理维护,使用Docker来统一管理部署是一个不错的选择。下面是我开源的一个新的项目,一个配置好了storm与mono环境的D...

Docker Desktop安装使用指南:零基础教程

在之前的文章中,我多次提到使用Docker来安装各类软件,尤其是开源软件应用。鉴于不少读者对此有需求,我决定专门制作一期关于Docker安装与使用的详细教程。我主要以Macbook(Mac平台)为例进...

Linux如何成功地离线安装docker(linux离线安装httpd)

系统环境:Redhat7.2和Centos7.4实测成功近期因项目需要用docker,所以记录一些相关知识,由于生产环境是不能直接连接互联网,尝试在linux中离线安装docker。步骤1.下载...

Docker 类面试题(常见问题)(docker面试题目)

Docker常见问题汇总镜像相关1、如何批量清理临时镜像文件?可以使用sudodockerrmi$(sudodockerimages-q-fdanging=true)命令2、如何查看...

面试官:你知道Dubbo怎么优雅上下线的吗?你:优雅上下线是啥?

最近无论是校招还是社招,都进行的如火如荼,我也承担了很多的面试工作,在一次面试过程中,和候选人聊了一些关于Dubbo的知识。Dubbo是一个比较著名的RPC框架,很多人对于他的一些网络通信、通信协议、...

【Docker 新手入门指南】第五章:Hello Word

适合人群:完全零基础新手|学习目标:30分钟掌握Docker核心操作一、准备工作:先确认是否安装成功打开终端(Windows用户用PowerShell或GitBash),输入:docker--...

松勤软件测试:详解Docker,如何用portainer管理Docker容器

镜像管理搜索镜像dockersearch镜像名称拉取镜像dockerpullname[:tag]列出镜像dockerimages删除镜像dockerrmiimage名称或id删除...