Я пытаюсь вернуть случайно сгенерированное число в функции, чтобы я мог выполнить с ним некоторые математические вычисления

#python #random

#python #Случайный

Вопрос:

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

Я пытался использовать оператор return в конце, но по какой-то причине он не возвращается

 import random

def generator1(): #name of function
    die_total = 0 #used for iteration
    for generator1 in range(2): #loop,generates 2 numbers
        die_roll = random.randint(1,6) #random int generator

        if die_roll % 2 == 0: # depending wether the random is odd or even,5 0r 10 is added
            die_roll  = 10
        else:
            die_roll  = 5

        die_total  = die_roll #used to itterate and obtain a total

    return die_total #the problem,trying to return value of die_total

generator1()

print(die_total)
  

Я ожидал случайное значение при печати.

Комментарии:

1. Я предлагаю вам прочитать о переменных областях, т. Е. глобальных и локальных переменных.

Ответ №1:

die_total существует только внутри вашей generator1 функции (для нее это локальная переменная). Вы можете использовать возвращаемое значение, хотя

 print(generator1())
  

или поместить его в переменную

 your_variable = generator1()
print(your_variable)
  

Комментарии:

1. спасибо за предложение, но когда я запускаю оба кода, <function generator1 at 0x00FA0810> или none не печатается

2. @Silver у вас все еще есть return в вашей generator функции, как в примере кода в вашем вопросе?

3. Я только что попробовал, и это работает. Вы внесли какие-то изменения?

4. Я удалил оператор return и помечаю все, что я изменил

5. Нет, вам нужен оператор return 🙂