2014-08-27 4 views
2

У меня есть быстрый вопрос, который я пытался выяснить в течение некоторого времени. Я пишу код, который принимает введенные диапазоны чисел (высокий и низкий), а затем использует введенный номер, чтобы узнать, есть ли кратные числа этого диапазона в пределах диапазона. Затем он суммирует сумму нечетных и четных чисел и добавляет, сколько их есть. У меня есть все, чтобы правильно рассчитать, но моя проблема заключается в том, что я не могу отделить строку «90 75 60 45 30» от другой строки «3 четных числа всего до 180». Я уверен, что это что-то простое, но я не могу понять. Кто-нибудь сможет указать мне в правильном направлении? заранее заблаговременно за время и внимание.Python 3.4.1 Печать новой строки

Нижеприведенные возвращает код:

Number of high range?: 100 

Number of low range?: 20 

Multiple to find?: 15 

90 75 60 45 30 3 even numbers total to 180 

2 odd numbers total to 120 

Код:

def main(): 


    x = int(input('Number of high range?: ')) 
    y = int(input('Number of low range?: ')) 
    z = int(input('Multiple to find?: ')) 
    show_multiples(x,y,z) 

def show_multiples(x,y,z): 

    for a in range(x,y,-1): 

     if a % z == 0: 

      print (a,end=' ') 

      even_count = 0 
      even_sum = 0 
      odd_count = 0 
      odd_sum = 0 
    for num in range(x,y,-1): 
     if num % z == 0 and num % 2 == 0: 
      even_count += 1 
      even_sum += num 
    for number in range(x,y,-1): 
     if number % z == 0 and number % 2 == 1: 
      odd_count += 1 
      odd_sum += number 

    print(even_count,'even numbers total to',even_sum) 
    print(odd_count,'odd numbers total to',odd_sum) 

main() 
+1

Просто добавьте вызов 'print()' перед символом 'for num in (x, y, -1):' loop. – martineau

+0

Хотя это действительно привело к тому, что линия там, где я хочу. Он также укладывал части чисел друг на друга, что для меня похоже на прыжок с одной сковороды на другую. Но спасибо вам за ответ. – WillyJoe

ответ

3
print('\n', even_count, ' even numbers total to ', even_sum, sep='') 

должны это сделать. Просто вручную поместить в новую строку где-то

0

Минимальный пример задачи:

>>> def test1(): 
    for _ in range(3): 
     print("foo", end=" ") 
    print("bar") 


>>> test1() 
foo foo foo bar # still using end=" " from inside the loop 

Минимальный пример одного решения:

>>> def test2(): 
    for _ in range(3): 
     print("foo", end=" ") 
    print() # empty print to get the default end="\n" back 
    print("bar") 


>>> test2() 
foo foo foo 
bar 

Этот пустой print может сидеть где-нибудь между концом петля for, в которой вы print отдельные номера и print(even_count, ..., например:

... 
     odd_sum += number 

print() 
print(even_count, 'even numbers total to', even_sum) 
+0

это не выводит выходные данные на отдельные строки –

+0

@PadraicCunningham не следует, извините; этот подход * будет * разделять '90 75 60 45 30 3 даже числа всего до 180' на две отдельные строки. – jonrsharpe

+0

@ jonsharpe, он помещает все это в одну строку, я имею в виду использование 'print (even_count, 'even numbers total to', even_sum, end =" ")', если я не понимаю вас –

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