我的输入不等于答案吗?

发布于 2021-01-29 18:43:14

从Unity
JS切换到Python稍有一些,关于这为什么行不通的一些细微之处使我难以理解。我最好的猜测是变量guess实际上是一个字符串,所以字符串5与整数5不同吗?这是正在发生的事情吗,或者如何解决这个问题。

import random
import operator

ops = {
    '+':operator.add,
    '-':operator.sub
}
def generateQuestion():
    x = random.randint(1, 10)
    y = random.randint(1, 10)
    op = random.choice(list(ops.keys()))
    a = ops.get(op)(x,y)
    print("What is {} {} {}?\n".format(x, op, y))
    return a

def askQuestion(a):
    guess = input("")
    if guess == a:
        print("Correct!")
    else:
        print("Wrong, the answer is",a)

askQuestion(generateQuestion())
关注者
0
被浏览
158
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    我假设您正在使用python3。

    代码的唯一问题是,您从中获取的值input()是字符串,而不是整数。因此,您需要进行转换。

    string_input = input('Question?')
    try:
        integer_input = int(string_input)
    except ValueError:
        print('Please enter a valid number')
    

    现在您将输入作为整数,可以将其与 a

    编辑代码:

    import random
    import operator
    
    ops = {
        '+':operator.add,
        '-':operator.sub
    }
    def generateQuestion():
        x = random.randint(1, 10)
        y = random.randint(1, 10)
        op = random.choice(list(ops.keys()))
        a = ops.get(op)(x,y)
        print("What is {} {} {}?\n".format(x, op, y))
        return a
    
    def askQuestion(a):
        # you get the user input, it will be a string. eg: "5"
        guess = input("")
        # now you need to get the integer
        # the user can input everything but we cant convert everything to an integer so we use a try/except
        try:
            integer_input = int(guess)
        except ValueError:
            # if the user input was "this is a text" it would not be a valid number so the exception part is executed
            print('Please enter a valid number')
            # if the code in a function comes to a return it will end the function
            return
        if integer_input == a:
            print("Correct!")
        else:
            print("Wrong, the answer is",a)
    
    askQuestion(generateQuestion())
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看