我是python编程新手,正在学习python 4课程。为此,我需要建立一个预算应用程序。具体而言,这是前两项任务:
在budget.py中完成类别类。它应该能够根据不同的预算类别(如食品、服装和娱乐)实例化对象。创建对象时,将以类别的名称传递对象。该类应该有一个名为ledger的实例变量,它是一个列表。该类还应包含以下方法:
接受金额和描述的存款方法。如果没有给出描述,则默认为空字符串。该方法应以{“金额”:金额,“说明”:说明}的形式将对象附加到分类帐列表中
一种类似于存款法的提取方法,但传入的金额应作为负数存储在分类账中。如果没有足够的资金,则不应在分类账中添加任何内容。如果提取发生,此方法应返回True,否则返回False
我目前的尝试如下:
class Category:
def __init__(self):
self.ledger = []
Total = 0
def deposit(self, amount, *description):
self.ledger.append({"amount": amount, "description": description})
return self.ledger
def withdraw(self, withdrawal):
for x in self.ledger:
if x == int():
return sum
self.ledger.append({"withdrawal": withdrawal})
return self.ledger
我想我有很多问题:
我真的很感谢每一个帮助,也很感谢一些背景知识
提前谢谢! 卢卡斯
所以,有些事情需要澄清
self.ledger = []
:[]
使分类账成为一个列表,self.
部分使其成为一个实例变量,仅适用于类类别的特定实例{"key": "value"}
是一个dict对象。使用self.ledger.append({"key": "value"})
将dict对象{"key": "value"}
添加到分类账列表中李>self.total
的用法李>update_total()
李>我在下面添加了一些测试
{}
是空的dict。空集是set()
对于提取功能,应该这样做:
这将使用生成器作为内置和函数的参数。如果您刚刚开始使用python,这可能有点高级,因此您还可以使用更为初学者友好的代码来计算平衡:
这大致相当于
sum
和生成器语法的作用出于好奇,您的
deposit
函数中description
参数前面的*
是一个输入错误吗相关问题 更多 >
编程相关推荐