Сумма чисел в строке python

Сумма чисел в строке python

Пользователь вводит числа в строку через пробел. Когда он нажимает Enter, на экран выводится сумма. Пользователь может снова вводить числа. Их сумма будет добавляться к уже посчитанной, и итог выводиться на экран. Когда вместо чисел вводится специальный символ, программа завершается.

В коде подсчет суммы чисел очередной строки вынесен в отдельную функцию. В ней строка преобразуется в список чисел, после чего из функции возвращается сумма его элементов.

В основном коде программы значение, которое возвращает функция, добавляется к переменной s, и именно ее значение выводится на экран. Таким образом накапливается общая сумма чисел из всех введенных строк.

Поскольку не известно, сколько строк чисел захочет ввести пользователь, то цикл while задан как бесконечный. Выходом из него служит оператор break, который срабатывает, если пользователь вводит символ подчеркивания ‘_’.

Генерируется случайное трехзначное число. Вычисляется сумма его цифр.

В данном случае задачу можно решить с помощью линейного алгоритма, т. к. известно количество разрядов числа и это количество небольшое. Однако подобные задачи, особенно когда неизвестно количество разрядов числа, решаются с помощью циклов.

1-й вариант — с помощью математических операций:

2-й вариант — путем преобразования к строке:

если я хочу найти сумму цифр числа, то есть:

  • вход: 932
  • выход: 14 , которая составляет (9 + 3 + 2)

какой самый быстрый способ сделать это?

я инстинктивно сделал:

и я нашел это в интернете:

что лучше использовать для скорости, и есть ли другие методы, которые еще быстрее?

11 ответов

вы можете сделать это чисто целыми числами, и это будет наиболее эффективно:

но обе строки, которые вы разместили, в порядке.

еще быстрее версия без дополненных заданий:

Читайте также:  Скайрим мод улучшенные спутники

Если вы хотите продолжать суммировать цифры, пока не получите цифра (одна из моих любимых характеристик чисел, кратных 9) вы можете сделать:

который на самом деле оказывается довольно быстрым.

Это может помочь

выполнение некоторых задач Codecademy я решил это, как:

вы также можете использовать это:

"результат" инициализируется с 0.

внутри цикла for число (n) преобразуется в строку, которую нужно разделить с индексом цикла(i) и получить каждую цифру. —> str(n) [i: i+1]

эта нарезанная цифра преобразуется обратно в целое число — — — ->int(str (n)[i:i+1])

и, следовательно, добавлен к результату.

лучший способ-использовать понимание списка:

print (sum) / / обязательно добавьте пробел над этой строкой

Ссылка на основную публикацию
Adblock detector