Python 显示太多要解压缩的值时出错,但只有两个参数

Python 显示太多要解压缩的值时出错,但只有两个参数,python,Python,Q) Write函数接受两个单词的字符串,如果两个单词都以相同的字母开头,则返回True 这是我试过的- def animal_crackers(text): for x,y in text.split(): if x[0].lower() == y[0].lower(): return True else: return False 下面是显示的错误- 要解压缩的值太多(应为2个) 对于text.spli

Q) Write函数接受两个单词的字符串,如果两个单词都以相同的字母开头,则返回True

这是我试过的-

def animal_crackers(text):
    for x,y in text.split():
        if x[0].lower() == y[0].lower():
            return True
        else:
            return False
下面是显示的错误-

要解压缩的值太多(应为2个)

对于text.split()中x,y的第2行-


我不明白为什么会出现这个错误,因为它只有两个字需要解包。

对于x,y在
中意味着要在多个对上循环。如果只有一对,则需要
x,y=

def animal_crackers(text):
    x, y = text.split()
    return x[0].lower() == y[0].lower()
顺便说一下,我简化了另一部分


解释 出现错误的原因是,您提供的第一个单词有两个以上的字母。例如:

def f(text):
    for x, y in text.split():
        return x[0].lower() == y[0].lower()

您正在解包这两个字符串,它们也在
for
循环中。这就是导致代码出错的原因

假设我们输入
“Lion Leapord”
,那么在第一次迭代中,您的函数在
x
y
中取'L'和'i'并比较它们,这可能不是您想要做的

那就换一个吧

text.split()中x,y的

因此,最终您的函数将如下所示:

def animal_crackers(text):
    x,y = text.split()
    print(x,y)
    if x[0].lower() == y[0].lower():
        return True
    else:
        return False
通过写作来测试它

animal_crackers("Lion Leapord")
给出
True

animal_crackers("Lion Elephant")

给出
False

您需要给我们文本,因为我们需要输入来验证您的script@pippo1980这应该是显而易见的。例如:
animal_-crackers('foo-bar')
应为false,
animal_-crackers('bar-baz')
应为true。但是,提供完整性的所有相关细节是有帮助的。参考资料:。@pippo1980实际上,我收回了一部分。错误取决于输入单词的大小。我只是想知道@ahmadh的答案。无意冒犯,但现在我们对字符串长度限制很好奇???
x,y在text.split()中:
是无效语法;我想你的意思是
x,y=text.split()
。同样,你的解释是错误的;“Lion”会导致错误,因为它超过两个字符。看。哦,我在这里写的时候犯了一个错误,但是我写的代码中没有复制相同的错误,你可以试试,它会工作得很好。我正在编辑我的答案,以纠正错误的路线。
def animal_crackers(text):
    x,y = text.split()
    print(x,y)
    if x[0].lower() == y[0].lower():
        return True
    else:
        return False
animal_crackers("Lion Leapord")
animal_crackers("Lion Elephant")