0

I have to create this program for a class. I have been reading in various posts that lists in Python are already global and can be used in def statements.

Here are some of the resources I found that said this:
How to define a global list in python and append local list to it
How to declare python global list
Python global lists

None of these solutions have helped me and I am currently trying to figure this out. I might just have to rewrite it so that it doesn't use "options...". I also have a lot of "\n"s to make it look like it scrolls away from the old outputs because the teacher doesn't want to see them.

Here is the code I am having an issue with:

#!/usr/bin/python
import sys


def Switcher():
    selec  = 0
    while (1):
        print "\n\n\n\n\n\n\n\n\n\n\n\n\n"
        print "\n==== WELCOME TO SPACECODE'S BANK ===="
        print "==== Select an Option: ====\n"
        print "     0. Check Current Balance\n"
        print "     1. Deposit Money\n"
        print "     2. Withdraw Money\n"
        print "     3. Transaction History\n"
        print "     4. Exit\n"
        options = {0: zero,
            1: one,
            2: two,
            3: three,
            4: four
           }

        selection = input("\n")
        if (selection < 0) or (selection > 4):
            print '\n'
        else:
            selec = selection
            options[selec]()


def zero():
    global current
    print "\n\n\n\n\n\n\n\n\n\n\n\n\n"
    print "\n==== YOUR CURRENT BALANCE: ====\n"
    print current
    raw_input("\n Press enter to continue....")
    Switcher()

def one():
    print "\n\n\n\n\n\n\n\n\n\n\n\n\n"
    global current, i
    print "\n==== INPUT DEPOSIT AMOUNT: ====\n"
    add = input()
    current = add + current
    i =+ 1
    transact.append(i)
    account.append(current)
    raw_input("\n Press enter to continue....")
    Switcher()

def two():
    print "\n\n\n\n\n\n\n\n\n\n\n\n\n"
    print "\n==== INPUT AMOUNT TO WITHDRAWL: ====\n"
    global current, i
    temp = current
    wdrw = raw_input()
    if (temp == 0):
        print "==== YOU DONT HAVE ANY MONEY TO WITHDRAWL ====\n"
        Switcher()
    elif ((temp - wdrw) < 0):
        print "==== YOU CANT WITHDRAWL MORE THAN YOU HAVE IN BALANCE ====\n"
        two()
    elif ((temp - wdrw) >= 0):
        i =+ 1
        transact.append(i)
        current = temp - wdrw
        account.append(current)
        print "\n==== TRANSACTION SUCCESSFUL ====\n"
        raw_input("\n Press enter to continue....")
        Switcher()

def three():
    global i
    print "\n\n\n\n\n\n\n\n\n\n\n\n\n"
    print "\n ==== TRANSACTION HISTORY (SAVES LAST 30) ====\n"
    for w in range(len(trasac)):
        print(transac[w],"  :  ",account[w])
        print()
    raw_input("\n Press enter to continue....")
    Switcher(current)

def four():
    sys.exit()


   account = []
   current = 0
   transac = []
   i = 0
   Switcher()
Pika Supports Ukraine
  • 3,612
  • 10
  • 26
  • 42
SpaceCode
  • 3
  • 2

1 Answers1

0

Is it perhaps because you are declaring transac = [] instead of transact = [] at the bottom of your code?

Luke B
  • 2,075
  • 2
  • 18
  • 26
  • I am lost for words because of a typo.... It looked right in my eyes when I looked it over like 10 times but I never thought to look at the global variable itself to see if it was the same as the ones inside the 'Def's, thanks for pointing that out. I will make sure there are no issues with the names of the variables themselves before asking another question! Thank you! – SpaceCode Mar 08 '19 at 00:08