Python - Использование оператора if, + while условие | Вывести целые числа, прервать при наличии цифр - PullRequest
0 голосов
/ 12 февраля 2020

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

Мой код:

Total = 0
Count = 0
while True:
    n = input ('Enter integers')

    if (n.isdigit() == True):
        print (n)
    else:
        break
    n = int(n)    
    total = total + n
    count = count + 1
    sum = sum(total)

Я могу запустить целые числа, но она не может разбиться, когда цифры набрал ... Кто-нибудь знает почему? Также я ожидаю, что функция суммы будет работать, но она не может сложить вместе целые числа, которые я ввожу.

Спасибо!

Ответы [ 3 ]

0 голосов
/ 12 февраля 2020
total = 0
count = 0
while True:
    print('Enter integers')
    n = input ()
    if (n.isdigit() == True):
        print (n)
        n = int(n)    
        total = total + n
        count = count + 1
    else:
        print('The total is ' + str(total))
        print('You put ' + str(count) + ' numbers')
        break
0 голосов
/ 12 февраля 2020

Передав процесс ввода итеративной функции, вы сможете напрямую использовать функцию sum () для получения суммы:

def inputIntegers():
    while True:
        result = input("Enter integers: ")
        if not result.isdigit(): break
        yield int(result)

print("total:",sum(inputIntegers()))


Enter integers: 3
Enter integers: 25
Enter integers: 6
Enter integers: 4
Enter integers: 
total: 38
0 голосов
/ 12 февраля 2020

Вам не нужна строка суммы, и она отлично работает:

total = 0
count = 0
while True:
    n = input('Enter integers')
    if n.isdigit():
        print(n)
    else:
        break
    total += n
    count += 1
print(total)
...