F文字列を使用していますが、変数に依存する形式を定義する必要があります。
_def display_pattern(n):
temp = ''
for i in range(1, n + 1):
temp = f'{i:>3}' + temp
print(temp)
_
関連する場合、display_pattern(5)
の出力は次のとおりです。
_ 1
2 1
3 2 1
4 3 2 1
5 4 3 2 1
_
フォーマット_>3
_を操作して、代わりに変数を渡すことは可能かどうか疑問に思います。たとえば、私は次のことを試しました。
_def display_pattern(n):
spacing = 4
format_string = f'>{spacing}' # this is '>4'
temp = ''
for i in range(1, n + 1):
temp = f'{i:format_string}' + temp
print(temp)
_
ただし、次のエラーが発生します。
_Traceback (most recent call last):
File "pyramid.py", line 15, in <module>
display_pattern(8)
File "pyramid.py", line 9, in display_pattern
temp = f'{i:format_string}' + temp
ValueError: Invalid format specifier
_
このコードを機能させる方法はありますか?重要な点は、変数を使用して間隔を制御し、パディングの量を決定できることです。
アラインメントトークンとパディングトークンを互いに分離しておく必要があります。
def display_pattern(n):
padding = 4
align = ">"
temp = ''
for i in range(1, n + 1):
temp = f'{i:{align}{padding}}' + temp
print(temp)
編集:
これは完全に正しくないと思います。私はいくつかのテストを行い、次の作業も行いました:
def display_pattern(n):
align = ">4"
temp = ''
for i in range(1, n + 1):
temp = f'{i:{align}}' + temp
print(temp)
だから私はあなたの方法がうまくいかない理由を本当に言うことはできません...