09. 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 1 line 2 line 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('mybj')
4
2.4 索引 []
通过索引 [] 获取字符串中指定位置的字符,示例如下:
>>> s = 'mybj' >>> s[0] 'm' >>> s[1] 'y' >>> s[2] 'b' >>> s[3] 'j'
- 在 Python 中,单个字符也被当作字符串来处理,即该字符串只包含一个字符
- 在第 2 行,获取字符串 s 的第 0 个字符 ‘m’
- 在第 4 行,获取字符串 s 的第 1 个字符 ‘y’
2.5 索引 [:]
在 Python 中,使用语法 string [start:end],获取字符串 string 中在 [start, end) 范围的子字符串。注意范围 [start, end) 包含 start,不包含 end。举例如下:
>>> s = 'mybj' >>> s[1] 'y' >>> s[2] 'b' >>> s[3] 'j' >>> s[1:3] 'yb'
- 在第 2 行,获取字符串 s 的第 1 个字符 ‘y’
- 在第 4 行,获取字符串 s 的第 2 个字符 ‘b’
- 在第 6 行,获取字符串 s 的第 3 个字符 ‘j’
- 在第 8 行,获取字符串 s 中从 1 开始、到 3 结束的字符串 ‘mybj’,使用 s [1:3] 表示该范围,注意该范围包括字符串的第 1 个字符、不包括第 3 个字符。
2.6 关键字 in
通过关键字 in 检查字符串中是否包含指定字符串,示例如下:
>>> 'my' in 'mybj' True >>> 'may' not in 'mybj' True
- 在第 1 行,检测字符串 ‘my’ 在 字符串 ‘mybj’ 中
- 在第 3 行,检测字符串 ‘may’ 不在 字符串 ‘mybj’ 中
3. 常用字符串方法
3.1 capitalize() 方法
capitalize()方法把字符串的第一个字符大写,示例如下:
>>> text = 'mybj' >>> text.capitalize() 'Mybj'
3.2 count() 方法
count()方法统计字符串出现的次数,示例如下:
>>> text = 'mybj mybj'
>>> text.count('mybj')
2
3.3 startswith(target) 方法
startswith(target)方法检查字符串是否是以字符串 target 开头,示例如下:
>>> text = 'mybj'
>>> text.startswith('my')
True
>>> text.startswith('yy')
False
3.4 endswith(target) 方法
endswith(target)方法检查字符串是否是以字符串 target 结尾,示例如下:
>>> text = 'mybj'
>>> text.endsswith('bj')
True
>>> text.endsswith('jj')
False
3.5 lower() 方法
lower()方法将字符串中所有大写字符转换为小写,示例如下:
>>> text = 'MYBJ' >>> text.lower() 'mybj'
3.6 upper() 方法
upper()方法将字符串中所有小写字符转换为大写,示例如下:
>>> text = 'mybj' >>> text.upper() 'MYBJ'
3.7 islower() 方法
islower()方法,如果字符串中所有字符是小写则为真,否则为假,示例如下:
>>> text = 'mybj' >>> text.islower() True
3.8 isupper() 方法
isupper()方法,如果字符串中所有字符是大写则为真,否则为假,示例如下:
>>> text = 'MYBJ' >>> text.isupper() True
3.9 find(target) 方法
检查是否包含指定字符串 target,如果包含字符串 target 则返回开始的索引值,否则返回 -1,示例如下:
>>> text = 'mybj'
>>> text.find('b')
2
>>> text.find('bbj')
-1
- 在第 2 行,查找字符串 ‘mybj’ 是否包含字符串 ‘b’
- 在第 3 行,字符串 ‘b’ 在字符串 ‘mybj’ 中的起始位置是 2,因此返回 2
- 在第 2 行,查找字符串 ‘mybj’ 是否包含字符串 ‘bbj’
- 在第 5 行,字符串 ‘mybj’ 中不包含字符串 ‘bbj’,因此返回 -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 = 'zhangsan' >>> city = 'beijing' >>> 'My name is ' + name + ', I live in ' + city + '.' 'My name is zhangsan, I live in beijing.'
在第 3 行,使用字符串 + 将以下 5 个字符串拼接起来:
- ‘My name is ’
- name
- ‘, I live in ’
- city
- ‘.’
最终得到字符串 ‘My name is zhangsan, I live in beijing’,像这样将多个字符串拼接起来的表达式非常不直观,Python 提供了字符串格式化用于简化拼接多个字符串。
5.2 format 方法
使用字符串提供的 format 方法完成上述的拼接工作,如下所示:
>>> name = 'zhangsan'
>>> city = 'beijing'
>>> text = 'My name is {}, I live in city {}.'
>>> text.format(name, city)
'My name is zhangsan, I live in beijing.'
- 在第 1 行,创建变量 name
- 在第 2 行,创建变量 city
- 在第 3 行,创建字符串 text,字符串中 % s 被称为占位符,text 中有两个占位符
- 在第 4 行,调用字符串 text 的 format 方法,该方法有两个参数:name 和 city
- 在第 5 行,将 text 中的两个占位符 % s 替换为这两个参数,得到最终的结果 ‘My name is zhangsan, I live in beijing.’
与上一节使用 + 运算连接相比,格式化字符串显著的提高了程序的可读性。
5.3 % 运算符
也可以使用运算符 % 完成上述的拼接工作,如下所示:
>>> name = 'zhangsan' >>> city = 'beijing' >>> text = 'My name is %s, I live in city %s.' >>> text % (name, city) 'My name is zhangsan, I live in beijing.'
- 在第 1 行,创建变量 name
- 在第 2 行,创建变量 city
- 在第 3 行,创建字符串 text,字符串中 % s 被称为占位符,text 中有两个占位符
- 在第 4 行,使用运算符 % 进行字符串格式化。运算符 % 有两个操作数,左边的操作数是字符串变量 text,右边的操作数是一个元组,元组中包含两个参数:name 和 city
- 在第 5 行,将 text 中的两个占位符 % s 替换为这两个参数,得到最终的结果 ‘My name is zhangsan, I live in beijing.’
在实践中,通常直接将字符串与参数使用运算符 % 格式化,如下所示:
>>> name = 'zhangsan' >>> city = 'beijing' >>> 'My name is %s, I live in city %s.' % (name, city) 'My name is zhangsan, I live in beijing.'
如果有多个参数,需要将所有的参数保存在一个元组中;如果只有一个参数,可以不用保存在元组中,举例如下:
>>> name = 'zhangsan' >>> 'My name is %s.' % name 'My name is zhangsan.'
- 在第 2 行,只有一个参数,可以不用将参数封装在元组中
5.4 占位符
% 是一个特殊的符号,后面跟着一个字符用于说明参数的类型:
%s表示字符串%d表示整数%f表示浮点数
有多种类型的占位符,初学时需要掌握如下常用的占位符:
| 符号 | 描述 |
|---|---|
| %% | 用于表示 % |
| %c | 格式化字符及其 ASCII 码 |
| %s | 格式化字符串 |
| %d | 格式化整数 |
| %f | 格式化浮点数 |
%s用于格式化字符串>>> name = 'zhangsan' >>> 'name is %s' % name 'name is zhangsan'
%d用于格式化整数>>> integer = 123 >>> 'integer is %d' % integer 'integer is 123'
%f用于格式化浮点数>>> float = 123.456 >>> 'float is %f' % float 'float is 123.456000'
%%用于表示字符 % 本身>>> a = 3 >>> b = 2 >>> c = a % b >>> '%d %% %d = %d' % (a, b, c) 3 % 2 = 1
%%是一个特殊的占位符,表示字符 % 本身。
5.5 print 方法
在实践中,通常使用 print 方法输出将格式化后的字符串,示例如下:
>>> name = 'zhangsan'
>>> city = 'beijing'
>>> print('My name is %s' % name)
My name is zhangsan
>>> print('My name is %s, I live in city %s.' % (name, city))
My name is zhangsan, I live in beijing.
6. 小结
字符串和数值一样,同样有基本的运算方式,但是最终得到的结果形式和数值却略有不同,大家在使用的时候要注意这一点。字符串的常用方法也需要大家多多练习和使用,可以把正文中的代码多敲几遍,一个好的程序员就是要多敲代码才能成长。
以上关于09. Python 数据类型之字符串的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » 09. Python 数据类型之字符串

微信
支付宝