测试知识:答案 | 第二部分 类型与操作 —— 第 7 章: 字符串基础 |《学习 python:强大的面向对象编程(第 5 版)》| python 技术论坛-大发黄金版app下载
-
字符串的
find
方法能被用来搜索列表吗?不,因为方法总是特定类型的;也就是说,它们只适用于一个数据类型。然而,像
x y
的表达式和像len(x)
的内置函数是通用的,可以适用于许多类型。比如,在这个例子中,in
表达式有类似于字符串find
的效果,但它可以同时用来搜索字符串和列表。在python 3系列中,有一些按类别来分组方法的尝试(比如,可变的序列类型list
和bytearray
有类似的方法集),但方法仍比其它操作集更特定类型。 -
字符串的切片表达式能用在列表上吗?
能。不像方法,表达式是通用的且适用于许多类型。在这个例子中,切片表达式其实是一个序列操作——它适用于许多序列对象,包括字符串、列表、元组。唯一的不同是当对列表进行切片时,返回的是一个新列表。
-
如何将字符转换为其 ascii 整数码?如何反向转换(从整数到字符)?
内置
ord(s)
函数将单字符的字符串转换为一个整数字符码;chr(i)
将整数码转回字符串。然而,记住:这些整数只是ascii码,用于字符仅从ascii字符集获得的文本。在unicode模型中,文本字符串其实是unicode码点识别数字(它们可能超出被ascii保留的7比特数字范围)的序列。更多关于unicode的知识请参阅第4章和第37章。 -
如何着手改变python中的字符串?
字符串无法被改变;它们是不可变的。然而,可以通过创建一个新字符串来到达类似效果——通过连接、切片、运行格式化表达式,或运行像
replace
的方法调用——然后把结果赋值回原来的变量名。 -
假设一个字符串 s 的值为“s,pa,m”,列出提取中间两个字符的两种方法。
- 使用 s[2:4] 来切片字符串;
- 使用
s.split(',')[1]
来以逗号分割并索引。
-
在字符串“a\nb\x1f\000d”中有多少个字符?
6个:
a
\n
b
x1f
(二进制的31,16进制转义)\000
(二进制的0,8进制转义)- d
打印每个字符的
ord
结果来看实际的码点(识别数)值。参见表7-2来获取关于转义的更多细节。 -
为什么你可能使用
string
模块而非字符串方法调用?当前绝不应该使用
string
模块来代替字符串对象方法调用——它已经过时了,且其调用被python 3.x完全移除。当今在任何情况下使用string
模块的唯一理由就是它的其它工具,比如预定义常数。你可能还看到它出现在对目前来说非常老旧和充满灰尘的代码中(和遥远朦胧的过去的书籍中——如20世纪90年代)。