web-dev-qa-db-ja.com

Python 3.4.1改行を出力する

私は私が今しばらくの間理解しようとしていたという簡単な質問があります。入力された数値範囲(高、低)を取得し、入力された数値を使用して、その範囲内にその数値の倍数があるかどうかを調べるコードを書いています。次に、奇数と偶数の合計を加算し、その数を加算します。正しく計算するためのすべてが揃っていますが、問題は、「90 75 60 4530」の行を他の「3つの偶数の合計が180」の行から分離できないことです。簡単なことだと思いますが、わかりません。誰かが私を正しい方向に向けることができるでしょうか?時間と配慮を事前に感謝します。

以下のコードは次を返します。

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()
4
WillyJoe
print('\n', even_count, ' even numbers total to ', even_sum, sep='')

それをする必要があります。手動でどこかに新しい行を挿入するだけです

4
Cocksure

問題の最小限の例:

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


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

1つのソリューションの最小限の例:

>>> 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)
1
jonrsharpe