У меня возникают проблемы с моим кодом на Python. Я пытаюсь сделать математическую викторину для своей GCSE, но я столкнулся с проблемой.python не возвращает переменные из абзаца def
Функция возврата не возвращает никаких переменных, как вы можете видеть ниже. Я указал переменные, которые должны быть «возвращены», если я не использую неправильную функцию.
Моя цель состоит в том, чтобы иметь numgen
генерировать номера и номера, которые будут затем использоваться в def question
спросить пользователя для ответа, а затем def correct
, чтобы сказать пользователю, если вопрос правильно.
import random
import time
Decision = 'neither'
print("\n\n\n\n\n\n")
Name = input("Hello what is your name?")
print("...")
time.sleep(1)
print("Hello",Name,"are you ready for the maths quiz?")
while Decision.lower() != "yes" or "no":
Decision = input("Type either\n'yes'\nor\n'no'")
if Decision.lower() == "yes":
print("Ok, we will proceed")
break
elif Decision == "no":
print("Please come back when you are ready")
exit(0)
else:
print("please type again either 'yes' or 'no'")
marks = 0
def numgen():
num1 = random.randint(1,40)
numlist = random.choice(['*','/','+','-'])
num2 = random.randrange(2,20,2)
answer = eval(str(num1) + numlist + str(num2))
return(num1, numlist, num2, answer)
score = 0
def question (num1, numlist,num2, answer):
print("This question is worth 10 marks.")
print ("The question is:",num1, numlist, num2)
Q1 = input('What is your answer?')
Q1 = float(Q1)
return(Q1)
def correct(Q1):
if Q1 == answer:
print("Well done you got it right.")
score = score + 10
else:
print("you were incorrect the asnwer was:",answer)
return (score)
questions = 0
while questions < 10:
numgen()
question(num1,num2,answer,numlist)
correct(Q1)
print(marks)
EDIT: Хорошо я благодарю всех за вашу помощь, но им все еще возникают проблемы, потому что в этой линии print ("The question is:",num1, numlist, num2)
где num2
есть, где по какой-то причине ответ появляется я не знаю, чем это вызвано, но это очень раздражает может кто-нибудь помочь. Это после того, как я редактировал код включить
num1,num2,numlist,answer=numgen()
Q1=question(num1,num2,answer,numlist)
score = int(score)
score = correct(score, Q1)
так, например, если у меня было:
the question is: 24 + 46
ответ будет 46. Должен ли я отказаться от использования команды def
? Заранее спасибо за вашу помощь.
это, кажется у вас есть только вопрос порядка с параметрами, я редактировал свой ответ с дальнейшим объяснением – DorElias