Глобальное имя 'transact' не определено при попытке запустить мою простую программу - PullRequest
0 голосов
/ 08 марта 2019

Я должен создать эту программу для класса.В различных постах я читал, что списки в Python уже глобальны и могут использоваться в операторах def.

Вот некоторые ресурсы, которые я нашел, которые сказали это:
Как определить глобальный список в Python и добавить локальный список к нему
Как объявитьглобальный список python
глобальные списки Python

Ни одно из этих решений не помогло мне, и в настоящее время я пытаюсь это выяснить.Возможно, мне просто придется переписать его, чтобы он не использовал «параметры ...».У меня также есть много символов "\ n", чтобы он выглядел так, будто он прокручивается от старых выходов, потому что учитель не хочет их видеть.

Вот код, с которым у меня проблема:

#!/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()

1 Ответ

0 голосов
/ 08 марта 2019

Возможно, это потому, что вы декларируете transac = [] вместо transact = [] внизу своего кода?

...