Python 如果我得到了正确的答案,它会打印一些东西,我该怎么做呢
你需要做实际的计算来找出答案。下面是一个快速而肮脏的方法:Python 如果我得到了正确的答案,它会打印一些东西,我该怎么做呢,python,python-3.x,Python,Python 3.x,你需要做实际的计算来找出答案。下面是一个快速而肮脏的方法: if problem == answer: print("Correct!") 然后调用此函数以获得预期答案,并将其与用户给出的答案进行比较 def arithmetic(op, a, b): if op == "+": return a + b elif op == "-": return a - b
if problem == answer:
print("Correct!")
然后调用此函数以获得预期答案,并将其与用户给出的答案进行比较
def arithmetic(op, a, b):
if op == "+":
return a + b
elif op == "-":
return a - b
elif op == "*":
return a * b
elif op == "/":
return a / b
而计数器问题
是一个类似“5+4=“
的字符串<代码>答案是一个字符串,例如“9”
。为什么你期望这两个字符串相等?您需要使用第一个
、第二个
和随机运算符
计算预期答案,并将其与输入的答案
(转换为整数
或浮点
)进行比较,即使在这种情况下使用eval
似乎是安全的,当存在其他评估预期答案的方法时,不建议使用此方法-1用于传播糟糕的编程实践,但不包括caveat@PranavHosangadi我确实说过“又快又脏”。这显然不是关键代码,这将为此目的发挥作用。我编辑了您的答案以包含一个替代解决方案,因为它根本不足以证明使用eval
是合理的。即使这是一个良性的案例,使用eval
是不安全的,但如果没有上下文说明原因,特别是对于初学者来说,这也不是一个好建议。
import random
operators = ['*', '/', '+', '-']
number = input('How many problems would you like?')
number = int(number)
counter = 1
while counter <= number:
first = random.randint(0,10)
second = random.randint(0,10)
randoperator = random.choice(operators)
problem = '{} {} {}'.format(first, randoperator, second)
answer = input(problem + ' = ')
if eval(problem) == float(answer):
print("Correct!")
counter+=1
def arithmetic(op, a, b):
if op == "+":
return a + b
elif op == "-":
return a - b
elif op == "*":
return a * b
elif op == "/":
return a / b
while counter <= number:
first = random.randint(0,10)
second = random.randint(0,10)
randoperator = random.choice(operators)
problem = '{} {} {}'.format(first, randoperator, second)
answer = input(problem + ' = ')
if arithmetic(randoperator, first, second) == float(answer):
print("Correct!")
counter+=1