int
をstring
に入れたいのですが。これは私が現時点でやっていることです:
num = 40
plot.savefig('hanning40.pdf') #problem line
私はプログラムをいくつかの異なる数で実行しなければならないので、私はループをしたいのです。しかし、このように変数を挿入してもうまくいきません。
plot.savefig('hanning', num, '.pdf')
Python文字列に変数を挿入する方法
plot.savefig('hanning(%d).pdf' % num)
%
演算子は、文字列を追跡するときに、フォーマットコード(この場合は%d
)を介してその文字列に値を挿入することを可能にします。詳しくは、Pythonの資料を参照してください。
https://docs.python.org/3/library/stdtypes.html#printf-style-string-formatting
ああ、たくさんの、いろいろなやり方….
文字列の連結:
plot.savefig('hanning' + str(num) + '.pdf')
変換指定子
plot.savefig('hanning%s.pdf' % num)
ローカル変数名を使う:
plot.savefig('hanning%(num)s.pdf' % locals()) # Neat trick
str.format()
:を使う
plot.savefig('hanning{0}.pdf'.format(num)) # Note: This is the new preferred way
F文字列を使う:
plot.savefig(f'hanning{num}.pdf') # added in Python 3.6
string.Template
:を使う
plot.savefig(string.Template('hanning${num}.pdf').substitute(locals()))
フォーマットされた文字列リテラルの導入 (Python 3.6では略して "f-strings")で、より簡潔な構文でこれを書くことが可能になりました。
>>> name = "Fred"
>>> f"He said his name is {name}."
'He said his name is Fred.'
質問の例では、このようになります。
plot.savefig(f'hanning{num}.pdf')
あなたが投稿したすべてのコードが何をするのか正確にはわからないが、タイトルにある質問に答えるために、strを通常の文字列concat関数として使用することができる。
"hello " + str(10) + " world" = "hello 10 world"
それが役立つことを願っています!
一般的には、次のようにして文字列を作成することができます。
stringExample = "someString " + str(someNumber)
print(stringExample)
plot.savefig(stringExample)
私はこれを拡張したものが必要でした。文字列に単一の数字を埋め込む代わりに、 'file1.pdf'、 'file2.pdf'などの形式の一連のファイル名を生成する必要がありました。働いた:
['file' + str(i) + '.pdf' for i in range(1,4)]
文字列に複数の値を入れたい場合はformat
を利用できます。
nums = [1,2,3]
plot.savefig('hanning{0}{1}{2}.pdf'.format(*nums))
文字列hanning123.pdf
になります。これは任意の配列で実行できます。
あなただけを使用してnun変数を文字列にキャストする必要があります
str(num)