diff --git a/lab-python-oop.ipynb b/lab-python-oop.ipynb index c13bc58..b2a2c09 100644 --- a/lab-python-oop.ipynb +++ b/lab-python-oop.ipynb @@ -56,21 +56,49 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "21625526-3fae-4c55-bab5-f91940070681", "metadata": {}, "outputs": [], "source": [ "# your code goes here\n", - "\n" + "class BankAccount:\n", + " def __init__(self, saldo):\n", + " self.saldo = saldo\n", + " self.account_numer = id(self)\n", + "\n", + " def get_balance(self):\n", + " return self.saldo\n", + " \n", + " def get_account_number(self):\n", + " return self.account_numer\n", + " \n", + " def deposit(self, amount):\n", + " self.saldo += amount if amount > 0 else 0\n", + "\n", + " def withdraw(self, amount):\n", + " self.saldo -= amount if amount > 0 else 0" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "id": "ee789466-d4cf-4dd8-b742-6863d42c3e5c", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Account 1 balance: 1000\n", + "Account 1 number: 2192911269184\n", + "Account 2 balance: 500\n", + "Account 2 number: 2192911259344\n", + "Account 1 balance after transactions: 1300\n", + "Account 2 balance after transactions: -100\n" + ] + } + ], "source": [ "# Testing the BankAccount class\n", "# Creating two instances of the BankAccount class with initial balances of 1000 and 500\n", @@ -117,12 +145,23 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "id": "4f8848b5-05d3-4259-9e24-914537926778", "metadata": {}, "outputs": [], "source": [ - "# your code goes here" + "class SavingsAccount(BankAccount):\n", + " def __init__(self, saldo, interest_rate = 0.01):\n", + " self.interest_rate = interest_rate\n", + " super().__init__(saldo)\n", + "\n", + "\n", + " def add_interest(self):\n", + " self.saldo *= (1 + self.interest_rate)\n", + "\n", + "\n", + " def get_interest_rate(self):\n", + " return self.interest_rate" ] }, { @@ -151,12 +190,30 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "id": "bccc7f6d-d58c-4909-9314-aaf4afc1cd30", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Current balance: 127.5\n", + "Interes rate: 0.02\n" + ] + } + ], "source": [ - "# your code goes here" + "saving_accounts = SavingsAccount(100, 0.02)\n", + "\n", + "saving_accounts.deposit(50)\n", + "\n", + "saving_accounts.withdraw(25)\n", + "\n", + "saving_accounts.add_interest()\n", + "\n", + "print(f\"Current balance: {saving_accounts.saldo}\")\n", + "print(f\"Interes rate: {saving_accounts.interest_rate}\")" ] }, { @@ -189,12 +246,38 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "id": "3c883c6e-3cb8-4043-92d3-12409668a28e", "metadata": {}, "outputs": [], "source": [ - "# your code goes here" + "class CheckingAccount(BankAccount):\n", + " def __init__(self, saldo, transaction_fee = 1):\n", + " self.transaction_fee = transaction_fee\n", + " self.transaction_count = 0\n", + " super().__init__(saldo)\n", + "\n", + " def deduct_fees(self):\n", + " deductions = self.transaction_fee * self.transaction_count\n", + " if deductions > self.get_balance(): print('Error: saldo insuficiente')\n", + " else: \n", + " self.saldo -= deductions\n", + " print(f\"Deducciones: {deductions}\")\n", + " self.reset_transactions()\n", + "\n", + " def reset_transactions(self):\n", + " self.transaction_count = 0\n", + "\n", + " def get_transaction_count(self):\n", + " return self.transaction_count\n", + " \n", + " def deposit(self, amount):\n", + " super().deposit(amount)\n", + " self.transaction_count += 1\n", + " \n", + " def withdraw(self, amount):\n", + " super().withdraw(amount)\n", + " self.transaction_count += 1" ] }, { @@ -234,18 +317,45 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "id": "faa5b148-c11b-4be0-b810-de8a7da81451", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Deducciones: 4\n", + "Saldo: 546\n", + "Deducciones: 4\n", + "Saldo: 667\n" + ] + } + ], "source": [ - "# your code goes here" + "checking_acc = CheckingAccount(500, 2)\n", + "\n", + "checking_acc.deposit(100)\n", + "\n", + "checking_acc.withdraw(50)\n", + "\n", + "checking_acc.deduct_fees()\n", + "\n", + "print(f\"Saldo: {checking_acc.saldo}\")\n", + "\n", + "checking_acc.deposit(200)\n", + "\n", + "checking_acc.withdraw(75)\n", + "\n", + "checking_acc.deduct_fees()\n", + "\n", + "print(f\"Saldo: {checking_acc.saldo}\")" ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "Python 3", "language": "python", "name": "python3" }, @@ -259,7 +369,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.13" + "version": "3.12.5" } }, "nbformat": 4,