《“笨办法”学Python(第3版)》——习题6 字符串和文本

习题6 字符串和文本

虽然你已经在程序中写过字符串了,但是你还不了解它们的用处。在这个习题中我们将使用复杂的字符串来建立一系列变量,从中你将学到它们的用途。首先,我们解释一下字符串是什么。

字符串通常是指你想要展示给别人的或者是想要从程序里“导出”的一小段字符。Python可以通过文本里的双引号(")或者单引号(')识别出字符串来。这在以前的打印练习中你已经见过很多次了。如果你把单引号或者双引号括起来的文本放到print后面,它们就会被Python打印出来。

字符串可以包含之前已经见过的格式化字符。你只要将格式化的变量放到字符串中,紧跟着一个百分号%,再紧跟着变量名即可。唯一要注意的地方是,如果你想要在字符串中通过格式化字符放入多个变量,需要将变量放到圆括号(())中,而且变量之间用逗号(,)隔开。就像你逛商店说“我要买牛奶、鸡蛋、面包、清汤”一样,只不过程序员的语法是“(milk, eggs, bread, soup)”。

我们将键入大量的字符串、变量、格式化字符,并且将它们打印出来。我们还将练习使用简写的变量名。程序员喜欢使用恼人的难读的简写来节约打字时间,所以我们现在就提早学会这个,这样你就能读懂并且写出这些东西了。

ex6.py

1     x = "There are %d types of people." % 10
2     binary = "binary"
3     do_not = "don't"
4     y = "Those who know %s and those who %s." % (binary, do_not)
5
6     print x
7     print y
8
9     print "I said: %r." % x
10     print "I also said: '%s'." % y
11
12     hilarious = False
13     joke_evaluation = "Isn't that joke so funny?! %r"
14
15     print joke_evaluation % hilarious
16
17     w = "This is the left side of..."
18     e = "a string with a right side."
19
20     print w + e

应该看到的结果

习题6 会话

$ python ex6.py
There are 10 types of people.
Those who know binary and those who don't.
I said: 'There are 10 types of people.'.
I also said: 'Those who know binary and those who don't.'.
Isn't that joke so funny?! False
This is the left side of...a string with a right side.

附加练习

1.通读这段程序,在每一行的上面写一行注释,给自己解释一下这一行的作用。

2.找到所有“把一个字符串放进另一个字符串”的位置。总共有4个地方。

3.你确定只有4个位置吗?你怎么知道的?没准儿我骗你呢。

4.解释一下为什么w和e用+连起来就可以生成一个更长的字符串。

常见问题回答

%r和%s有什么不同?

%r用来做调试(debug)比较好,因为它会显示变量的原始数据(raw data),而%s和其他的符号则是用来向用户显示输出的。
既然有%r了,为什么还要用%s和%d?

%r用来调试最好,而其他格式符则是用来向用户显示变量的。
如果你觉得很好笑,可不可以写一句hilarious = True?

可以。在习题27中你会学到关于布尔函数的更多知识。
为什么你在有些字符串上用单引号而在别的字符串上没有用?

很大程度上只是个风格问题,我的风格就是在双引号的字符串中使用单引号,比如代码的第10行就是这样做的。
我遇到了错误TypeError: not all arguments converted during string formatting。

确定每一行代码都完全正确。发生这种错误是因为你的字符串里的%格式化字符数量比后面给的变量多,仔细检查一下哪里写错了。

时间: 2024-08-01 20:36:13

《“笨办法”学Python(第3版)》——习题6 字符串和文本的相关文章

《“笨办法”学Python(第3版)》——习题5 更多的变量和打印

习题5 更多的变量和打印 我们现在要键入更多的变量并且把它们打印出来.这次我们将使用一个叫"格式化字符串"(format string)的东西.每一次你使用双引号(")把一些文本引用起来,就创建了一个字符串.字符串是程序向人展示息的方式.你可以打印(显示)它们,可以将它们写入文件,还可以将它们发送给网站服务器,很多事情都是通过字符串交流实现的. 字符串是非常好用的东西,所以在这个习题中你将学会如何创建包含变量内容的字符串.使用专门的格式和语法把变量的内容放到字符串里,相当于来

《“笨办法”学Python(第3版)》——习题4 变量和命名

习题4 变量和命名 你已经学会了print和算术运算.下一步要学的是"变量"(variable).在编程中,变量只不过是用来指代某个东西的名字.程序员通过使用变量名可以让他们的程序读起来更像自然语言.而且因为程序员的记性都不怎么好,变量名可以让他们更容易记住程序的内容.如果他们没有在写程序时使用好的变量名,在下一次读到原来写的代码时他们会大为头疼的. 如果被这个习题难住了的话,想想之前教过的,要注意找到不同点.关注细节. 1.在每一行的上面写一行注释,给自己解释一下这一行的作用. 2.

《“笨办法”学Python(第3版)》——习题2 注释和#号

习题2 注释和#号 程序里的注释是很重要的.它们可以用自然语言告诉你某段代码的功能是什么.想要临时移除一段代码时,你还可以用注释的方式临时禁用这段代码.这个习题就是让你学会在Python中注释. ex2.py 1 # A comment, this is so you can read your program later. 2 # Anything after the # is ignored by python. 3 4 print "I could have code like this.

《“笨办法”学Python(第3版)》——习题1 第一个程序

习题1 第一个程序 你应该在习题0上花了不少的时间,学会了如何安装文本编辑器,运行文本编辑器,以及如何运行终端.如果你还没有完成这些练习,请不要继续往下进行了,否则你不会觉得很好过的.写在习题开头警告你不要跳过前面内容的警示本书中仅此一次,切记切记. 将下面的内容写到一个文件中,取名为ex1.py.这种命名方式很重要,Python文件最好以.py结尾. ex1.py print "Hello World!" print "Hello Again" print &qu

《“笨办法”学Python(第3版)》——习题3 数字和数学计算

习题3 数字和数学计算 每一种编程语言都包含处理数字和进行数学计算的方法.不必担心,程序员经常谎称他们是多么牛的数学天才,其实他们根本不是.如果他们真是数学天才,他们早就去从事数学相关的行业了,而不是写写广告程序和社交网络游戏,偷偷赚点小钱而已. 这个习题里有很多数学运算符号.我们来看一遍它们都叫什么名字.你要一边写一边念出它们的名字来,直到你念烦了为止.名字如下: 加号 − 减号 / 斜杠 星号 % 百分号 < 小于号 大于号 <= 小于等于号 = 大于等于号 有没有注意到以上只是些符号,没

《“笨办法”学Ruby》(第3版)目录—导读

作译者简介 "笨办法"学Ruby(第3版) 作者简介 Zed Shaw是一名狂热的吉他手.程序员和编程书作家.他的书教世界各地的人如何写软件.他的<"笨办法"学Python>在全球有数百万的读者.他写的软件大大小小的公司都在使用.他的文章经常被众多极客圈里的人阅读和引用.他是一名活跃且有趣的作家,他会让你大笑,也会让你思考. 译者简介 王巍巍是一名受软件和编程的吸引中途转行的软件从业人员.写代码和翻译是他的两大爱好,他还喜欢在网上撰写和翻译一些文章.如果

《“笨办法”学Ruby》(第3版)—习题0 准备工作

习题0 准备工作 "笨办法"学Ruby(第3版) 这个习题并没有代码,它的主要目的是让你在计算机上安装好Ruby.你应该尽量照着说明进行操作,例如,Mac OS X已经安装了Ruby 2,所以就不要在上面安装别的Ruby版本了. 警告 如果你不知道怎样使用Windows下的PowerShell.OS X下的Terminal或者Linux下的bash,那你就需要先学会一个.你应该先完成附录中的习题后,再回来继续下面这些习题. Mac OS X 完成这个习题需要完成下列任务. 1.用浏览器

《“笨办法”学Ruby》(第3版)—习题2 注释和#号

习题2 注释和#号 "笨办法"学Ruby(第3版) 程序里的注释是很重要的.它们可以用自然语言告诉你某段代码的功能是什么.想要临时移除一段代码时,你也可以用注释的方式临时禁用这段代码.这个习题就是让你学会在Ruby中使用注释. ex2.rb 1 # A comment, this is so you can read your program later. 2 # Anything after the # is ignored by ruby. 3 4 puts "I cou

跟老齐学Python之字典,你还记得吗?_python

字典,这个东西你现在还用吗?随着网络的发展,用的人越来越少了.不少人习惯于在网上搜索,不仅有web版,乃至于已经有手机版的各种字典了.我曾经用过一本小小的<新华字典>. <新华字典>是中国第一部现代汉语字典.最早的名字叫<伍记小字典>,但未能编纂完成.自1953年,开始重编,其凡例完全采用<伍记小字典>.从1953年开始出版,经过反复修订,但是以1957年商务印书馆出版的<新华字典>作为第一版.原由新华辞书社编写,1956年并入中科院语言研究所(