Generator for the collatz conjecture sequence I tried to write this code as concisely as possible. Is this the best way to do it?

def collatz(n):
    """
    Generator for collatz sequence beginning with n

    &gt;&gt;&gt; list(collatz(10))
    [5, 16, 8, 4, 2, 1]
    """
    while n != 1:
        n = n / 2 if n % 2 == 0 else 3*n + 1
        yield int(n)
The only improvement I see here is to divide n by 2 using // (since we are dealing with Python 3.x) and to remove the explicit conversion to int (int(n)):

while n != 1:
    n = n // 2 if n % 2 == 0 else 3*n + 1
    yield n


Also, I suggest you put a single space before and after the multiplication operator in 3*n, so that it becomes 3 * n.

Hope that helps.