下面是一个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()
我假设你所说的不可回答问题的意思是,答案不是整数,如果是这样的话,你可以在你的代码中找到某个数字,看看这个数字是不是整数,如果不是再次生成问题,我想这会解决问题
如果选择了除法运算符,请将生成问题的方式更改为a*b/a=b
例如。 选择是(100,9,“/”)
问题=str(int_a*int_b)+''+str(运算符值)+'+str(int_a)
答案=int_b
对于除法,只有你可以作弊,相反的求和。取一个随机值和一个随机结果,然后应用运算符的倒数,得到求和的另一个因子。例如,使用随机数
100
和9
以及运算符/
,可以得到其中
9
是答案。因此,您想在问题中提出的未知问题是逆运算100*9
,因此最终结果是你对答案保密
对于乘法、加法和减法,您不需要更改任何内容
相关问题 更多 >
编程相关推荐