Python:脚本逐字打印字典值,而不是完整的单词?

2024-09-30 01:29:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一门课:

class Bike(object):
    """Parent class for bikes"""

    def __init__(self, name, weight, cost):
        self.name = name
        self.weight = weight
        self.cost = cost

    def model(self):
        for trait in self.name:
            print trait

    def pounds(self):
        for trait in self.weight:
            print trait

    def money(self):
        for trait in self.cost:
            print trait

我创建了一个包含几个键/值关联的字典:

^{pr2}$

6辆以上的自行车

当我试着运行它们时:

bikes['bike1'].model()
bikes['bike1'].pounds()
bikes['bike1'].money()

我确实得到了名字,重量和成本的指纹

但它逐字打印出来:

T

r

k

e

0

1

0

0

我错过了什么?在


Tags: nameinselfformodeldefclassprint
3条回答
for trait in self.name:
        print trait

trait作为字符串self.name中的每个字符进行处理,并对字符串中的每个字符执行循环体。所以每个字符都被打印在一个单独的行上。你想用一个单词和一行打印出名字是这样的。其他方法和属性也是如此:

^{pr2}$

这些线条:

        for trait in self.name:
            print trait

在自身名称字符串是一个字符串。如果你在一个字符串上循环,你会得到一个接一个的单个字符。因此,print语句将逐个打印每个字符。如果要打印模型的名称,只需:

^{pr2}$

你根本不需要循环。在

因为自身名称, 自身成本是字符串。 如果将这些值包装到列表中,就不会遇到这个问题 例如

Bike(["Trike"], ["20"], ["100"])

另一种方法是直接在.model(),.pounds(),.money()中打印它们,而不使用 for循环

相关问题 更多 >

    热门问题