b=button() が while ループの中にないので、 b は起動時に読んだ値がずーっと使われ続けます。