2015-06-23 4 views
0

Я изучаю, как использовать случайные и математические функции, но я никогда не понимал петли. поэтому давайте скажем, что мне нужен цикл, который будет задавать случайные математические проблемы, пока не будет сказано, чтобы остановить. Для чего-то простого, например, добавления чисел от 0 до 9, как написать цикл, который продолжает генерировать проблемы. это Пример, как это может выглядеть следующим образом:цикл, который будет генерировать математические проблемы до тех пор, пока не будет остановлен

Math() 
Are you ready? yes 
0 + 5 = 5 
4 + 9 = 13 
3 + 2 = 89 
7 + 7 = 14 
5 + 4 = 9 
1 + 8 = stop 

до сих пор у меня есть это, но я не знаю, как сделать петлю:

def Math(): 
    ready=input('Are you ready?') 
    num1 = int(random.randint(0,10)) 
    num2 = int(random.randint(0,10)) 
    if ready = 'yes': 
     while result != 'stop': 
      num1+'+'+num2 = result 

Я честно не знаю, как сделать цикл while. пожалуйста помогите. Спасибо

+0

Где 'result' приходят из ... вам нужно' == 'в' yes'' готов =» – LittleQ

+0

В качестве общего подхода к петлям: 1. начать с' время True' loop; 2. выяснить, какой код должен быть перед циклом, повторяться в цикле или после цикла; 3. добавить (условный) разрыв к телу цикла; 4. Посмотрите, может ли цикл быть реорганизован как цикл for, чтобы использовать условие break (или на некоторых языках, чтобы стать циклом do-while) – o11c

ответ

0

Я предполагаю, что вы хотите:
1. печать 'num1 + num2 ='
2. получить result с клавиатуры 3. Цикл до result является 'стоп'

def Math(): 
    ready = raw_input('Are you ready?') 
    if ready != 'yes': 
     return 
    while True: 
     num1 = int(random.randint(0,10)) 
     num2 = int(random.randint(0,10)) 
     result = raw_input('%d + %d = ') 
     if result == 'stop': 
      return 
0

Вам не хватает нескольких вещей.

  • Необходимо указать ready == 'yes', не присваивать ready = 'yes'.
  • Вы также должны генерировать новые числа num1 и num2 внутри цикла, чтобы каждый раз получать новые числа.
  • Вы также должны каждый раз запрашивать ответ пользователя внутри цикла. Прямо сейчас result исходит из ниоткуда в вашем коде.
  • Вам не нужно указывать результат random.randint на номер int, это уже int, отсюда и название randint.

import random 

def Math(): 
    if raw_input('Are you ready? ') != 'yes': 
     return 
    while True: 
     num1 = random.randint(0,10) 
     num2 = random.randint(0,10) 
     result = raw_input('%d + %d = ' % (num1, num2)) 
     if result == 'stop': 
      break 

if __name__ == '__main__': 
    Math()