2016-06-28 5 views
-2

Лучшая математики викторина я в настоящее время является:Как написать математическую викторину со случайными числами в python 2?

answer = '' 
while not (answer == '75'): 
answer = raw_input('What is 5 x 15? ') 
if answer == '75': 
    print ' ' 
    print 'You are correct' 

    answer1 = '' 
    while not (answer1 == '72'): 
     answer1 = raw_input('What is 8 x 9? ') 
     if answer1 == '72': 
      print ' ' 
      print 'You are correct' 

      answer2 = ' ' 
      while not (answer2 == '0'): 
       answer2 = raw_input('What is 5 x 0? ') 
       if answer2 == '0': 
        print' ' 
        print'You are correct' 

        answer3 = '' 
        while not (answer3 == '18'): 
         answer3 = raw_input('what is 6 x 3? ') 
         if answer3 == '18': 
          print '' 
          print 'You are correct' 
         else: 
          print 'You are incorrect' 
       else: 
        print'You are incorrect' 
     else: 
      print 'You are incorrect' 
      continue 
else: 
    print 'You are incorrect' 
    continue 

Для меня, по крайней мере, он чувствует, что этот код слишком долго только 4 вопросов, чтобы ответить. Мне интересно, есть ли более простой способ сделать математическую викторину со случайными числами, поэтому вам не нужно создавать каждый вопрос.

+1

Если это ** рабочий код **, который, по вашему мнению, может быть улучшен, см. [Codereview.se]. Вы можете определенно упростить его и полностью породить случайные вопросы. – jonrsharpe

+2

Вы, очевидно, учитесь так, что, вероятно, вы получите решение, это повредит больше, чем поможет. Поэтому просто укажите направление: почему вместо этого нет списка вопросов и ответов? –

+0

Подсказка @ tomasz-plaskota дает вам ключ к ответу на очистку этой тонны. – Jeff

ответ

1

Вы можете создавать вопросы динамически, как это:

from random import randint 
q = '' 
while not q.capitalize() == 'N': 
    num1 = randint(0, 100) 
    num2 = randint(0, 100) 
    answer = input("What is " + str(num1) + " x " + str(num2) + " ? ") 
    if answer == (num1 * num2): 
     print "Correct" 
    else: 
     print "Incorrect" 

    q = raw_input("Do you want to continue: Y/N? ") 

В ваших викторинах только три вещей изменились, они num1 и num2, которые в результате изменений answer. Это означает, что вы можете повторно использовать все остальное и произвольно генерировать num1 и num2.

Смежные вопросы