Recently, I was solving the Happy Numbers project from my Projects collection (a top repo on GitHub for a few weeks now). A major part of the problem was finding sum of square of digits of a number.

What I wrote initially was this:

def sum_digits(num):
    sum_dig = 0
    while num >= 0:
        last_digit = num % 10 # extract the last digit
        sum_dig += last_digit ** 2 # sum of square of digit
        num /= 10 # strip of last digit

The problem was, it wasn't very pleasing to the eye!

But then I thought of this beautiful one-liner..

sum_digits = sum(int(digit) ** 2 for digit in str(num))

Elegant, isn't it?

- Karan Goel
1

View comments

joe - A .gitignore magician in your command line
joe - A .gitignore magician in your command line
2
thekarangoel is now karan on Github
thekarangoel is now karan on Github
2
Sum of digits of a number in one line (or any other mutation)
Sum of digits of a number in one line (or any other mutation)
1
One-liner if..else statements.
One-liner if..else statements.
3
A list of 100+ projects to complete to master Python.
A list of 100+ projects to complete to master Python.
6
Blog Archive
About Me
About Me
Loading
Dynamic Views theme. Powered by Blogger. Report Abuse.