我在学校有一个挑战,但我被困在我的一小部分代码。你知道吗
以下是我所拥有的;我缺少的是如何完成answer =
行:
while (questions <= 9):
randoms()
print("What is: ", num1, symbol, num2,"?:")
uanswer = int(input())
answer =
if uanswer == answer:
correct = correct + 1
else:
incorrect = incorrect + 1
questions = questions + 1
变量num1
、num2
和symbol
是随机生成的,num1
和num2
都是整数,symbol
是'+'
、'-'
、'*'
或'/'
我想知道如何用这些来得到一个方程的答案。你知道吗
例如,num1
是50
,symbol
是'-'
,num2
是25
。如何使用这些变量来得到答案25
?你知道吗
我认为最好的办法是创造条件并检查符号。。你知道吗
最简单的方法是创建从符号到函数的映射。你知道吗
唯一的问题是,
+
运算符背后的函数是什么?你知道吗答案在^{} 模块中:
a + b
是operator.add(a, b)
,依此类推。所以:我在这里假设你希望
100 / 3
是33
,而不是33.333333333333336
。如果我错了,用truediv
代替上面的floordiv
。(请参阅教程中的Numbers以了解差异的介绍,并提供指向更多详细信息的链接。)不管怎样,现在,你可以这样做:
即使没有
operator
,也可以为每个操作符构建一个函数:如果您想将您的语言扩展到Python中没有匹配运算符的符号,这可能很有用。你知道吗
如果您的数学语言是Python表达式语言的一个严格子集(可能没有注意到符号} 它可能更简单:
'/'
映射到Python运算符//
,如果您想要整数),并且您确信您永远不会以一种不需要的方式扩展它(例如,使用^
进行指数运算),而且您肯定永远不会使用您自己没有生成的任何数字或符号,只构建一个Python表达式并^{但是,在使用
eval
时,您应该始终小心;如果要做的干净的事情足够简单,您可以编写、阅读并稍后理解,那么它几乎总是一个更好的答案。你知道吗相关问题 更多 >
编程相关推荐