字符串的深入目前编写的许多程序都涉及字符串的使用,但方法并不很丰富。目前为止,字符串主要涉及输入和输出。如从键盘和文件中读取输入的字符串,并将字符串作为程序输出,发送到屏幕和文件。许多程序不只是为了输入读取字符串和输出写入的字符串,还要对字符串执行相关处理。如处理大量文本时,需要广泛地使用字符串。e 程序和搜索引擎也是对字符串执行作的典型程序。python 提供了各种检查和作字符串的工具、编程技术。其实,字符串是一个序列,第6 章中很多有关序列的概念也适用于字符串。6.1 字符串的基本作6.1.1 访问字符串中的单个字符一些编程任务要求访问字符串中的各个字符。常见的要求如设置的密码。出于安全虑,许多要求设置的密码至少包含一个大写字母、一个小写字母和一个数字。当我们设置密码的时候,程序会检查每个字符,以确保密码符合这些要求(在本章后面会介绍该程序的例子)。在本节中,我们将介绍两种可以在python 中访问字符串中单个字符的作——for 循环和索引。用for循环迭代字符串访问字符串中单个字符简单的方法之一是使用for 循环。一般格式如下:for variable in tring:tatementtatementetc.其中,variable 是变量的名称,tring 是字符串或引用字符串的变量。每次循环迭代时,variable 将从个字符开始依次引用字符串中的每个字符副本。这个循环遍历了字符串中的所有字符。如下:gt;gt;gt; tring=pythongt;gt;gt; for char in tring:print(char)python图61 演示了循环迭代时char 变量是如何引用字符串的字符副本的。图61 在字符串python上迭代程序61 展示了另一个例子。该程序用来统计用户在控制台输入的一个字符串中字符a 的个数(忽略大写和小写)。程序61 tring_demo1.py用户在控制台输入一个字符串,统计其中字符a出现的次数(忽略大写和小写)输入字符串tring=input(‘请输入字符串:‘)定义a的数量a_count=0遍历字符串for tr in tring:if tr==‘a‘ or tr==‘a‘:a_count=a_count1print(字符串为tring)print(字符串中a出现的次数为a_count)程序输入请输入字符串:wjawaawaaejna程序输出字符串为wjawaawaaejna字符串中a出现的次数为66.1.2 索引访问字符串中字符的另一种方法是使用索引。字符串中的每个字符都有索引指定其在字符串中的位置。索引从0 开始,所以个字符的索引是0,第二个字符的索引是1,以此类推。字符串中后1 个字符的索引比字符串中的字符数小1。图62 展示了字符串“hello world”中的每个字符的索引。该字符串共有11 个字符,所以字符索引的范围是从0 到10。可以使用索引取回字符串中单个字符的副本,如图62 所示。gt;gt;gt; my_tring=hello worldgt;gt;gt; char=my_tring[6]图62 字符串索图63 从字符串获取字符的副本第二条语句中的表达式“my_tring[6]”返回my_tring 中在索引6 位置上的字符副本。执行完这条语句后,char 将引用“w”。如图63 所示。还有一个例子:gt;gt;gt; my_tring=hello worldgt;gt;gt; print(my_tring[0]my_tring[6]my_tring[10])h w d也可以用同样的方法对字符串进行负数索引,标识字符在整个字符串中的位置。python 解释器使用负数索引与字符串长度来确定字符的位置。索引1 标识该字符串的后一个字符,索引2 标识该字符串后一个字符前的一个字符,以此类推。gt;gt;gt; my_tring=hello worldgt;gt;gt; print(my_tring[1]my_tring[2]my_tring[3])d l r程序62 tring_demo2.py用户在控制台输入一个字符串,并将整个字符串中的字符分别按正序和逆序输出输入字符串tring=input(‘请输入字符串:‘)顺序输出for tr in tring:print(trend= )逆序输出for i in range(len(tring)):print(tring[i1]end= )程序输入请输入字符串:helloworld程序输出h e l l o w o r l dd l r o w o l l e h6.1.3 indexerror 异常对于特定的字符串,如果使用超出范围的索引,则会发生indexerror 异常。例如:字符串“python”有6 个字符,所以有效的索引从0 到5(有效的负数索引从1 到6)。下面的示例代码会导致indexerror 异常。gt;gt;gt; tring=pythongt;gt;gt; print(tring[6])traceback (mot recent call lat):file ‘‘ line 1 inprint(tring[6])indexerror: tring index out of range这种类型的错误有可能发生在循环过程中迭代次数超过了字符串末尾的情况,如下所示:city=beijingindex=0while indexlt;8:print(city[index])index=1这个循环的后一次迭代,index 变量将被赋值为7,是字符串“beijing”的一个无效索引,因此会导致indexerror 异常。6.1.4 len() 函数在第5 章介绍了len() 函数,它返回序列的长度。len() 函数同样也能获取字符串的长度,如下所示:gt;gt;gt;tring =pythongt;gt;gt;ize=len(tring)gt;gt;gt;print(ize)6第二条语句将变量tring 作为参数调用len() 函数。该函数的返回值是6,是字符串“python”的长度,这个值赋给了ize 变量。len() 函数可以止循环迭代超出字符串的末尾,如下所示:gt;gt;gt; tring=pythongt;gt;gt; index=0gt;gt;gt; while indexprint(tring[index])index=index 1python注意:只要索引小于字符串的长度,循环会一直迭代。这是因为字符串中后一个字符的索引始终比字符串的长度小1。6.1.5 连接字符串在python 中,比较常见的字符串作是连接或追加一个字符串到另一个字符串的末尾。在前面的章节中,我们了解到使用“”运算符连接字符串的作。“”运算符将两个字符串组合起来生成一个新的字符串。如下:gt;gt;gt; my_tring=helloworldgt;gt;gt; print(my_tring)helloworld行连接字符串“hello”和“wor1d”产生字符串“helloworld”,然后将字符串“helloworld”分配给my_tring 变量。第二行打印了my_tring 变量引用的字符串。下面是展示连接字符串的另一个交互式会话:gt;gt;gt; firt_name=tomgt;gt;gt; lat_name=markgt;gt;gt; full_name=firt_name lat_namegt;gt;gt; print(full_name)tom mark行将字符串“tom”赋给了firt_name 变量;第二行将字符串“mark”赋给了lat_name 变量;第三行将两个字符串通过一个空格连接在一起,生成的字符串赋给了full_name 变量;第四行打印了full_name 引用的字符串;输出结果显示在第五行。当然,在进行字符串拼接作时,也可以使用“=”运算符执行连接。以下交互式会话演示了这一过程:gt;gt;gt; firt_tr=hellogt;gt;gt; tr=worldgt;gt;gt; tr =firt_trgt;gt;gt; print(tr)worldhello程序63 tring_demo3.py创建一个英文字母列表,并将列表按照空格相隔,拼接成一个新字符串创建空字符串my_tring= 创建字母列表letter_lit=[]for number in range(97123):创建字符char=chr(number)将字符添加到列表中letter_lit.append(char)拼接字符串for char in letter_lit:my_tring=my_tringchar print(‘拼接后的字母字符串为‘my_tring)程序输出拼接后的字母字符串为a b c d e f g h i j k l m n o p q r t u v w x y z6.1.6 字符串是不可变的在python 的数据类型中,字符串是无法被修改的,这意味着一旦创建字符串,无法改变。一些对字符串的作,如连接,我们会认为它们修改了字符串,但实际上并没有。如下:gt;gt;gt; name=jackgt;gt;gt; print(‘名字是‘name)名字是jackgt;gt;gt; name=name tomgt;g
以下为对购买帮助不大的评价