Python 总是说这是错误的答案?
我正在做一个简单的数学测验,它运行良好,除非当我问它的答案是否正确时,它总是说不正确,如果正确与否。我不知道我哪里出错了,如果能帮上忙,我将不胜感激Python 总是说这是错误的答案?,python,random,Python,Random,我正在做一个简单的数学测验,它运行良好,除非当我问它的答案是否正确时,它总是说不正确,如果正确与否。我不知道我哪里出错了,如果能帮上忙,我将不胜感激 import random QuestN = 1 QNC = 0 CS = 0 WS = 0 while True: #Number Of Questions: QNC = QNC + 1 if QNC == 10: break #Choosing The Questions ops =
import random
QuestN = 1
QNC = 0
CS = 0
WS = 0
while True:
#Number Of Questions:
QNC = QNC + 1
if QNC == 10:
break
#Choosing The Questions
ops = ['+', '-', '*', '/']
num1 = random.randint(0,12)
num2 = random.randint(1,10)
operation = random.choice(ops)
#Simplifying The Operations
if operation == "+":
NEWOP = "+"
elif operation == "-":
NEWOP = "-"
elif operation == "*":
NEWOP = "x"
elif operation == "/":
NEWOP = "÷"
#Asking The Questions
print("Awnser This:")
print(num1)
print(NEWOP)
print(num2)
maths = eval(str(num1) + operation + str(num2))
#Awnsering The Questions
PLAYERA = input(": ")
print(maths)
#Keeping Score
if PLAYERA == maths:
print("Correct")
CS = CS +1
else:
print("Incorrect")
WS = WS +1
print()
#RESTART
变量
PLAYERA
将是一个字符串。变量数学
将是一个整数。在Python中,“7”
与7
不同,因此您的if
语句永远不会为真
因此,您需要:
if int(PLAYERA) == maths:
print("Correct")
CS = CS +1
请注意,如果播放机的输入不是数字,此代码将导致错误。您可以这样做来避免这种情况:
if PLAYERA == str(maths):
print("Correct")
CS = CS +1
由于用户理论上可以键入他或她想要的任何内容,因此这样做更安全:
如果PLAYERA==str(数学):
@killermonkey50这是一个很好的观点,尽管考虑到eval的自由使用,安全似乎不是太大的问题!频繁?他只使用过一次;pun相关注释:这将只运行9次
,因为您在检查它之前正在递增QNC
。如果您想要10
问题,您应该将增量行移到检查行之后,或者将检查更改为如果QNC>10:
。