我目前正在进行一项项目练习,其中涉及我创建一个评估儿童算术能力的计划。它询问加法,乘法和减法问题,它是用Python编写的。
您可以自己查看下面的代码。
from random import randint
username = input("What is your name? ")
score = 0
question = 1
while (question < 11):
random_integer= randint(1,3)
if (randnum == 1):
return = multiply()
elif (randnum == 2):
return = add()
else:
return = subtract()
if (return== True):
score+=1
question += 1
input("\nYou scored %s out of 10... \nPress enter to quit" %(score))
def multiply():
num1= randint(1,12)
num2= randint(1,12)
correct_ans= str(num1 * num2)
user_answer = input("%s x %s = " %(num1, num2))
if (user_answer == correct_ans):
print("Correct!")
return True
else:
print("Incorrect. The correct answer was %s" %(correct_ans))
return False
def add():
num1= randint(1,50)
num2= randint(1,50)
correct_ans = str(num1 + num2)
user_answer = input("%s + %s = " %(num1, num2))
if (user_answer == correct_ans):
print("Correct")
return True
else:
print("Incorrect. The correct answer was %s" %(correct_ans))
return False
def subtract():
num1= randint(1,80)
num2= randint(1,50)
correct_answer = str(num1 - num2)
user_answer = input("%s - %s = " %(num1, num2))
if (user_answer == correct_ans):
print("Correct")
return True
else:
print("Incorrect. The correct answer was %s" %(correct_ans))
return False
现在,当我运行程序时,要求输入用户名的第一行正常显示,但是这段代码在IDLE中显示为错误。 有人可以帮忙吗?
Traceback (most recent call last):
File "H:\code3.py", line 14, in <module>
return = subtract()
NameError: name 'subtract' is not defined
答案 0 :(得分:0)
好return
是一个保留的关键字,所以只需更改变量名即可解决您的问题。
答案 1 :(得分:0)
您的代码中存在很多问题。
首先,你必须在之前定义一个函数。所以你得到的错误“NameError:name'减去'没有定义',是因为这个函数没有在代码中的这个状态下定义。解决方案是提升您对函数的定义。
接下来就是你写了“return = x”。这是不正确的python语法。如果要返回值,请使用“return x”。
最后一件事(我提到过)是你使用“input()”。在你的代码中,你必须使用“raw_input()”,因为你的代码的其余部分需要一个字符串。
我已在您的代码中纠正了这些内容(以及其他一些小问题)。
from random import randint
username = raw_input("What is your name? ")
score = 0
question = 1
answerCorrect = True
def multiply():
num1= randint(1,12)
num2= randint(1,12)
correct_ans= str(num1 * num2)
user_answer = raw_input("%s x %s = " %(num1, num2))
if (user_answer == correct_ans):
print("Correct!")
return True
else:
print("Incorrect. The correct answer was %s" %(correct_ans))
return False
def add():
num1= randint(1,50)
num2= randint(1,50)
correct_ans = str(num1 + num2)
user_answer = raw_input("%s + %s = " %(num1, num2))
if (user_answer == correct_ans):
print("Correct")
return True
else:
print("Incorrect. The correct answer was %s" %(correct_ans))
return False
def subtract():
num1= randint(1,80)
num2= randint(1,50)
correct_ans = str(num1 - num2)
user_answer = raw_input("%s - %s = " %(num1, num2))
if (user_answer == correct_ans):
print("Correct")
return True
else:
print("Incorrect. The correct answer was %s" %(correct_ans))
return False
while (question < 11):
random_integer= randint(1,3)
if (random_integer == 1):
answerCorrect = multiply()
elif (random_integer == 2):
answerCorrect = add()
else:
answerCorrect = subtract()
if (answerCorrect== True):
score+=1
question += 1
raw_input("\nYou scored %s out of 10... \nPress enter to quit" %(score))