编写一个名为longest的python函数,该函数带有两个参数(您可以放心地假设所有参数始终是字符串)。 调用此函数时,应确定哪个字符串更长,然后返回该字符串。
我的代码:
def longest(word1, word2):
if word1 < word2:
return word2
else:
return word1
调用此函数时,应确定哪个字符串更长,然后返回该字符串。
答案 0 :(得分:1)
<
运算符不比较字符串的长度,而是比较它们按字母顺序排序的顺序。而是尝试len(word1) < len(word2)
。
答案 1 :(得分:0)
为了使用<
进行字符串长度的长度比较,您需要创建自己的类,该类应该是内置str
的子类。让该子类与str
相同的名称。
<
运算符是使用称为__lt__()
的方法实现的,在您的子类中,您需要实现此方法。您也可以为__le__()
运算符实现<=
。您可能需要根据需要覆盖其他运算符。
因此您的子类定义将如下所示:
class str(str):
def __lt__(self, other):
return len(self) < len(other)
def __le__(self, other):
return len(self) <= len(other)
现在,您可以使用方法来获取最长的单词,如下所示:
def longest(word1, word2):
if str(word1) < str(word2):
return word2
else:
return word1
str(word1)
在这里很重要,因为默认情况下,字符串创建将使用内置str
类,但是您应该使用子类str
类。这种方法相当复杂,因此您可以使用len(word)
来获取单词的长度,然后使用它来找到最长的字符串。