#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 🙂