猿问

我是 Python 中 OOP 的初学者,并且在我的代码中得到“没有足够的值来解包”

class Fruits:

    def __init__(self,name,colour,taste,hasColour): 

        self.name = name

        self.colour = colour

        self.taste = taste

        self.hasColour = hasColour

    def hasAlternateColour(self):

        return self.hasColour


if __name__== "__main__":

    fruitList = []

    print("Enter name, colour, taste of the fruit")

    for itr in range(2):

        name,colour,taste = input().split()

        hasColour = input("Does it have another colour")

        fruitList.append(Fruits(name,colour,taste,hasColour))


    for fruit in fruitList:   

        print(fruit.name,fruit.colour,fruit.taste,fruit.hasAlternateColour(),sep="\t")

输出:


Enter name, colour, taste of the fruit

apple red sweet

Does it have another colour yes

错误:


> Traceback (most recent call last):   File

> "E:/Programs/pyoop/Fruitclass.py", line 15, in <module>

>     name,colour,taste = input().split() ValueError: not enough values to unpack (expected 3, got 0)


料青山看我应如是
浏览 109回答 1
1回答

慕森王

我的猜测是你已经按下Enter了循环的第二次迭代,只是因为程序没有任何消息就卡住了。您可以替换print为input并将其放入循环中,因此程序将始终以消息停止Enter name, colour, taste of the fruit::if __name__== "__main__":&nbsp; &nbsp; fruitList = []&nbsp; &nbsp; for itr in range(2):&nbsp; &nbsp; &nbsp; &nbsp; name, colour, taste = input("Enter name, colour, taste of the fruit ").split()&nbsp; &nbsp; &nbsp; &nbsp; hasColour = input("Does it have another colour ")&nbsp; &nbsp; &nbsp; &nbsp; fruitList.append(Fruits(name, colour, taste, hasColour))
随时随地看视频慕课网APP

相关分类

Python
我要回答