Python随机问题程序有时会提供无法回答的问题

2024-06-16 13:47:42 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是一个python函数,它将提供一个问题。然而,有时,它提供的问题会有一个无法回答的重复数字。例如100/9。我可以编辑哪些内容,以便答案始终在小数点后2位以内(如果适用)

这可以通过将某些内容转换为浮点并强制输入2位小数来解决吗

import random

def genKnow():
  questions = {}
  score = 0

  for i in range (1):
    int_a = random.randint(0,100)
    int_b = random.randint(0,100)
    operators = ['+','-','*','/']
    operator_value = random.choice(operators)
    question = str(int_a)+''+str(operator_value)+''+str(int_b)
    answer = eval(question)
    question+=': '

    questions.update({question:str(answer)})

  for q in questions.keys():
    user_answer = input(q)

    if questions.get(q) == str(user_answer):
      score+=1
      print("Well Done!")
    else:
      print("Bummer!")

  print("you got "+str(score)+" Congrats!")
  input("Press enter to close this program")
  genKnow()

print("Welcome to the game")
genKnow()

Tags: answerin内容forrandomoperatorintquestions
3条回答

我假设你所说的不可回答问题的意思是,答案不是整数,如果是这样的话,你可以在你的代码中找到某个数字,看看这个数字是不是整数,如果不是再次生成问题,我想这会解决问题

如果选择了除法运算符,请将生成问题的方式更改为a*b/a=b

例如。 选择是(100,9,“/”)
问题=str(int_a*int_b)+''+str(运算符值)+'+str(int_a)
答案=int_b

对于除法,只有你可以作弊,相反的求和。取一个随机值和一个随机结果,然后应用运算符的倒数,得到求和的另一个因子。例如,使用随机数1009以及运算符/,可以得到

___ / 100 = 9

其中9是答案。因此,您想在问题中提出的未知问题是逆运算100*9,因此最终结果是

900/100 = ____

你对答案保密

对于乘法、加法和减法,您不需要更改任何内容

相关问题 更多 >