Python 在没有全局变量的情况下如何编写?

Python 在没有全局变量的情况下如何编写?,python,function,global-variables,local-variables,Python,Function,Global Variables,Local Variables,我必须写一个程序,接受输入,写出输入的数字和分数。我的程序可以运行,但显然我只能使用局部变量。我需要更改什么,以便它只是局部变量?下面的两个变量是我当前用作全局变量的变量 # This program takes intger inputs and provides a grade value for each number entered number = 1 myNumbers = [] print("Please enter as many integer numbers as you

我必须写一个程序,接受输入,写出输入的数字和分数。我的程序可以运行,但显然我只能使用局部变量。我需要更改什么,以便它只是局部变量?下面的两个变量是我当前用作全局变量的变量

# This program takes intger inputs and provides a grade value for each number entered

number = 1
myNumbers = []

print("Please enter as many integer numbers as you would like. Enter -999 to exit loop")
# This function has the user input values and exit with a sentinel value -999
def getScores(number):
    sentinelValue = -999

    while(number != sentinelValue):
        number = eval(input("Enter an integer: "))

        if number > -1:
             myNumbers.append(number)

    print("Numbers entered: ")
    print(myNumbers, "\n")


# This function prints out the values with the appropriate letter grade
def printScores():

    print("Length of array = ", len(myNumbers))

    for i in range(0, len(myNumbers)):

        if myNumbers[i] >= 90:
            print(myNumbers[i], "is an A")
        if myNumbers[i] >= 80 and myNumbers[i] < 90:
            print(myNumbers[i], "is a B")
        if myNumbers[i] >= 70 and myNumbers[i] < 80:
            print(myNumbers[i], "is a C")
        if myNumbers[i] >= 60 and myNumbers[i] < 70:
            print(myNumbers[i], "is a D")
        if myNumbers[i] >= 0 and myNumbers[i] < 60:
            print(myNumbers[i], "is an F")
# The main function is where we will call the other functions and print out the results
def main():

    getScores(number)
    printScores()

# Call the main
main()
#此程序接受intger输入,并为输入的每个数字提供等级值
数字=1
myNumbers=[]
打印(“请输入任意数量的整数。输入-999退出循环”)
#此函数具有用户输入值,并使用sentinel值-999退出
def getScores(编号):
哨兵价值=-999
while(number!=sentinelValue):
number=eval(输入(“输入整数:”)
如果编号>-1:
myNumbers.append(数字)
打印(“输入的数字:”)
打印(MyNumber,“\n”)
#此函数用于打印具有适当字母等级的值
def printScores():
打印(“数组长度=,len(MyNumber))
对于范围(0,len(myNumbers))中的i:
如果MyNumber[i]>=90:
打印(MyNumber[i],“是A”)
如果myNumbers[i]>=80且myNumbers[i]<90:
打印(我的编号[i],“是a B”)
如果myNumbers[i]>=70且myNumbers[i]<80:
打印(我的编号[i],“是C”)
如果myNumbers[i]>=60且myNumbers[i]<70:
打印(我的编号[i],“是D”)
如果myNumbers[i]>=0且myNumbers[i]<60:
打印(MyNumber[i],“是F”)
#主函数是调用其他函数并打印结果的地方
def main():
获取分数(数字)
打印分数()
#打电话给总管
main()

我仍然应该有两个独立的功能

getScores
不需要输入数字。。。它可以在循环之前创建一个默认值。它可以返回它创建的列表,而不是写入全局变量。调用方记住该返回值并在下一次调用中使用它

# This program takes intger inputs and provides a grade value for each number entered

print("Please enter as many integer numbers as you would like. Enter -999 to exit loop")
# This function has the user input values and exit with a sentinel value -999
def getScores():
    sentinelValue = -999
    number = ''
    myNumbers = []
    while(number != sentinelValue):
        number = eval(input("Enter an integer: "))

        if number > -1:
             myNumbers.append(number)

    print("Numbers entered: ")
    print(myNumbers, "\n")
    return myNumbers

# This function prints out the values with the appropriate letter grade
def printScores(myNumbers):

    print("Length of array = ", len(myNumbers))
    # omit the rest for brevity...

# The main function is where we will call the other functions and print out the results
def main():
    scores = getScores()
    printScores(scores)

# Call the main
main()

我得到了main()的一个错误,scores=getScores(number),还有一个“NameError:name'number'未定义”我的坏。。。我想是复制/粘贴错误。更新后的代码有效。