Как я могу использовать имя после возвращения его с функцией? - PullRequest
0 голосов
/ 15 октября 2019

Я беру базовый класс по компьютерному программированию и наткнулся на проблему, в которой я не знаю, как использовать переменную из предыдущей функции. Подсказка состоит в том, чтобы взять начальное и конечное значения и вычислить числа между ними. Как я могу это изменить?

Я действительно ничего не пробовал. Я действительно застрял.

def getStartNum():
    startValue = int(input("Enter starting number: "))
    while(startValue<0):
        print("Invalid input.")
        startValue = int(input("Enter starting number: "))
    return startValue
def getStopNum():
    stop = int(input("Enter the ending number: "))
    while(stop <= startValue):
        print("Ending number must be greater than the starting value.")
        stop = int(input("Enter the ending number: "))
    return stop
def sumOfNums(startValue, stop):
    total = 0
    for i in range(startValue, stop+1, 1):
        total+=i
    return total
def productOfNums(startValue, stop):
    product = 1
    for j in range(startValue, stop+1, 1):
        product*=i
    return product
st = getStartNum()
sp = getStopNum()
ns = sumOfNums(st, sp)
p = productOfNums(st, sp)
print("The sum of the sequence is:", ns)
print("The product of the sequence is:", p)
cont = input("Do you want to continue? y/n: ")

Сообщение об ошибке:

    while(stop <= startValue):
NameError: name 'startValue' is not defined

Я ожидал, что вывод распечатает сумму и продукты сразу

1 Ответ

4 голосов
/ 15 октября 2019

Вы не можете использовать переменные, которые были инициализированы в других функциях вне этих функций (это называется «область действия»). Вам нужно будет передать начальное значение в качестве аргумента, как вы это делали с sumOfNums(startValue, stop)

def getStopNum(startValue):
    stop = int(input("Enter the ending number: "))
    while(stop <= startValue):
        print("Ending number must be greater than the starting value.")
        stop = int(input("Enter the ending number: "))
    return stop
st = getStartNum()
sp = getStopNum(st)

И так же для всех ваших функций, которым нужно значение.

также вамможете узнать больше об этой вещи здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...