2016-03-29 1 views
2

В настоящее время я делаю программу для школьной работы, и мне нужно сделать программу викторины математики. Я делаю простую викторину умножения.Создание случайных целых чисел, но они должны быть разными каждый раз

Мне нужно иметь возможность генерировать 2 случайных целых числа для вопросов, но они должны быть разными для каждого вопроса.

import random 
correct = wrong = num1 = num2 = 0 
questionNum = 1 
num1 = random.randint(1,49) 
num2 = random.randint(50,100) 

for i in range(0, 8): 
    print("\nQuestion", questionNum) 
    print("What is", num1, "mulitplied by", num2, "?") 
    answer = int(input("Answer: ")) 
    if answer == num1*num2: 
     print("Correct.") 
     correct = correct + 1 
     questionNum = questionNum + 1 
    else: 
     print("Incorrect. The correct answer is", answer) 
     wrong = wrong + 1 
     questionNum = questionNum + 1 

Вопросы имеют одинаковые номера каждый раз. Есть ли способ изменить это?

ответ

4

Просто переместите ваше random.randint назначения внутри в цикл:

for i in range(1, 9): 
    num1 = random.randint(1, 49) 
    num2 = random.randint(50, 100) 

Если вы только позвоните randint перед циклом, значение num1 и num2 останется они же через каждую итерацию. Перемещение внутри означает, что вы получаете новые случайные числа каждый раз.

Также обратите внимание:

  • вам не нужен отдельный questionNum переменных, вы можете просто использовать i; таким образом вам не нужно увеличивать его вручную.
  • Вам не нужно инициализировать num1 или num2 до нуля в начале.
  • приращений немного чище писать так: correct += 1
  • Вы, вероятно, хотите сказать print('the correct answer is', num1*num2) или иначе вы просто распечатать их неправильный ввод.
Смежные вопросы