尝试运行我的简单程序时未定义全局名称“transact”

问题描述 投票:0回答:1

我必须为一个类创建这个程序。我一直在读各种帖子,Python中的列表已经是全局的,可以在def语句中使用。

以下是我发现的一些资源: How to define a global list in python and append local list to it How to declare python global list Python global lists

这些解决方案都没有帮助我,我目前正试图解决这个问题。我可能只需重写它,以便它不使用“选项......”。我也有很多“\ n”s使它看起来像是滚动远离旧输出,因为老师不想看到它们。

这是我遇到问题的代码:

#!/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()
python python-2.7 list global
1个回答
0
投票

是因为你在代码底部声明transac = []而不是transact = []

© www.soinside.com 2019 - 2024. All rights reserved.