class Accounting: def __init__(self,income,pay): self.i=income self.p=pay def surplus(self): incomes=sum(self.i) pays=sum(self.p) sur=incomes-pays print("一年剩余{}".format(sur)) def average(self): incomes_avg=sum(self.i)/len(self.i) pay_avg=sum(self.p)/len(self.p) print("平均收入{}\平均支出{}".format(incomes_avg,pay_avg)) li1=[5000,5200,5500,5300,5000,5600,5100,5422,5200,5000,5422,5300] li2=[1000,900,1100,500,800,2000,700,1000,1000,900,1100,1000] a1=Accounting(li1,li2) a1.surplus() a2.average() 帮我看一下这些代码哪里出错了
时间: 2023-12-04 15:02:08 浏览: 66
是否欢迎多媒体融合?-研究论文
这段代码存在两个问题:
1. 在 `a1.average()` 调用时,应该是 `a1.average()` 而不是 `a2.average()`。
2. 在 `average` 方法中,字符串格式化中的 `\` 与后面的字符连起来,会形成转义字符,导致程序报错。应该修改为 `print("平均收入{}\平均支出{}".format(incomes_avg,pay_avg))`。
修改后的代码如下:
```python
class Accounting:
def __init__(self, income, pay):
self.i = income
self.p = pay
def surplus(self):
incomes = sum(self.i)
pays = sum(self.p)
sur = incomes - pays
print("一年剩余{}".format(sur))
def average(self):
incomes_avg = sum(self.i) / len(self.i)
pay_avg = sum(self.p) / len(self.p)
print("平均收入{}平均支出{}".format(incomes_avg, pay_avg))
li1 = [5000, 5200, 5500, 5300, 5000, 5600, 5100, 5422, 5200, 5000, 5422, 5300]
li2 = [1000, 900, 1100, 500, 800, 2000, 700, 1000, 1000, 900, 1100, 1000]
a1 = Accounting(li1, li2)
a1.surplus()
a1.average()
```
这样代码就没有问题了,可以正常运行。
阅读全文