Задать вопрос
@Ezio1476
Начинающий программист.

Правильно ли я пишу код?

У меня в задаче нужно н-ти сумму цифр натурального числа n. Можете пж посмотреть правильно ли я написал код и подправить если что ?
n=float(input('Введите число'))
S=0
while n>0:
      S=S+n%10
      n=n//10
print(S)
input()
  • Вопрос задан
  • 301 просмотр
Подписаться 1 Оценить 2 комментария
Пригласить эксперта
Ответы на вопрос 3
aRegius
@aRegius
Python Enthusiast
Пробуйте при помощи функции sum() (свежо предание):
>>> num = 5
>>> sum(int(i) for i in str(num))
5
>>> num = 25
>>> sum(int(i) for i in str(num))
7
>>> num = 325
>>> sum(int(i) for i in str(num))
10
Ответ написан
Комментировать
@akonovalov
Программист на компьютере
Когда-то решал такую же задачку, чуть позднее подсмотрел чуть более лаконичный вариант:
def sum_digits(n):
    r = 0
    while n:
        r, n = r + n % 10, n / 10
    return r

P.S. Не пренебрегайте PEP8, все взрослые пацаны-питонисты стараются ему следовать.
Ответ написан
Комментировать
1 Число натуральное, поэтому лучше: n=int(input("enter number: "))
2 есть способы проще, но если через цикл while, то работает правильно
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы