# [Tutor] Squaring every digit in number

Nathan Hilterbrand nhilterbrand at gmail.com
Sat Nov 21 09:10:48 EST 2015

```On 11/21/2015 7:05 AM, Aadesh Shrestha wrote:
> I am currently taking challenges on codewars.
> Problem: Square Every Digit
>
> is there a better solution than this which requires less code?
>
> def square_digits(num):
>      arr = []
>      list  = []
>      while(num !=0):
>          temp = num%10
>          num = num /10
>          arr.insert(0, temp)
>      for i in arr:
>
>          list.append( i*i)
>      str1 = ''.join(str(e) for e in list)
>      return int(str1)
>
>
>
> ************************
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> To unsubscribe or change subscription options:
> https://mail.python.org/mailman/listinfo/tutor
"Better" is somewhat subjective, but "less code" is not so much so:

def square_digits(num):
try:
return int(''.join((str(int(n)**2) for n in str(int(num)))))
except ValueError:
return 0

The "str(int(num))" could be shortened to "str(num)", also, but I liked
being able to accept any argument that could be converted to an int, and
also raising the ValueError before looping .

Have fun at codewars

Nathan Hilterbrand

```