2016-10-10 7 views
-2

Я работаю над следующей проблемой.Как суммировать числа от ввода?

Напишите программу, которая постоянно запрашивает положительные целые числа и останавливается, когда сумма введенных чисел превышает 1000. Но мой код останавливается раньше, если введено отрицательное целое число.

Номера не будут суммироваться.

Мой код:

x = int(input("Enter an integer:")) 
total = 0 
sum = 0 
while (0 <= x): 
    if sum <= 1000: 
     x += 1 
     sum += (int(input("Enter an integer:"))) 
    elif sum >= 1000: 
     break 

ответ

0
x = 0 
total = 0 
sum = 0 
while sum <= 1000: 
    x = int(input("Enter an integer:")) 
    if x<0: 
     print("Invalid negative value given") 
     break 
    sum += x 


Первое:

if sum >= 1000: 
    ... 
elif sum < 1000: 
    ... 

является излишним, так как если вы Чек для sum >= 1000 и elif достигнута, вы aready знаете, что условие было False и поэтому sum < 1000 должно быть правдой. Таким образом, вы можете заменить его

if sum >= 1000: 
    ... 
else: 
    ... 


Второй:
Вы хотите использовать x, чтобы проверить, является ли входной отрицательный. До сих пор вы просто увеличивали его на единицу каждый раз. Вместо этого вы должны сначала ввести ввод в x, а затем добавить его в sum. Так вот так:

x = int(input("Enter an integer:")) 
if x<0: 
    break 
sum += x 
0

Если вы хотите остановиться, как только встретите отрицательное число.

x = 0 
total = 0 
sum = 0 
while (sum <= 1000): 
    x = (int(input("Enter an integer:")) 
    if (x < 0): 
     break 
    else: 
     sum += x 
Смежные вопросы