当前位置: 首页 > 面试题库 >

我的输入不等于答案吗?

宋运锋
2023-03-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())

问题答案:

我假设您正在使用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())


 类似资料:
  • 我试着在SPOJ上解决一个问题,我们必须简单地找到给定数组a的最长递增子序列的长度。 我用动态规划O(n^2)算法解决了这个问题,这个解决方案被接受了。。以下是被接受的代码: 但是当我试图用第二种方法(LINK)解决它时,:: ,我得到了错误的答案。 这是我的c代码 我不知道为什么我会得到错误的答案。你能帮我找到这个错误吗。或者站点中给出的基于LCS的LIS算法不正确??

  • 我做了一个quizz程序,我用一个.txt文件做了一个字典,里面有西班牙语和英语单词,并且让程序问英语中的西班牙语单词的等价物。 在我的.txt文件中的一些答案对一个英语单词有西班牙语2个答案。 示例“School:El colegio,la Escuela”现在我的程序识别了这个,并打印出“Enter 1 equality...word[1]”两次,但我希望输出为:(粗体是用户输入的) 当“Wo

  • 问题内容: 我以前有几种方法用于接受用户输入,并将其作为某种数据类型返回给调用它的方法。我在以前的项目中使用过这些方法或它们的变体。 我采用了用于字符串的方法来选择给定的第一个字符并返回它,以便可以在菜单中使用它。每次我启动该应用程序时,都会出现主菜单,并等待用户输入。收到此输入后,程序将连续循环直到停止。这是我捕获字符的方法: 由于try / catch块,代码循环,因为scan.nextLin

  • 我用vscode写了一个java程序。但是我在java输出中得到了意想不到的答案。通常这个sout应该是6.6,但是java说6.6000000000000005。为什么

  • 问题内容: 目的 要使用Elasticsearch的记录器功能来更好地调试服务器端Groovy脚本代码。 问题总结 无法汇入 细节 使用Elasticsearch 2.3 存储在Java客户端中的脚本已经能够通过来成功访问它们。即,文件夹位置应正确。我已经看到了将代码放置在中的建议,但实际上对我不起作用) 尝试过此解决方案,即: 但是Elasticsearch日志显示了一个编译器投诉: 我检查Gi

  • 输入opml档案 可输入(汇入)opml档案。输入(汇入)opml档案后,可将保存于opml档案中的复数频道同步登录至PSP™中。 何谓opml档案 某些个人计算机专用的RSS读写器,具备将登录的频道信息转换为档案输出的机能。opml档案即为此类情形下新建,opml格式(扩展名为「.opml」)的档案。opml档案可从因特网下载,或透过个人计算机新建。 新建opml档案 使用RSS传输(podca