我搜索过这个网站,但看起来像以前的问题中没有涉及“学习Python”这本书的练习。
我有这个练习:
1)查找字符串放在字符串中的所有位置。有四个地方。 2)你确定只有四个地方吗?你怎么知道的?也许我喜欢撒谎。
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) #two strings inside a string, count is 2
print x
print y
print "I said: %r." % x #here, count is 3
print "I also said: '%s'." % y #here, count is 4
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
我试图解决它,并评论了我在字符串中找到一个字符串的行(found4)。但是,作者的第二个问题让我担心我没有找到所有。我错过了什么吗?如果是的话,你能告诉我什么吗?
答案 0 :(得分:9)
如果您将“将字符串放入字符串中”解释为“使用带有字符串参数的格式字符”,则可以正确识别所有四次出现。收起无用的指令并解释会发生什么可能会更有帮助。有关更多信息,请查看offical documentation for formatting characters。我会尝试在没有技巧问题的情况下加入一些有用的练习。
x = "There are %d types of people." % 10
%d
是Signed integer decimal
的格式化字符(大多数人在听到“数字”时都会想到)。 10以十进制表示并插入到字符串中,从而产生字符串There are 10 types of people.
。
练习:"7+6: %d" % (7+6)
会产生什么结果?在你的Python shell中测试它
练习:"0x12: %d" % 0x12
会产生什么结果?在Python shell中测试它。
提示:前缀0x
表示以下数字为hexadecimal,即基数为16而不是10。
binary = "binary"
do_not = "don't"
y = "Those who know %s and those who %s." % (binary, do_not)
%s
插入值的字符串表示形式。这个例子表明,如果格式字符串中有多个%d
,%s
左右,我们需要在元组中给出该数量的参数或者列表。元组(圆形,大括号)和列表[方形,大括号]之间的区别在于元组是不可变的(即无法更改),但列表可以。
练习:给定元组x = ('world', 'Hello')
,构造一个具有正确单词顺序的元组y
。 Dive Into Python's introduction of tuples将帮助您了解元组的基础知识。
print "I said: %r." % x
%r
是值的表示,理想情况下您可以输入到Python shell中。您可以使用repr
函数获得相同的表示。例如,repr("a") == "'a'"
,而str(a) == "a"
。对于除字符串以外的大多数类型,repr
和str
(或格式字符串中的%r
和%s
)的结果相同。
print w + e
这个连接两个字符串(即一个接一个地放置)。请注意,如果两个参数都是数字,则+
表示其他内容(添加)。
练习:"3" + "4"
的结果是什么?在你的Python shell中测试它
练习:给定x = "3"; y = "4"
,打印出总和7(Hint)。