[python] 문자열 안에 변수를 어떻게 넣습니까?

나는 넣어 싶습니다 intstring. 이것이 내가 지금하고있는 일입니다.

num = 40
plot.savefig('hanning40.pdf') #problem line

몇 가지 다른 숫자로 프로그램을 실행해야하므로 루프를 수행하고 싶습니다. 그러나 다음과 같이 변수를 삽입하면 작동하지 않습니다.

plot.savefig('hanning', num, '.pdf')

파이썬 문자열에 변수를 어떻게 삽입합니까?



답변

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을 일반적인 문자열 연결 함수로 +를 사용할 수 있습니다.

"hello " + str(10) + " world" = "hello 10 world"

희망이 도움이됩니다!


답변

일반적으로 다음을 사용하여 문자열을 만들 수 있습니다.

stringExample = "someString " + str(someNumber)
print(stringExample)
plot.savefig(stringExample)


답변

문자열에 여러 값을 넣고 싶다면 사용할 수 있습니다 format

nums = [1,2,3]
plot.savefig('hanning{0}{1}{2}.pdf'.format(*nums))

문자열이 hanning123.pdf됩니다. 이것은 모든 배열로 수행 할 수 있습니다.


답변

확장 버전이 필요했습니다. 문자열에 단일 숫자를 포함시키는 대신 ‘file1.pdf’, ‘file2.pdf’형식의 일련의 파일 이름을 생성해야했습니다. 일했다 :

['file' + str(i) + '.pdf' for i in range(1,4)]