2017-04-17 18 views
-1
import time 

total = 0 
pos = 0 
zeroes = 0 
neg = 0 

print('This program will add any seven numbers for you') 
time.sleep(2) 
print() 
a = int(input('Please enter the first number: ')) 
total = total + a 
if a > 0: 
    pos = pos + 1 
elif a == 0: 
    zeroes = zeroes + 1 
elif a < 0: 
    neg = neg + 1 


time.sleep(2) 


b = int(input('Please enter the second number: ')) 
total = total + b 
if b > 0: 
    pos = pos + 1 
elif a == 0: 
    zeroes = zeroes + 1 
elif a < 0: 
    neg = neg + 1 


time.sleep(2) 


c = int(input('Please enter the third number: ')) 
total = total + c 
if c > 0: 
    pos = pos + 1 
elif c == 0: 
    zeroes = zeroes + 1 
elif c < 0: 
    neg = neg + 1 


time.sleep(2) 


d = int(input('Please enter the fourth number: ')) 
total = total + d 
if d > 0: 
    pos = pos + 1 
elif d == 0: 
    zeroes = zeroes + 1 
elif d < 0: 
    neg = neg + 1 


time.sleep(2) 


e = int(input('Please enter the fifth number: ')) 
total =total + e 
if e > 0: 
    pos = pos + 1 
elif e == 0: 
    zeroes = zeroes + 1 
elif e < 0: 
    neg = neg + 1 


time.sleep(2) 


f = int(input('Please enter the sixth number: ')) 
total = total + f 
if f > 0: 
    pos = pos + 1 
elif f == 0: 
    zeroes = zeroes + 1 
elif f < 0: 
    neg = neg + 1 


time.sleep(2) 


g = int(input('Please enter the seventh number: ')) 
total = total + g 
if g > 0: 
    pos = pos + 1 
elif g == 0: 
    zeroes = zeroes + 1 
elif g < 0: 
    neg = neg + 1 


time.sleep(2) 

print() 
print('The sum of your entries is: ', + total) 


time.sleep(2) 
print() 

print('You entered', + pos, 'positive numbers') 


time.sleep(2) 
print() 

print('You entered', + zeroes, 'zeroes') 

time.sleep(2) 
print() 

print('You entered', + neg, 'negative numbers') 
print() 

time.sleep(3) 

こんにちは!私は、ユーザーが入力するすべての負の数の連続した合計を維持する変数 'neg'を持っています。それは、負の数がコードの終わりに「neg」の合計に常に追加されているように見えます。 私は約1週間Python 3xで作業していますので、穏やかにしてください:) おかげさまで助けてくれてありがとう!負数が正しくカウントされないのはなぜですか?

編集:これをKevinのアドバイスに従って(作業中の)ループに書き直しました。これは良いループですか?それはうまくいくように思えますが、私はポインタを探しています。私はPythonロジックに苦労しています。ケビンに大きな感謝、私はあなたをupvoteすることを望む! 「」が二回あなたは「」「B」にすべての変更のコピー/貼り付けコードに忘れてしまったBとのセクションで

import time 

sums = 0 
pos = 0 
neg = 0 
zero = 0 
numb = 0 
user_numb = 0 

running = True 

print('This program will add any 7 numbers for you') 
time.sleep(.5) 
print() 

while running: 
    user_numb = int(input('Please enter a number: ')) 
    sums = user_numb + sums 
    numb = numb + 1 
    print() 
    if user_numb > 0: 
     pos = pos + 1 
    elif user_numb < 0: 
     neg = neg + 1 
    elif user_numb == 0: 
     zero = zero + 1 
    if numb == 7: 
     running = False 

print() 
time.sleep(2) 
print('The sum of the numbers entered was: ', + sums) 
print() 
time.sleep(2) 
print('You entered', + pos, 'positive numbers') 
print() 
time.sleep(2) 
print('You entered', + neg, 'negative numbers') 
print() 
time.sleep(2) 
print('You entered', + zero, 'zeroes') 
print() 
print() 
time.sleep(3) 
+0

コピーして貼り付けるときに、転記エラーが発生しました。他の文字の代わりに誤って 'a'を使用した場所が少なくとも1つあります。このようなエラーが発生しないように、この全体をループまたは関数として書き直す必要があります。 – Kevin

+0

ありがとう!私は実際にif文の上にあるコードを見ながらこれをすべて打ち出しました。それは真の瞬間です。これは、私がやっているチュートリアルのループになっていた、それはラボの一つです。私はそのセクションを読んで、すべてをループとしてやり直すつもりです。感謝万円! – DrProfessor85

+0

@Kevin新しいコードについてどう思いますか?あなたはループに関して何か指針を持っていますか?再度、感謝します! – DrProfessor85

答えて

0

、まだ持っている::

新しいコードは以下の投稿

b = int(input('Please enter the second number: ')) 
total = total + b 
if b > 0: 
    pos = pos + 1 
elif a == 0: # CHANGE TO 'b' 
    zeroes = zeroes + 1 
elif a < 0: # CHANGE TO 'b' 
    neg = neg + 1 

したがって、2番目の数字が0または負の場合にのみ間違った結果が表示されます。

+0

ありがとう!あなたはこの質問に投稿した新しいコードを見て、あなたが何か指針を持っているかどうか教えてください。私はPythonロジックで大まかな動きをしています。 – DrProfessor85

+0

私は 'for _ in range(7) 'で' while running'を置き換えます。そして、あなたは 'numb'カウンタをもう必要としません。そして、ループヘッダーでそれが繰り返される頻度を直接見ることができます。 – Claudio

+0

ブール値を使用するよりも簡単に思えるので、その部分をスクラップすることができます。ありがとう! – DrProfessor85

関連する問題