为什么负数没有被正确计算?

时间:2017-04-17 05:11:57

标签: python-3.x

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'运行总计中。 我已经使用Python 3x大约一个星期了,所以要温柔:) 在此先感谢您的帮助!

编辑:根据凯文的建议,我已将其重新设计为(工作)循环,这是一个很好的循环吗?它似乎工作,我只是在寻找指针,因为我有点挣扎于Python逻辑。非常感谢凯文,希望我能帮助你!

下面发布的新代码:

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)

1 个答案:

答案 0 :(得分:0)

在b部分,您忘记了复制/粘贴代码,将所有'a'更改为'b',并且仍然有两次'a':

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

所以只有在第二个数字为0或负数时才会看到错误的结果。