由input()函数得到的输入是字符串类型的(str),所以停止的判断条件是

if n == '0':
    break

因为’0‘不是False。
原程序会导致第一个while循环无法停止。