\u0026quot;\u0026quot;\u0026quot;カーソル移動の仕様を理解とあるのが、
print関数の end 引数を使って
文字列の後の改行(\
)の出力を変更することかもしれませんので、
その前提で回答します。
黒い四角は〇に変えてあります。
\u0026quot;\u0026quot;\u0026quot;
msg = \u0026quot;数値を入れてください。→\u0026quot;
while True:
odd_num = int(input(msg))
if odd_num \u0026amp;1:
break
msg = \u0026quot;再入力してください。→\u0026quot;
# 通常は以下のコメント部分のようにすると思いますが、
# 課題なのでコメントにしておきます。
# for i in range(odd_num):
# print(\u0026quot;\u0026quot;* (odd_num - i - 1) + \u0026quot;〇\u0026quot;* (2 * i + 1))
# カーソル制御のために end=\u0026quot;\u0026quot;が利用可能な場合
for i in range(odd_num):
for _ in range(odd_num - i - 1):
print(\u0026quot;\u0026quot;, end=\u0026quot;\u0026quot;)
for _ in range(2 * i + 1):
print(\u0026quot;〇\u0026quot;, end=\u0026quot;\u0026quot;)
print(\u0026quot;\u0026quot;)