我遇到了我的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)
编辑: 好吧,我感谢大家的帮助,但即时通讯仍然有问题,因为在这条线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