如何在python中使用类

2024-05-16 00:03:41 发布

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

我有一个书单和用户对这本书的评价列表。

[用户1,2,1,3,6]…
[用户2,4,1,4 2]…

[第1、2、3、4册]
评级来自(1-4)

示例 如果第一册是“教皇”
这本书的内容是[3,3,3,2]
打印出来的是 教皇[3,3,3,2][]

使用类

这是我们班的布置图。

class Book(object):
      booktotal=0
      accept=[]
      def __init__(self, Title= " ", Rating=()):
          self.scale=[1,2,3,4]
          self.book = Title
          self.rating= Rating
          self.accept=[]
          book.population +=1
      def AddRating(self,rating):
          if rating in self.scale:
              accepted.append(rating)
          else:
              pass

          return self.accept

      def Average(self):
          Avg=sum[accept]/3

      def __str__(self):
          return '{0} - {1} - {2}'.format(self.book, self.rating,self.accept)

我怎样才能打印出平均值和评论数


Tags: 用户self示例列表returntitledef评价
1条回答
网友
1楼 · 发布于 2024-05-16 00:03:41

你所拥有的可以大大减少。

  • population在任何地方都没有定义。所以这是个错误。
  • 你的平均计算是错误的。它只需要在__str__方法中计算。
  • 使用len函数获取列表中元素的数量。

    class Book(object):               
      scale=(1,5)
    
      def __init__(self, title):        
          self.title = title
          self.ratings = []
    
      def rate(self,rating):
          if rating in range(self.scale[0]-1, self.scale[1]+1):
              self.ratings.append(rating)
    
      def __str__(self):
          return '"{0}" rates an average of {1} from {2} reviews.'.format(
             self.title, sum(self.ratings)/float(len(self.ratings)), len(self.ratings))
    
    >> mybook = Book('Zen of Python')
    >> mybook.rate(5)
    >> mybook.rate(3)
    >> mybook.rate(5)
    >> str(mybook)
    >> "Zen of Python" rate an average of 4.333333333 from 3 reviews.
    

相关问题 更多 >