Python的概念协助

时间:2014-03-30 22:31:12

标签: python if-statement for-loop

所以我给出了一个我必须找到解决方案的问题。我的问题错了,但我想知道为什么正确的答案是正确的。有人可以为我解释以下代码的解决方案吗?

dog='Zoomie'
pattern=''
for letter in dog:
    inPattern=False
    if dog.count(letter)>1:
        pattern+=letter
        inPattern=True
    if dog.count(letter)>0 and inPattern==False:
        pattern+=letter
    else:
        pattern+='.'

输出为:Zo.o.mie

虽然这是一个非常简单和基本的Python问题,但它仍然让我感到困惑。

1 个答案:

答案 0 :(得分:0)

该程序正在为整个字符串中出现一个或多个字母的任何字母添加点。

  • 在第一次传递时,Z没有大于1的字母数。inPattern未设置,因此我们只需附加到pattern
  • 在第二次传递中,我们有多次出现o,因此我们将该字母附加到模式并将标记inPattern设置为True。由于inPattern不是False,我们会将.附加到pattern

其余的内容与此非常相似。

看看其他的词,比如“赛车”或“aplanamanacanalpanama”(两个明显的回文),看看你最终会得到什么。 (老实说,我希望[几乎]每个字母之间都有点。)