Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

lab valeria completado #52

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
169 changes: 152 additions & 17 deletions lab-python-oop.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -56,21 +56,63 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 71,
"id": "21625526-3fae-4c55-bab5-f91940070681",
"metadata": {},
"outputs": [],
"source": [
"# your code goes here\n",
"\n"
"\n",
"class BankAccount:\n",
"\n",
" last_account_number = 100\n",
"\n",
" def __init__(self, balance=0):\n",
" self.account_number = BankAccount.last_account_number\n",
" BankAccount.last_account_number += 1\n",
" self.balance = balance\n",
"\n",
" def deposit(self, amount):\n",
" if amount > 0:\n",
" self.balance += amount\n",
" else:\n",
" print(\"Deposit amount must be positive.\")\n",
" \n",
" def withdraw(self, amount):\n",
" if 0 < amount <= self.balance:\n",
" self.balance -= amount\n",
" else:\n",
" print(\"Insufficient funds or invalid amount.\")\n",
" \n",
" def get_balance(self):\n",
" return self.balance\n",
"\n",
" def get_account_number(self):\n",
" return self.account_number\n",
" \n",
"\n",
" "
]
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 72,
"id": "ee789466-d4cf-4dd8-b742-6863d42c3e5c",
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Account 1 balance: 1000\n",
"Account 1 number: 100\n",
"Account 2 balance: 500\n",
"Account 2 number: 101\n",
"Account 1 balance after transactions: 1300\n",
"Insufficient funds or invalid amount.\n",
"Account 2 balance after transactions: 500\n"
]
}
],
"source": [
"# Testing the BankAccount class\n",
"# Creating two instances of the BankAccount class with initial balances of 1000 and 500\n",
Expand Down Expand Up @@ -117,12 +159,26 @@
},
{
"cell_type": "code",
"execution_count": null,
"id": "4f8848b5-05d3-4259-9e24-914537926778",
"execution_count": 84,
"id": "0dc458a0",
"metadata": {},
"outputs": [],
"source": [
"# your code goes here"
"class SavingAccount(BankAccount):\n",
" last_account_number = 200 #to differentiate from normal bank accounts, saving accounts will start with a number 2\n",
"\n",
" def __init__(self, balance=0, interest_rate =0.01):\n",
" super().__init__(balance)\n",
" self.account_number = BankAccount.last_account_number\n",
" BankAccount.last_account_number += 1\n",
" self.interest_rate = interest_rate\n",
"\n",
" def add_interest(self):\n",
" self.balance += (self.interest_rate*self.balance)\n",
" return self.balance\n",
"\n",
" def get_interest_rate(self):\n",
" return self.interest_rate \n"
]
},
{
Expand Down Expand Up @@ -151,12 +207,27 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 85,
"id": "bccc7f6d-d58c-4909-9314-aaf4afc1cd30",
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Current balance: 127.5\n",
"Interest rate: 0.02\n"
]
}
],
"source": [
"# your code goes here"
"savingsaccount1 = SavingAccount(100,0.02)\n",
"\n",
"savingsaccount1.deposit(50)\n",
"savingsaccount1.withdraw(25)\n",
"savingsaccount1.add_interest()\n",
"print(\"Current balance:\", savingsaccount1.get_balance())\n",
"print(\"Interest rate:\", savingsaccount1.get_interest_rate())\n"
]
},
{
Expand Down Expand Up @@ -189,12 +260,52 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 97,
"id": "3c883c6e-3cb8-4043-92d3-12409668a28e",
"metadata": {},
"outputs": [],
"source": [
"# your code goes here"
"class CheckingAccount(BankAccount):\n",
" last_account_number = 300 #to differentiate from other bank accounts, checking accounts will start with a number 3\n",
" transaction_count = 0\n",
"\n",
" def __init__(self, balance=0, transaction_fee=1,):\n",
" super().__init__(balance)\n",
" self.account_number = BankAccount.last_account_number\n",
" BankAccount.last_account_number += 1\n",
" self.transaction_fee = transaction_fee\n",
" self.transaction_count = CheckingAccount.transaction_count\n",
"\n",
" def deposit(self, amount):\n",
" if amount > 0:\n",
" self.balance += amount\n",
" self.transaction_count += 1\n",
" else:\n",
" print(\"Deposit amount must be positive.\")\n",
" \n",
" def withdraw(self, amount):\n",
" if 0 < amount <= self.balance:\n",
" self.balance -= amount\n",
" self.transaction_count += 1\n",
" else:\n",
" print(\"Insufficient funds or invalid amount.\")\n",
"\n",
" def deduct_fees(self):\n",
" amount_to_deduct = self.transaction_count*self.transaction_fee\n",
" if amount_to_deduct <= self.balance:\n",
" self.balance -= amount_to_deduct\n",
" self.transaction_count = 0\n",
" print(f\"Transaction fees of {amount_to_deduct}$ have been deducted from your account balance\")\n",
" else:\n",
" print(\"Error. Not enough funds in the account.\")\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",
"\n"
]
},
{
Expand Down Expand Up @@ -234,12 +345,36 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 98,
"id": "faa5b148-c11b-4be0-b810-de8a7da81451",
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Transaction fees of 4$ have been deducted from your account balance\n",
"Current balance: 546\n",
"Transaction count: 0\n",
"Transaction fees of 4$ have been deducted from your account balance\n",
"Current balance: 667\n",
"Transaction count: 0\n"
]
}
],
"source": [
"# your code goes here"
"checkingaccount1 = CheckingAccount(500,2)\n",
"\n",
"checkingaccount1.deposit(100)\n",
"checkingaccount1.withdraw(50)\n",
"checkingaccount1.deduct_fees()\n",
"print(\"Current balance: \",checkingaccount1.get_balance())\n",
"print(\"Transaction count: \",checkingaccount1.get_transaction_count())\n",
"checkingaccount1.deposit(200)\n",
"checkingaccount1.withdraw(75)\n",
"checkingaccount1.deduct_fees()\n",
"print(\"Current balance: \", checkingaccount1.get_balance())\n",
"print(\"Transaction count: \", checkingaccount1.get_transaction_count())"
]
}
],
Expand All @@ -259,7 +394,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.13"
"version": "3.12.6"
}
},
"nbformat": 4,
Expand Down