while循环检查python中的字谜

Posted

技术标签:

【中文标题】while循环检查python中的字谜【英文标题】:while loop to check anagrams in python 【发布时间】:2017-05-19 05:44:03 【问题描述】:

我有以下练习: 如果您可以重新排列一个字母以拼写另一个单词,则两个单词是字谜。 编写一个名为 is_anagram 的函数,它接受两个字符串,如果它们是字谜,则返回 True。

我开发了一个功能,但它不能正常工作,我不知道为什么。谁能告诉我我做错了什么?非常感谢。

def isa(s,t):  
    if len(s)!=len(t):  
        print "impossible"  
    if len(s)==len(t):  
        i=0  
        while i<len(s)-1:  
            for i in s:  
                if i in t:  
                    print "yay"  
                print "NO"

【问题讨论】:

你似乎没有增加i,这是在你的while-loop的条件下使用的。另外,我对whilefor 循环的组合感到困惑。只需for-loop 就足够了。 试试def isa(t,s): return sorted(t)==sorted(s)。这会将字符串以相同的顺序排列,然后进行比较。 非常感谢,阿卜杜。我已经消除了 while 循环并应用了一些更改。现在它起作用了。再次感谢您。 【参考方案1】:
import collections

def is_anagram(s,t):
    return collections.Counter(s) == collections.Counter(t)

【讨论】:

感谢您的及时回答,但不是我要找的。我想调试我用while循环开发的结构并理解我的错误 @Ajla 你最好的办法就是继续破解它......总是

以上是关于while循环检查python中的字谜的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 中的另一个 while 循环中正确地创建一个 while 循环?

Python while 循环使用实例

python循环语句

Python循环语句

Python从入门到进阶10流程控制语句-循环语句(for-while)

python基础入门while循环 格式化 编码初识