《Python参考手册(第4版•修订版)》——1.5 字符串

简介:

本节书摘来自异步社区《Python参考手册(第4版•修订版)》一书中的第1章,第1.5节,作者David M. Beazley,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.5 字符串

要创建一个字符串字面量,将字符串放在单引号、双引号或三引号中即可,如下所示:

a = "Hello World"
b = 'Python is groovy'
c = """Computer says 'No'"""

字符串前后使用的引号必须是对应匹配的。两个三引号之间出现的所有文本都视为字符串的内容,而使用单引号和双引号指定的字符串必须在一个逻辑行上。当字符串字面量的内容需放在多个文本行上时,三引号字符串就很有用,如下所示:

print '''Content-type: text/html

<h1> Hello World </h1>
Click <a href="http://www.python.org">here.
'''

字符串存储在一个字符序列中,这个字符序列使用整数作为索引,索引从0开始。要提取其中的一个字符,可以使用索引运算符s[i],如下所示:

a = "Hello World"
b = a[4]                # b = 'o'

要提取一个子字符串,可以使用切片运算符s[i:j]。这会提取字符串s中索引位置k处的所有字符,其中索引k的范围是i<=k

c = a[:5]               # c = "Hello"
d = a[6:]               # d = "World"
e = a[3:8]              # e = "lo Wo"

可以使用加(+)运算符连接两个字符串:

g = a + " This is a test"

Python不会把字符串的内容隐式地解释为数值数据(Perl或PHP等语言中会这样解释)。例如,+运算符始终会连接字符串:

x = "37"
y = "42"
z = x + y    # z = "3742"(字符串连接)

要执行数学计算,首先要使用int()或float()等函数将字符串转换为数值,例如:

z = int(x) + int(y) # z = 79(整数求和)

使用str()、repr()或format()函数可将非字符串值转换为字符串表示形式,例如:

s = "The value of x is " + str(x)
s = "The value of x is " + repr(x)
s = "The value of x is " + format(x,"4d")

尽管str()和repr()都可以创建字符串,但它们的输出通常存在细微的差别。str()生成的输出与使用print语句得到的输出相同,而用repr()创建的字符串可表示程序中某个对象的精确值,例如:

>>> x = 3.4
>>> str(x)
'3.4'
>>> repr(x)
'3.3999999999999999'
>>>

上例中3.4的不精确表示并非是Python中的一个bug。这是双精度浮点数的一个特点,因为从设计上说,底层计算机硬件无法精确地表示十进制小数。

format()函数可将值转换成特定格式等字符串,例如:

>>> format(x,"0.5f")
'3.40000'
>>>
相关文章
|
1天前
|
Python
Python避免在字符串和字节之间混淆
【5月更文挑战第5天】Python避免在字符串和字节之间混淆
11 3
|
2天前
|
数据安全/隐私保护 开发者 Python
【Python 基础】检查字符串是否只包含数字和字母?
【5月更文挑战第8天】【Python 基础】检查字符串是否只包含数字和字母?
|
2天前
|
Python
【Python 基础】如何将一个字符串转化为全大写和全小写?
【5月更文挑战第8天】【Python 基础】如何将一个字符串转化为全大写和全小写?
|
3天前
|
机器学习/深度学习 存储 人工智能
python 字符串的三种定义方式
python 字符串的三种定义方式
8 1
|
4天前
|
Python Perl
Python中的字符串分析:判断字符串中是否包含字母
Python中的字符串分析:判断字符串中是否包含字母
10 0
|
4天前
|
C语言 Python
【Python 基础】如何进行字符串插值?
【5月更文挑战第6天】【Python 基础】如何进行字符串插值?
|
4天前
|
存储 监控 Python
python 日期字符串转换为指定格式的日期
python 日期字符串转换为指定格式的日期
14 3
|
5天前
|
数据处理 Python
Python中按指定数量分割列表字符串的方法
Python中按指定数量分割列表字符串的方法
9 1
|
11天前
|
存储 算法 Python
【亮剑】探讨了Python中查找两个字符串差异位置的方法
【4月更文挑战第30天】本文探讨了Python中查找两个字符串差异位置的方法。首先,通过内置函数和基本字符串操作,可以逐个字符比较找到第一个不同位置。其次,利用`difflib`库的`SequenceMatcher`能获取更详细的差异信息。最后,通过实现Levenshtein距离算法,可以计算字符串间的最小编辑距离。根据需求选择合适的方法,能提升代码效率和可读性。
|
12天前
|
编解码 JavaScript 前端开发
【专栏】介绍了字符串Base64编解码的基本原理和在Java、Python、C++、JavaScript及Go等编程语言中的实现示例
【4月更文挑战第29天】本文介绍了字符串Base64编解码的基本原理和在Java、Python、C++、JavaScript及Go等编程语言中的实现示例。Base64编码将24位二进制数据转换为32位可打印字符,用“=”作填充。文中展示了各语言的编码解码代码,帮助开发者理解并应用于实际项目。