Chciałbym umieścić int
w string
. Oto co robię w tej chwili:
num = 40
plot.savefig('hanning40.pdf') #problem line
Muszę uruchomić program dla kilku różnych liczb, więc chciałbym zrobić pętlę. Ale wstawienie zmiennej w ten sposób nie działa:
plot.savefig('hanning', num, '.pdf')
Jak wstawić zmienną do ciągu Python?
%
operator jest przestarzały od wersji Python 3.1. Nowym preferowanym sposobem jest wykorzystanie.format()
metody omówionej w PEP 3101 i wspomnianej w odpowiedzi Dana McDougalla.Och, wiele, wiele sposobów ...
Łączenie ciągów:
Specyfikator konwersji:
Używanie lokalnych nazw zmiennych:
Używanie
str.format()
:Korzystanie z ciągów F:
Używanie
string.Template
:źródło
'foo %d, bar %d' % (foo, bar)
.plot.savefig('hanning{num}s.pdf'.format(**locals()))
plot.savefig(f'hanning{num}.pdf')
. Dodałem odpowiedź z tymi informacjami.Dzięki wprowadzeniu sformatowanych literałów łańcuchowych (w skrócie „f-stringów”) w Pythonie 3.6, można teraz napisać to przy pomocy krótszej składni:
Na przykładzie podanym w pytaniu wyglądałoby to tak
źródło
Nie jestem pewien, co dokładnie robi cały opublikowany kod, ale aby odpowiedzieć na pytanie postawione w tytule, możesz użyć + jako zwykłej funkcji concat łańcucha, a także str ().
Mam nadzieję, że to pomaga!
źródło
+
należy unikać ciągów znaków, ponieważ jest to niezwykle kosztowneOgólnie rzecz biorąc, możesz tworzyć ciągi znaków za pomocą:
źródło
Jeśli chcesz wstawić wiele wartości do ciągu, z którego możesz skorzystać
format
Powoduje powstanie ciągu
hanning123.pdf
. Można to zrobić za pomocą dowolnej tablicy.źródło
Potrzebowałem rozszerzonej wersji tego: zamiast osadzać pojedynczy ciąg w ciągu, musiałem wygenerować serię nazw plików w postaci „plik1.pdf”, „plik2.pdf” itd. Tak to wygląda pracował:
źródło
Musisz po prostu rzucić zmienną num na ciąg znaków za pomocą
źródło