Python は、数値の乗算を行うと思われる場所で文字列の乗算を行っていますが、その理由はわかりません。
>>> print('%d' % 2 * 4)
2222
>>> print('%d' % (2 * 4))
8
型を整数に強制しても何もしません。(私はこれが冗長であることを理解していますが、それは私にとってばかチェックです:
>>> print('%d' % int(2) * int(4))
2222
明らかに私は問題を解決しました (括弧を追加すると解決します) が、ここで何が起こっているのでしょうか? これが覚えておかなければならない単なる癖であれば、それで問題ありませんが、この背後にあるロジックを理解したいと思います。