你寻找字谜的方法是完全合理的。对单词进行排序并比较它们是找出两个单词是否是彼此的字谜的最简单方法。
但是,我认为您对函数参数的概念感到困惑。当你定义
foo(x1, x2)
当foo
被调用时,预计会使用 2 个参数调用。你定义
anagram(s1, s2)
但永远不要为它提供 s1 和 s2。参数列表不是您在函数中使用的变量名称列表——您可以随意分配新变量。相反,它是函数采用的输入列表。
所以,anagram()
是不正确的。你需要打电话anagram(input1, input2)
。(假设您没有默认值,我不会进入。
def isAnagram(s1, s2):
sortedWord1 = sorted(s1) # s1 is word1! (sorted instead of sort, strings are immutable)
#what should you do here?
if sortedWord1 == sortedWord2:
print("This is an anagram")
else:
print("This is not an anagram") # you forgot a closing quote!
word1 = input("Enter a string: ")
word2 = input("Enter a second string: ")
isAnagram(word1, word2)
我非常轻微地更改了您的代码,以便它应该做正确的事情。不过,我建议您在继续之前多阅读一下函数。
把它们想象成数学中的函数!f(x)
是有意义的f
,虽然仍然有意义,但可能不是您想要的。
>>> isAnagram("anagram", "nagaram")
This is an an anagram
>>> isAnagram("anagram", "woohoo")
This is not an anagram
>>> isAnagram("a", "a")
This is an an anagram