2016-09-19 3 views
-3

Я должен написать программу, которая отображает числа от 100 до 200, по десять на каждую строку, которые делятся на 5 или 6, но не обе. Это мой код до сих пор. Я знаю, что это основная проблема, поэтому вы можете сказать мне базовый код, который мне не хватает, а не шаги «быстрого доступа». Любая помощь приветствуется!Базовая петля/Python

def main(): 
     while (num >= 100) and (num <= 200): 
     for (num % 5 == 0) or (num % 6 == 0) 
     print (num) 

    main() 
+1

У этого есть ясные Синтаксические ошибки, ОП. Этот цикл 'for' неверен и нет, например,': ', например (я предполагаю, что отступ из-за копирования/вставки). Вместо того, чтобы публиковать вопрос, который даже недействителен, я бы посоветовал вам взглянуть на один из многих учебных пособий Python. –

ответ

0

Вы должны инициализировать каждую переменную, используя в коде While (условие) сломается, когда условие ложно. Поскольку ваше условие зависит от num, но num никогда не изменяется в вашем коде, цикл бесконечности будет происходить. Вам нужно добавить num = num + 1 в конец вашего цикла. Это предполагается использовать, если не для каждого итератора. И условие, которое вы использовали для своей проблемы, неверно.

Должно быть так:

def main(): 
    num = 100 
    while (num >= 100) and (num <= 200): 
     if ((num % 5 == 0) or (num % 6 == 0)) and (num % 30 != 0): 
      print (num) 
     num = num + 1 
main() 
1

Это, как я бы об этом. Я бы рекомендовал использовать цикл for для цикла while, если вы знаете диапазон, в котором вы нуждаетесь. У вас меньше шансов попасть в бесконечный цикл. Причина для переменной n, так как вы сказали, что вам нужно 10 номеров на строку. N переменная будет отслеживать количество правильных чисел, которые вы найдете, чтобы вы знали, когда у вас есть десять результатов, и можете использовать обычный оператор печати, который автоматически включает в себя новую строку. Второй оператор печати не будет добавлять новую строку.

n = 0 
for i in range(100,201): 
    if (i%5 == 0 or i%6 == 0) and not (i%5 == 0 and i%6 == 0): 
     n += 1 
     if n%10 == 0: 
      print(i) 
     else:    
      print(str(i) + ", ", end="") 
+1

Зачем ему это делать? Я не стану сомневаться в правильности вашего ответа, скорее, я призываю вас объяснить это. –

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