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: