当前位置:首页 > 编程技术 > 正文内容

Python 数据类型详细篇:字符串

yc8881年前 (2023-02-24)编程技术422

Python 数据类型详细篇:字符串

这节课我们来学习下 Python 基本数据类型中的字符串类型,字符串类型在实际的开发中是一个经常会用到的数据类型,比较重要。下面我们一起来看一下:

1. 简介

字符串类型的数据表示一段文本,使用单引号或者双引号创建:

  • 单引号字符串 ‘hello’

  • 双引号字符串 “world”

在 python 中使用字符串的例子如下:

>>> x = 'hello'>>> x'hello'>>> y = "world">>> y'world'
  • 在第 1 行,创建了使用单引号字符串 hello,并将值赋给变量 x

  • 在第 2 行,显示变量 x 的值为 ‘hello’

  • 在第 3 行,创建了使用双引号字符串 world,并将值赋给变量 y

  • 在第 4 行,显示变量 y 的值为 ‘world’

使用单引号或者双引号创建的字符串只能在一行,而使用三引号允许一个跨多行的字符串。

使用 3 个单引号创建的多行字符串示例如下:

s = '''line 1
line 2
line 3'''print(s)

使用 3 个双引号创建的多行字符串示例如下:

s = """line 1
line 2
line 3"""print(s)

以上程序的输出如下:

line 1line 2line 3

2. 常见运算操作

本节介绍对字符的最常见的几种运算操作,包括:

2.1 运算符 +

使用运算符 + 连接两个字符串,示例如下:

>>> 'Hello' + 'World'>>> 'HelloWorld'>>> 'Hello' + ' ' + 'World'>>> 'Hello World'
  • 在第 1 行,使用运算符 + 连接两个字符串

  • 在第 3 行,使用运算符 + 连接多个字符串

2.2 运算符 *

使用运算符 * 重复输出字符串,示例如下:

>>> 'hello' * 2'hellohello'>>> 'hello' * 3'hellohellohello'
  • 在第 1 行,使用运算符 * 将字符串重复两次

  • 在第 3 行,使用运算符 + 将字符串重复三次

2.3 函数 len

使用函数 len 获取字符串的长度,示例如下:

>>> len('abc')3>>> len('5axxw')5

2.4 索引 []

通过索引 [] 获取字符串中指定位置的字符,示例如下:

>>> s = '5axxw'>>> s[0]'i'>>> s[1]'m'>>> s[2]'o'>>> s[3]'o'>>> s[4]'c'
  • 在 Python 中,单个字符也被当作字符串来处理,即该字符串只包含一个字符

  • 在第 2 行,获取字符串 s 的第 0 个字符 ‘i’

  • 在第 4 行,获取字符串 s 的第 1 个字符 ‘m’

2.5 索引 [:]

在 Python 中,使用语法 string[start:end],获取字符串 string 中在 [start, end) 范围的子字符串。注意范围 [start, end) 包含 start,不包含 end。举例如下:

>>> s = '5axxw'>>> s[1]'m'>>> s[2]'o'>>> s[3]'o'>>> s[1:4]'moo'
  • 在第 2 行,获取字符串 s 的第 1 个字符 ‘m’

  • 在第 4 行,获取字符串 s 的第 2 个字符 ‘o’

  • 在第 6 行,获取字符串 s 的第 3 个字符 ‘o’

  • 在第 8 行,获取字符串 s 中从 1 开始、到 4 结束的字符串 ‘mooc’,使用 s[1:4] 表示该范围,注意该范围包括字符串的第 1 个字符、不包括第 4 个字符。

2.6 关键字 in

通过关键字 in 检查字符串中是否包含指定字符串,示例如下:

>>> 'mooc' in '5axxw'True>>> 'mook' not in '5axxw'True
  • 在第 1 行,检测字符串 ‘mooc’ 在 字符串 ‘5axxw’ 中

  • 在第 3 行,检测字符串 ‘mook’ 不在 字符串 ‘5axxw’ 中

3. 常用字符串方法

3.1 capitalize() 方法

capitalize() 方法把字符串的第一个字符大写,示例如下:

>>> text = 'abc'>>> text.capitalize()'Abc'

3.2 count() 方法

count() 方法统计字符串出现的次数,示例如下:

>>> text = 'abc abc'>>> text.count('abc')2

3.3 startswith(target) 方法

startswith(target) 方法检查字符串是否是以字符串 target 开头,示例如下:

>>> text = 'abc'>>> text.startswith('ab')
True>>> text.startswith('bb')
False

3.4 endswith(target) 方法

endswith(target) 方法检查字符串是否是以字符串 target 结尾,示例如下:

>>> text = 'abc'>>> text.endsswith('bc')
True>>> text.endsswith('cc')
False

3.5 lower() 方法

lower() 方法将字符串中所有大写字符转换为小写,示例如下:

>>> text = 'ABC'>>> text.lower()'abc'

3.6 upper() 方法

upper() 方法将字符串中所有小写字符转换为大写,示例如下:

>>> text = 'abc'>>> text.upper()'ABC'

3.7 islower() 方法

如果字符串中所有字符是小写则为真,否则为假,示例如下:

>>> text = 'abc'>>> text.islower()
True

3.8 isupper() 方法

如果字符串中所有字符是大写则为真,否则为假,示例如下:

>>> text = 'ABC'>>> text.isupper()
True

3.9 find(target) 方法

检查是否包含指定字符串 target,如果包含字符串 target 则返回开始的索引值,否则返回 -1,示例如下:

>>> text = '5axxw'>>> text.find('oo')2>>> text.find('oop')
-1
  • 在第 2 行,查找字符串 ‘5axxw’ 是否包含字符串 ‘oo’

  • 在第 3 行,字符串 ‘oo’ 在字符串 ‘5axxw’ 中的起始位置是 2,因此返回 2

  • 在第 2 行,查找字符串 ‘5axxw’ 是否包含字符串 ‘oop’

  • 在第 5 行,字符串 ‘5axxw’ 中不包含字符串 ‘oo’,因此返回 -1

3.10 split() 方法

使用空格将字符串分割为多个单词,返回一个列表,示例如下:

>>> text = 'hello world'>>> text.split()
['hello', 'world']

缺省情况下,使用空格将字符串分割为多个单词,可以在 split() 方法中指定分隔符,示例如下:

>>> text = 'hello:world'>>> text.split(':')
['hello', 'world']

4. 转义字符

在 Python 中使用反斜杠 \ 加字母的组合来表示一些特殊字符,例如:\n 表示换行,\ 之后的字符 n 的含义已经不再是原来 ASCII 字符的含义了,所以被称为转义字符。

常用的转义字符如下所示:

转义字符描述
\t制表
\n换行
\’
\""
\\\
  • 使用 \t 的示例

>>> print('a\tb\tc')
a       b       c>>> print('aa\tbb\tcc')
aa      bb      cc

\t 表示跳到下一个制表符位置,可以使得输出纵向对齐。

  • 使用 \n 的示例

>>> print('a\nb')
a
b
  • 使用 \’ 的示例

>>> print('\'')
'

在单引号字符串中使用 \’ 表示单引号

  • 使用 \" 的示例

>>> print("\"")"

在双引号字符串中使用 \" 表示双引号

  • 使用 \\ 的示例

>>> print('\\')
\

在字符串中使用 ‘\’ 表示转义字符 \

5. 字符串格式化

5.1 什么是字符串格式化

通过使用字符串 + 连接运算可以将多个字符串拼接起来,例如:

>>> name = 'tom'>>> city = 'nanjing'>>> 'My name is ' + name + ', I live in ' + city + '.''My name is tom, I live in beijing.'

在第 3 行,使用字符串 + 将以下 5 个字符串拼接起来:

  • 'My name is ’

  • name

  • ', I live in ’

  • city

  • ‘.’

最终得到字符串 ‘My name is tom, I live in beijing’,像这样将多个字符串拼接起来的表达式非常不直观,Python 提供了字符串格式化用于简化拼接多个字符串。

5.2 format 方法

使用字符串提供的 format 方法完成上述的拼接工作,如下所示:

>>> name = 'tom'>>> city = 'beijing'>>> text = 'My name is %s, I live in city %s.'>>> text.format(name, city)'My name is tom, I live in beijing.'
  • 在第 1 行,创建变量 name

  • 在第 2 行,创建变量 city

  • 在第 3 行,创建字符串 text,字符串中 %s 被称为占位符,text 中有两个占位符

  • 在第 4 行,调用字符串 text 的 format 方法,该方法有两个参数:name 和 city

  • 在第 5 行,将 text 中的两个占位符 %s 替换为这两个参数,得到最终的结果 ‘My name is tom, I live in beijing.’

与上一节使用 + 运算连接相比,格式化字符串显著的提高了程序的可读性。

5.3 % 运算符

也可以使用运算符 % 完成上述的拼接工作,如下所示:

>>> name = 'tom'>>> city = 'beijing'>>> text = 'My name is %s, I live in city %s.'>>> text % (name, city)'My name is tom, I live in beijing.'
  • 在第 1 行,创建变量 name

  • 在第 2 行,创建变量 city

  • 在第 3 行,创建字符串 text,字符串中 %s 被称为占位符,text 中有两个占位符

  • 在第 4 行,使用运算符 % 进行字符串格式化。运算符 % 有两个操作数,左边的操作数是字符串变量 text,右边的操作数是一个元组,元组中包含两个参数:name 和 city

  • 在第 5 行,将 text 中的两个占位符 %s 替换为这两个参数,得到最终的结果 ‘My name is tom, I live in beijing.’

在实践中,通常直接将字符串与参数使用运算符 % 格式化,如下所示:

>>> name = 'tom'>>> city = 'beijing'>>> 'My name is %s, I live in city %s.' % (name, city)'My name is tom, I live in beijing.'

如果有多个参数,需要将所有的参数保存在一个元组中;如果只有一个参数,可以不用保存在元组中,举例如下:

>>> name = 'tom'>>> 'My name is %s.' % name'My name is tom.'
  • 在第 2 行,只有一个参数,可以不用将参数封装在元组中

5.4 占位符

% 是一个特殊的符号,后面跟着一个字符用于说明参数的类型:

  • %s 表示字符串

  • %d 表示整数

  • %f 表示浮点数

有多种类型的占位符,初学时需要掌握如下常用的占位符:

符号描述
%%用于表示 %
%c格式化字符及其ASCII码
%s格式化字符串
%d格式化整数
%f格式化浮点数
  1. %s 用于格式化字符串

>>> name = 'tom'>>> 'name is %s' % name'name is tom'
  1. %d 用于格式化整数

>>> integer = 123>>> 'integer is %d' % integer'integer is 123'
  1. %f 用于格式化浮点数

>>> float = 123.456>>> 'float is %f' % float'float is 123.456000'
  1. %% 用于表示字符 % 本身

>>> a = 3>>> b = 2>>> c = a % b>>> '%d %% %d = %d' % (a, b, c)3 % 2 = 1

%% 是一个特殊的占位符,表示字符 % 本身。

5.5 print 方法

在实践中,通常使用 print 方法输出将格式化后的字符串,示例如下:

>>> name = 'tom'>>> city = 'beijing'>>> print('My name is %s' % name)
My name is tom>>> print('My name is %s, I live in city %s.' % (name, city))
My name is tom, I live in beijing.

6. 小结

字符串和数值一样,同样有基本的运算方式,但是最终得到的结果形式和数值却略有不同,大家在使用的时候要注意这一点。字符串的常用方法也需要大家多多练习和使用,可以把正文中的代码多敲几遍,一个好的程序员就是要多敲代码才能成长。


本站发布的内容若侵犯到您的权益,请邮件联系站长删除,我们将及时处理!


从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!


本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。


本站资源仅供学习和交流使用,版权归原作者所有,请勿商业运营、违法使用和传播!请在下载后24小时之内自觉删除。


若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。


本文链接:https://www.10zhan.com/biancheng/10604.html

标签: Python
分享给朋友:

“Python 数据类型详细篇:字符串” 的相关文章

【说站】laravel实现自定义404页面并给页面传值

【说站】laravel实现自定义404页面并给页面传值

以 laravel5.8 为例,虽然有自带的404页面,但太简单,我们更希望能自定义404页面,将用户留在站点。实现的方式很简单,将自定义的视图文件命名为 404.blade.php,并放到 reso...

【说站】用一句话就可以去除宝塔面板操作上的二次验证

【说站】用一句话就可以去除宝塔面板操作上的二次验证

用过宝塔的朋友应该都会发现,现在宝塔面板有些鸡肋的功能,删除文件、删除数据库、删除站点等操作都需要做计算题!不仅加了几秒的延时等待,还无法跳过!这时候就会有朋友在想,如何去除宝塔面板的二次验证,此篇文...

【说站】电脑安装MySQL时出现starting the server失败原因及解决方案

【说站】电脑安装MySQL时出现starting the server失败原因及解决方案

今天在安装MySQL时出现starting the server失败,经过查询分析得出以下结论,记录一下操作步骤。原因分析:如果电脑是第一次安装MySQL,一般不会出现这样的报错。如下图所示。star...

【说站】vagrant实现linux虚拟机的安装并配置网络

【说站】vagrant实现linux虚拟机的安装并配置网络

一、VirtualBox的下载和安装1、下载VirtualBox官网下载:https://www.virtualbox.org/wiki/Downloads我的电脑是Windows的,所以下载Wind...

【说站】C#在PDF中添加墨迹注释Ink Annotation的步骤详解

【说站】C#在PDF中添加墨迹注释Ink Annotation的步骤详解

PDF中的墨迹注释(Ink Annotation),表现为徒手涂鸦式的形状;该类型的注释,可任意指定形状顶点的位置及个数,通过指定的顶点,程序将连接各点绘制成平滑的曲线。下面,通过C#程序代码介绍如何...

【说站】Java从resources读取文件内容的方法有哪些

【说站】Java从resources读取文件内容的方法有哪些

本文主要介绍的是java读取resource目录下文件的方法,比如这是你的src目录的结构├── main│ ├── java│ │ └── ...