您的位置:首页 > 编程语言 > Python开发

Exercise 6: 字符串

2014-02-27 22:19 183 查看
原文链接:http://learnpythonthehardway.org/book/ex6.html

        虽然你已经知道了怎样写一个字符串,但是你始终不知道它们起什么作用。在这次练习中,我特意在变量这节中另起一节来说相对来说更复杂的字符串,这样你就可以更好的理解它们。首先解释一下什么是字符串。

        字符串一般是一段你想展示给别人看的文本,或者你在程序中写下的输出的打印信息。Python 中你如果将一段文本两端加上了 "(双引号)或者  ‘ (单引号)它就知道你要把这文本作为字符串。你应该在用 print 的时候看过很多次这样写的字符串,当你想要输出文本内容的时候你只要把想要输出的内容放在print后面的 “ 或者 ' 之间,然后Python就会帮你输出来了。

        字符串中可能包含一些你目前还不知道的格式化用的字符。你只要简单的将用来格式化的变量放在字符串中,然加上一个 %(百分号)后面跟着相应的变量就行了。唯一需要注意的是当你在字符串中用了多个格式符来打印多个变量的话,你需要把变量放在 ()中并用 分号分隔它们。这就好比你告诉我你要去商店买东西的购物清单一样,你会这样说:“我想要买牛奶,鸡蛋,面包,汤料。”只是作为一个程序员,我们是这样说的:“(牛奶,鸡蛋,面包,汤料)。"

        现在我们就输入一个带有字符串,变量,格式化字符完整的字符串,然后打印出来。你也应该多练习使用简短的变量名称。程序员可不喜欢把事件浪费在因为使用了模糊恼人的变量名上,所以你尽早开始学会写易于阅读和使用的变量名。

x = "There are %d types of people." % 10
binary = "binary"
do_not = "don't"
y = "Those who know %s and those who %s." % (binary ,do_not)

print x
print y

print "I said:%r." % x
print "I also said: '%s'." % y

hilarious = False
joke_evaluation = "Isn't that joke so funny?! %r"

print joke_evaluation % hilarious

w = "This is the left side of..."
e = "a string with a right side."

print w + e


你将看到如下结果:

E:\>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、找出所有将一个字符串插入另一个字符串的地方,一共有四个地方。

3、你确认只有四个地方吗?你是怎么知道的?可能我喜欢说谎也说不定哦。

4、解释为什么使用 + 可以让 w 和 e 字符串相加成一个更长的字符串。

学生遇见的常见问题:

%r 和 %s 有什么区别?
答:%r 一般是用来做调试用的,因为它一般显示变量的“原始”状态,但是其他格式化符一般就是用来显示给用户看的。

你只要用 %r 就可以了,你为什么还要用 %s 和 %d 呢?
答:%r 最好是用作调试用的,其他格式化符实际上用来给用户展示变量的。

如果你认为笑话是好笑的你可以写 hilarious = Ture?
答:是的,你将在Exercise 27中学习更多关于布尔值的知识。

为什么有些字符串你用单引号而其他的却用双引号呢?
答:这主要是编码风格的问题,但是如果字符串中已经有了单引号那就必须用双引号了。你可以看下代码中的第十行我是怎么做的。

我遇到这个错误:TypeError: not all arguments converted during string formatting.
答:你需要确保你输入的每一行代码和我的一样。出现这个错误的原因是你字符串中的格式化字符的个数比被格式化输出变量的个数多。回过头看看你哪里写错了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python string 格式化