Skip to main content

bank account simple project on python .


  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
import pickle

accounts=dict()
class Account:
    """SImple bank account """

    def __init__(self,name,balance):
        self.name=name
        self.balance=balance

    def getname(self):
        return self.name



    def deposit(self,amount):
        if amount>0:
            self.balance+=amount
    def withdraw(self,amount):
        try:
            assert (amount>0)
        except:
            print("NO negative amount could be withdrawn")
        try:
            assert (balance-amount>0)
        except :
            print("maximum balance that could be withdrawn =",balance)
        balance-=amount
    def showbalance(self):
        print("*"*80,"\n\t\tCurrent Balance->",self.balance,"\b\n","*"*79)
        return self.balance

    def getbalance(self):
        return  self.balance


def new():
    while True:
        name=''
        print("\n1.to Add an Account \n2.Deposit\n3.Withdraw\n4.View Balance\n5.View All Accounts Currenty Available \n6.Exit   \n S or s to save ")
        choice=input()
        if choice=='1':
            name=input("Enter name->")
            temp=Account(name,0.0)
            accounts[name]=temp

        elif choice=='2':
            if name=='':
                name=input("Enter Name:->")
            if name in accounts.keys():
                print("how much to add")
                amount=float(input())
                if name in accounts:
                    temp=accounts[name]
                    temp.deposit(amount)
                else:
                    print('Error Account Do not exist ')

        elif choice=='3':
            if name=='':
                name=input("Enter Name:->")
            if name in accounts.keys():
                print("how much to Withdraw")
                amount=float(input())
                if name in accounts:
                    temp=accounts[name]
                    temp.withdraw(amount)
                else:
                    print('Error Account Do not exist ')
        elif choice=='4':
            if name=='':
                name=input("Enter Name:->")

            if name in accounts:
                temp=accounts[name]
                temp.showbalance()
            else :
                print('Error Account Do not exist ')
        elif choice=='6':
            break
        elif choice=='121':
            print(accounts)
        elif choice=='5':
            print('*'*120)
            print('\n\tName\t\t\t\t\tBalance')
            for key in accounts.keys():
                print('-' * 80)
                print('\t',key,'\t\t\t\t\t',accounts[key].getbalance())
                print('-' * 80)

            print('*' * 120)
        elif choice=='s' or 'S':
            pic_file = open('account_dump', 'ab')
            key_file = open('keydump', 'wb')
            pickle.dump(accounts, key_file)
            key_file.close()
            for key in accounts.keys():
                temp = accounts[key]
                print("temp being dumped", temp)
                temp.showbalance()
                pickle.dump(temp, pic_file, protocol=pickle.HIGHEST_PROTOCOL)
                pickle.dump(temp.balance, pic_file, protocol=pickle.HIGHEST_PROTOCOL)

            pic_file.close()
        else :
            print ('Please give correct input ')
            pass


def load():
    try:
       temp=open('keydump','rb')
       temp2=open('account_dump','rb')
    except Exception:
         print("NO previous record found . Start a new banking ")
         menu()
    details=pickle.load(temp2)
    key_details=pickle.load(temp)
    print('printing Key details')
    print(key_details)
    for i in (key_details):
        details = pickle.load(temp2)
        print("----1----",details.getbalance())
        accounts[i]=details
        details = pickle.load(temp2)
        print("----2----", details.getbalance())
    print('printing acc details')
    print(accounts)
    print('loading complete')
    temp2.close()
    temp.close()
    new()

def menu():
    choice=input('1.NEW Banking ---RESTART\n2.Load->')
    if choice=='1':
        new()
    if choice=='2':
        load()
    if choice=='q' or choice=='Q':

        exit()

    menu()

if __name__=="__main__":
    menu()

Comments

Popular posts from this blog

13 websites to register your free domain

Register your Free Domain Now!! 1)  .tk Dot TK is a FREE domain registry for websites on the Internet. It has exactly the same power as other domain extensions, but it’s free! Because it’s free, millions of others have been using .TK domains since 2001 – which makes .TK powerful and very recognizable.  Your website will be like www.yourdomainname.tk . It is free for 1 year. It’s a ccTLD domain whixh having the abbreviation  Tokelau. To create a .tk domain, Visit   www.dot.tk 2) co.cc Co.cc is completely free domain which is mostly used by blogspot bloggers because of it’s easy to use DNS system. Creating a co.cc for blogger is simple ( for instructions- “click here”). Your website will be like www.yourdomainname.co.cc . To create a .co.cc domain, visit www.co.cc 3)   co.nr co.nr is too like co.cc. Your website will be like  www.yourdomainname.co.nr . You can add it for blogger also.. To create a .co.cc domain, vi...

How to Put Google Adsense Below Post Title in Blogger?

Adsense is used by majority of expert bloggers for their website monetization because it is a cookie based contextual advertising system that shows targeted ads relevant to the content and reader. As bloggers are paid on per click basis, they try various ad placements on the blog to  increase the revenue  and get maximum clicks on the ad units. Well, on some blogs, you might have seen Adsense ad units placed below the post title. Do you know why? It is because the area just below the post title gets the most exposure and is the best place to put AdSense ad units to increase  Click Through Rate (CTR). Even though ads below post title work like a charm but this doesn’t mean that it will work for you as well. If you want to find out the best AdSense ads placement for your blog, try experimenting by placing ads at various locations such as header, sidebar, footer, etc. You can try other  blog monetization methods  as well to effectively monetize y...

Binary Search Tree in C++( dynamic memory based )

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 #include<bits/stdc++.h> using namespace std; struct bst { int val; bst * left, * right; }; bst * root = nullptr; void srch ( int num,bst * head) { if (head == nullptr){ cout << " \n Number is not present \a " << endl; return ; } if (head -> val == num) { cout << " \n Number is present \n\a " ; return ; } else { if (num < head -> val) srch(num,head -> left); else srch(num,head -> right); ...

Binary Search Tree in Java implementation (reference based, dynamic memory)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 import java.util.Scanner ; class BST { static BST . Node root = null ; public void insert ( int num ) { if ( root == null ) { root = new BST . Node ( num ); } else { // root node is not empty BST . Node temp = root ; while ( temp != null ) { if ( num <= temp . getVal ()) { if ( temp . getLeft () != null ) temp = temp . getLeft (); ...

Streamlining Java Web Application Deployment with React WAR Generator

In the ever-evolving world of web development, managing builds and deployments can often be cumbersome and error-prone. Today, we're excited to introduce a tool designed to simplify and streamline this process: the React WAR Generator . What is the React WAR Generator? The React WAR Generator is a Python-based tool that automates the creation of WAR (Web Application Archive) files for Java web applications. It caters specifically to frontend projects built with React or similar frameworks, making it easier to package and deploy your web applications to a Tomcat server. Key Features Profile-Based Builds : With support for multiple profiles ( dev , test , prod , default ), you can build your application according to different environments and configurations. Version File Generation : Optionally generate a version file that integrates versioning information directly into your TypeScript files, ensuring your build versions are always up-to-date. Tomcat Deployment : Simplify your deploy...

python program to Print Starting Series OF Indian Mobile Number for a State or operator or both

import requests import urllib.request import time from bs4 import BeautifulSoup as bs import re url = ' https://en.wikipedia.org/wiki/Mobile_telephone_numbering_in_India' state_to_extract = "UE" #if set to None all state is considered telecom_to_extracted = None #if set to none all operator from particular city is extracted response = requests . get(url) print (response) soup = bs(response . text, "html.parser" ) one_a_tag = soup . findAll( 'tr' )[ 35 :] lst = [] for k in one_a_tag: s = k . findAll( 'td' ) limit = len (s) i = 0 while True : if i == limit: break no = s[i] . text i += 1 if i == limit: break operator = s[i] . text i += 1 if i == limit: break state = s[i] . text i += 1 if i == limit: break res = f "{no} {operator} {state}" if state_to_extract is None : if telecom_to_extracted is None : lst . append(no) elif telecom_to_e...

Python program to find Sexy primes

a,b=input("Enter the Range Seprated by space ->" ).split(' ') primes=list() for i in range(int(a),int(int(b)+1)):     flag=1     for j in range(2,i):         if i%j==0:             flag=0             break     if flag==1:         primes.append(i) count=0 for j in primes:     if j+6 in primes:         count+=1 print(count). example: 4 40 output 7

Java API call Example using GSON, org.json.json and Jackson [ Simple Get Call] and parsing result as JSON

import com.fasterxml.jackson.databind.JsonNode ; import com.fasterxml.jackson.databind.ObjectMapper ; import com.google.gson.* ; import org.json.JSONArray ; import org.json.JSONObject ; import java.io.* ; import java.net.HttpURLConnection ; import java.net.URL ; public class APICALL { public static void main (String[] args) throws IOException { // String url="https://mocki.io/v1/19a50724-c2e5-46a1-b457-543462cdfde2"; String url= "https://jsonplaceholder.typicode.com/users" ; String line ; StringBuilder resp= new StringBuilder() ; System. out .println(url) ; HttpURLConnection con= (HttpURLConnection) new URL(url).openConnection() ; con.setRequestMethod( "GET" ) ; con.setRequestProperty( "Accept" , "application/json" ) ; System. out .println(con.getResponseMessage()) ; System. out .println(con.getContentType()) ; InputStream inputStream=con.getInput...

[solution] Motorola moto G5S plus | xt1804|Sanders Magisk error 1 : cannot mount /vendor

Error: mainly all error 1 errors. can not mount /vendors... Cause : Since your current TWRP is not treble supported ,You need a Treble supported Recovery. Solution : Simpally download this file and then flash it .  this recovery is treble supported 1. VIA TWRP boot to twrp recovery  goto install .  touch on install image and then select this downloaded file (.img)  select recovery  then flash it 2. Using fastboot fastboot flash recovery <(downloaded.img)> NOW YOU CAN FLASH MAGISK zip file via recovery LINK : TWRP_SANDERS_r22_BY_GENETIC ENGINEER