基本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不应该改变这个问题。我做了一个回滚。