Задать вопрос
@fastym

Как достать переменную из функции?

Как достать из функции переменную?
Внизу код gen_random_num - генерирует случайную цифру, а дальше я хочу ее использовать в другой функции, как это реализовать?

import random

def gen_random_num():
    num1 = random.randint(1, 100) # генерерирует число
    return num1
    pass

def test_sum():
    print(num1) # Хочу ее тут забрать
    pass


print(gen_random_num())
print(test_sum())
  • Вопрос задан
  • 692 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
@MusArtVlad
Новичок в программировании
Ты можешь забрать переменную таким образом.
у тебя при каждом вызове любой функции будет рандомное число
При этом если ты выполнишь test_sum_v1(), то получишь одинаковые переменные и туда и обратно. Но только через Return
from random import randint
def gen_random_num_v1():
    num1 = randint(1, 100) # генерерирует число
    return num1 # генерерирует число от 1 до 99

def test_sum_v1():  # Первая версия
    print(gen_random_num())  # Забирай

print(gen_random_num_v1())  # выводит 32
print(test_sum_v1())  # выводит 67

Это другой способ, через глобальные переменные
у тебя при каждом вызове любой функции будет именно то число, которое сгенерировало gen_random_num_v2()
Но тебе надо сначала получить переменную num1. То есть могут возникнуть некоторые ошибки.
from random import randint

def gen_random_num_v2():
    global num1 # генерерирует число
    num1 = randint(1, 100) # генерерирует число
    return num1

def test_sum_v2():  # Вторая версия
    print(num1)  # Забирай

print(gen_random_num_v2())  # выводит 73
print(test_sum_v2())  # выводит 73
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@PavelMos
Нужно возвращать переменную через ключевое слово return. В первой функции же правильно. Но num1 из первой функции вторая функция не увидит тк. имя num1 существует только внутри первой функции.

Чтобы было снаружи нужно
num1=test_sum()
неважно, что тоже называется num1, это две разных переменных
можно назвать num2=test_sum() например

Чтобы передать внутрь функции и распечатать, нужно
def test_sum(x):
print (x) # Хочу ее тут забрать
pass

и вызвать

num1=test_sum()
test_sum(num1)

читай про функции и область видимости переменных
Ответ написан
Комментировать
Revencu
@Revencu
Можно использовать глобальные переменные в функции
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы