基本Python斗争
我正在做一个数学技能测试程序,我想知道是否有一种方法可以让随机问题出现在我的程序中,而不是每次都这样做基本Python斗争,python,Python,我正在做一个数学技能测试程序,我想知道是否有一种方法可以让随机问题出现在我的程序中,而不是每次都这样做 import time start = time.time() userinput = input("\nWhat is 11+7?") if userinput=="18": print("\nNot bad, lets try something a little harder...") print('It took you {0:0.1f} seconds to answ
import time
start = time.time()
userinput = input("\nWhat is 11+7?")
if userinput=="18":
print("\nNot bad, lets try something a little harder...")
print('It took you {0:0.1f} seconds to answer the
question'.format(time.time() - start))
else:
print("\nAt least you got one right")
print('It took you {0:0.1f} seconds to answer the
question'.format(time.time() - start))
exit()
另外,我如何才能在其中添加while语句?如果可能的话,我还想在中添加一个def函数。谢谢。选择一个随机运算符和随机数:
import operator
import random
ops = {'+': operator.add,
'-': operator.sub} # add mul and div if you wish
keys_tuple = tuple(ops.keys())
num_a = random.randint(1, 10) # use larger range if you wish
num_b = random.randint(1, 10) # use larger range if you wish
op = random.choice(keys_tuple)
print('{}{}{}=?'.format(num_a, op, num_b))
expected_answer = ops[op](num_a, num_b)
user_answer = int(input())
if user_answer == expected_answer:
print('Correct')
else:
print('Wrong')
至于
while
,简单地将整个代码包装在while True
循环中,如果用户输入某个值(即'quit'
,这将当前引发值错误)那么你想基本上解决数学问题吗?以下是为此您需要做的:
进行两个随机整数-步骤1
查看答案是否与答案相加-步骤2
你现在可以试着自己解决它。如果您需要帮助,可以回来查看以下内容:
from random import randint
def get_random_int(): # Function to get random int
random_num = randint(1, 20) #Gets an int between 1 and 20. Change if needed
return random_num
def check_answer(first_number, second_number, input_ans): # function to check answer correction
if (first_number + second_number == input_ans):
return "Correct answer!"
else:
return "Try again!"
number_1 = get_random_int()
number_2 = get_random_int()
user_input = input("What is %s plus %s?" % ( str(number_1), str(number_2) ))
# Wrap in str() to display as string
print( check_answer(number_1, number_2, int(user_input) ) )
# Wrap in int() because it is a number
如果需要不断循环,请将其包装为,而True:
无止境循环。一定要给自己一条退出的路!(在代码中使用break
退出循环)
希望这有帮助:)这几乎完全是@DeepSpace的
代码,但要回答您关于如何添加while
循环的问题,只需将初始定义后的所有代码放入while
循环的范围:
import operator
import random
ops = {'+': operator.add,
'-': operator.sub} # add mul and div if you wish
keys_tuple = tuple(ops.keys())
while True:
num_a = random.randint(1, 10) # use larger range if you wish
num_b = random.randint(1, 10) # use larger range if you wish
op = random.choice(keys_tuple)
print('{}{}{}=?'.format(num_a, op, num_b))
expected_answer = ops[op](num_a, num_b)
user_answer = int(input())
if user_answer == expected_answer:
print('Correct')
else:
print('Wrong')
您可以使用随机库生成两个随机数,将它们分配给变量,像print(var1,“+”,var2)
那样打印它们,然后将其作为一段代码运行:var3=var1+var2
,然后用if语句检查它:if-input==var3:do-stuff
。标题应该代表你的问题是关于什么的,但是你是否擅长编码。嗨,我对你的问题做了回顾。你不应该在得到答案后将其改为新问题,因为这样做会使答案无效。如果需要的话,请提出一个新问题,并参考这个问题。非常感谢!但我如何才能让问题不断被问到呢?或者更难的问题有不同的层次?@user9041128正如我在代码下面的答案中提到的,您可以将整个问题包装在中,而True则是。至于“级别”,则由您根据自己决定的逻辑来实现,例如增加随机数的范围。我不能用这么简单的答案为你写一个完整的游戏。请你检查一下我更新的问题代码好吗?谢谢:)请你能检查一下吗请你检查一下我更新的问题代码谢谢:)你的代码也有很多错误。。。也许在另一个问题中问这个问题,然后回复这个问题?因为人们花时间回答这个问题:)。你可以在另一个地方问这个问题one@KidDoesCodingAndHasNoFriends我同意,OP不应该改变这个问题。我做了一个回滚。