Как обратно получить значение из функции в Python?
У меня в функции много переменных, и мне нужно вытащить одну из них в основной код.
def code(q_f_code):
correct=0
q_f_code2=q_f_code
while q_f_code!=0:
x=randint(1,123)
y=randint(1,123)
z=int(input())
if x**y==z:
correct=+1
q_f_code=q_f_code-1
else:
correct=-1
q_f_code=q_f_code-1
print('у тебя {:} из {:} правильных ответов'.format(correct, q_f_code2))
code(q_f_code=int(input('Введите количество вопросов, которое хотите получить: ')))
Мне нужно вывести переменную "correct", но и функция должна работать. Я хочу использовать функцию "correct" в следущей функции, которую напишую
Ответы (1 шт):
Автор решения: FBXR
→ Ссылка
Можно переменную correct сделать глобальной
from random import randint
def code(q_f_code):
global correct
correct = 0
q_f_code2 = q_f_code
while q_f_code != 0:
x = randint(1,123)
y = randint(1,123)
z = int(input())
if x**y == z:
correct += 1
#q_f_code = q_f_code - 1
else:
correct -= 1
#q_f_code = q_f_code - 1
q_f_code = q_f_code - 1
print('у тебя {:} из {:} правильных ответов'.format(correct, q_f_code2))
code(q_f_code=int(input('Введите количество вопросов, которое хотите получить: ')))
#Проверка выводом
print(correct)
Но более правильно будет если функция будет возвращать эту переменную:
from random import randint
def code(q_f_code):
correct = 0
q_f_code2 = q_f_code
while q_f_code != 0:
x = randint(1,123)
y = randint(1,123)
z = int(input())
if x**y == z:
correct += 1
#q_f_code = q_f_code - 1
else:
correct -= 1
#q_f_code = q_f_code - 1
q_f_code = q_f_code - 1
print('у тебя {:} из {:} правильных ответов'.format(correct, q_f_code2))
return correct #Возвращаем локальную версию correct
#|
#V это глобальная версия, названия необязательно должны совпадать
correct = code(q_f_code = int(input('Введите количество вопросов, которое хотите получить: ')))
#Проверка выводом
print(correct)
То что функция теперь возвращает переменную никак не влияет на её работу
Соблюдайте PEP8 и не забывайте ставить пустые строки что бы читать можно было