Summing the digits of a sum of digits of a sum
Despite your code being cumbersome, I would like to point out that you did well by writing for x in zstr1, iterating over the characters of the string.  Python beginners often try to iterate over character indexes instead, resulting in unnatural Python code.



I would decompose the problem differently than @jonrsharpe.  sum_digits(n) is a generally useful operation to define as a function.

def sum_digits(n):
    return sum(int(char) for char in str(n))

sum_digits(sum_digits(b_yr + b_mo + b_dy))




Actually, it's not necessary to conflate the summing and the digit breakdown.

def digits(n):
    return [int(char) for char in str(n)]

sum(digits(sum(digits(b_yr + b_mo + b_dy))))


The last line reads just like the problem description: "sum of the digits of the sum of the digits of the year, month, and day".



Here's another implementation of digits(n), using a generator.  This avoids stringification.

def digits(n):
    """Produce the base-10 digits of n from least to most significant."""
    while n:
        yield n % 10
        n /= 10