Python 3.x 比较两个变量时,输出始终相同

Python 3.x 比较两个变量时,输出始终相同,python-3.x,variables,output,Python 3.x,Variables,Output,这是我的10个问题的测试代码。问题是每当我写答案时(在提问前打印答案),答案总是说不正确。请考虑到我在语言方面非常糟糕,并且不纠正不需要纠正的内容。谢谢 from random import randint name = input("what is your name?") score = 0 qn = 0 def q(): global qn global name global score qn += 1 if qn < 11:

这是我的10个问题的测试代码。问题是每当我写答案时(在提问前打印答案),答案总是说不正确。请考虑到我在语言方面非常糟糕,并且不纠正不需要纠正的内容。谢谢

from random import randint

name = input("what is your name?")
score = 0
qn = 0

def q():
    global qn
    global name
    global score
    qn += 1

    if qn < 11:

        num1 = randint(1,12)

        s = randint(1,3)

        num2 = randint(1,12)

        if s == 1:
            symbal = '+'
            answer = num1 + num2

        elif s == 2:
            symbal = '-'
            answer = num1 - num2

        elif s == 3:
            symbal = '*'
            answer = num1 * num2

        print(answer)

        print(num1 ,symbal ,num2)

        sanswer = input("= ?")

        if answer == sanswer:
            score += 1
            print("correct!!!")

        else:
            print("incorrect")

        q()
    else:
        global name
        print("""welldone""")
        print(name)
q()
来自随机导入randint
name=输入(“你叫什么名字?”)
分数=0
qn=0
def q():
全球qn
全局名称
全球得分
qn+=1
如果qn<11:
num1=randint(1,12)
s=randint(1,3)
num2=randint(1,12)
如果s==1:
符号='+'
答案=num1+num2
elif s==2:
符号='-'
答案=num1-num2
elif s==3:
符号='*'
答案=num1*num2
打印(答案)
打印(num1、symbal、num2)
sanswer=输入(“=?”)
如果答案==sanswer:
分数+=1
打印(“正确!!!”)
其他:
打印(“不正确”)
q()
其他:
全局名称
打印(“干得好”)
印刷品(名称)
q()
来自随机导入randint
name=输入(“你叫什么名字?”)
分数=0
qn=0
def q():
全球qn
全局名称
全球得分
qn+=1
如果qn<11:
num1=randint(1,12)
s=randint(1,3)
num2=randint(1,12)
如果s==1:
符号='+'
答案=num1+num2
elif s==2:
符号='-'
答案=num1-num2
elif s==3:
符号='*'
答案=num1*num2
打印(num1、symbal、num2)
sanswer=int(输入(“=?”)
打印(答案)
如果答案==sanswer:
分数+=1
打印(“正确!!!”)
其他:
打印(“不正确”)
q()
其他:
全局名称
打印(“干得好”)
印刷品(名称)
q()
你有两个错误:

第一:您不应该在输入前放置
打印(答案)

第二:您应该
sanswer=int(输入(“=?”)
使用int(),因为您使用的输入是字符串


还有一个简单的建议,编码时尽量不要使用全局。

这对我来说很好。。。
from random import randint

name = input("what is your name?")
score = 0
qn = 0

def q():
    global qn
    global name
    global score
    qn += 1

    if qn < 11:

        num1 = randint(1,12)

        s = randint(1,3)

        num2 = randint(1,12)

        if s == 1:
            symbal = '+'
            answer = num1 + num2

        elif s == 2:
            symbal = '-'
            answer = num1 - num2

        elif s == 3:
            symbal = '*'
            answer = num1 * num2

        print(num1 ,symbal ,num2)

        sanswer = int(input("= ?"))

        print(answer)


        if answer == sanswer:
            score += 1
            print("correct!!!")

        else:
            print("incorrect")

        q()
    else:
        global name
        print("""welldone""")
        print(name)
q()