명명된 매개 변수의 문자열 형식을 지정하시겠습니까?
정말 간단한 질문인 건 알지만, 구글 검색 방법을 전혀 모르겠어요.
어떻게 해야 합니까?
print '<a href="%s">%s</a>' % (my_url)
하도록my_url
두 번 사용됩니까?이름을 "이름"으로 지어야 할 것 같습니다.%s
그런 다음 구문 분석에 딕트를 사용합니다만, 올바른 구문을 모르겠습니다.
참고로, 나는 내가 그냥 사용할 수 있다는 것을 알고 있습니다.my_url
파람에서 두 번, 하지만 그게 중요한 게 아닙니다 :)
print '<a href="%(url)s">%(url)s</a>' % {'url': my_url}
Python 2.6+ 및 Python 3에서는 새로운 문자열 형식 지정 방법을 사용하도록 선택할 수 있습니다.
print('<a href="{0}">{0}</a>'.format(my_url))
당신이 논쟁을 반복하는 것으로부터 당신을 구하거나, 혹은.
print('<a href="{url}">{url}</a>'.format(url=my_url))
이름이 지정된 매개 변수를 원하는 경우.
print('<a href="{}">{}</a>'.format(my_url, my_url))
이는 엄밀한 위치에 있으며() 형식의 주의 사항() 인수는 이름 없는 인수가 먼저 와야 하는 Python 규칙을 따르고, 이름 있는 인수 다음에 *args(목록 또는 튜플과 같은 시퀀스) 및 *kwargs(당신에게 무엇이 좋은지 알고 있는 경우 문자열로 키가 지정된 딕트)를 따릅니다.보간점은 레이블에서 명명된 값을 대체하여 먼저 결정된 다음 왼쪽에서 위치를 지정합니다.그래서, 당신은 이것도 할 수 있어요.
print('<a href="{not_my_url}">{}</a>'.format(my_url, my_url, not_my_url=her_url))
하지만 이건...
print('<a href="{not_my_url}">{}</a>'.format(my_url, not_my_url=her_url, my_url))
Python 3.6+의 솔루션
Python 3.6은 리터럴 문자열 포맷을 도입하여 문자열 외부에서 명명된 매개 변수를 반복하지 않고 명명된 매개 변수를 포맷할 수 있습니다.
print(f'<a href="{my_url:s}">{my_url:s}</a>')
평가합니다.my_url
그래서 만약 그것이 정의되지 않는다면 당신은 받을 것입니다.NameError
사실, 대신에my_url
문자열로 평가되는 한 임의의 파이썬 식을 작성할 수 있습니다.:s
형식 지정 코드).문자열이 아닐 수도 있는 식의 결과에 대한 문자열 표현을 원하는 경우 대체:s
타고!s
일반적인 미리 정의된 문자열 형식과 같습니다.
리터럴 문자열 형식에 대한 자세한 내용은 처음 소개된 PEP 498을 참조하십시오.
당신은 구문론에 중독될 것입니다.
또한 C# 6.0, EcmaScript 개발자들은 이 구문을 더 잘 알고 있습니다.
In [1]: print '{firstname} {lastname}'.format(firstname='Mehmet', lastname='Ağa')
Mehmet Ağa
In [2]: print '{firstname} {lastname}'.format(**dict(firstname='Mehmet', lastname='Ağa'))
Mehmet Ağa
HTML 페이지를 작성하는 경우 단순 문자열 보간이 아닌 템플릿 엔진을 사용하려고 합니다.
다른 옵션은 다음과 같습니다.format_map
:
print('<a href="{s}">{s}</a>'.format_map({'s': 'my_url'}))
사전적인 방법뿐만 아니라 다음 형식도 알고 있으면 유용할 수 있습니다.
print '<a href="%s">%s</a>' % (my_url, my_url)
여기서는 약간 중복되고 사전 방식은 코드를 수정할 때 오류가 발생할 가능성이 낮지만 여러 삽입에 튜플을 사용할 수 있습니다.첫번째%s
튜플의 첫 번째 요소, 두 번째 요소를 대체합니다.%s
는 튜플의 두 번째 요소로 대체되며, 튜플의 각 요소에 대해서도 마찬가지입니다.
이 구문을 추천합니다.
dictionary_of_string_values = {
"my_text" : "go to w3schools",
"my_url" : "https://www.w3schools.com",
}
print ('<a href="{my_url}">{my_text}</a>'.format(**dictionary_of_string_values))
많은 자리 표시자로 문자열을 포맷해야 할 때 매우 유용합니다.
다음과 같이 더 짧게 만들 수도 있습니다.
print ('<a href="{my_url}">{my_text}</a>'.format(
**{
"my_text" : "go to w3schools",
"my_url" : "https://www.w3schools.com",
}
)
)
언급URL : https://stackoverflow.com/questions/2451821/string-formatting-named-parameters
'prosource' 카테고리의 다른 글
Spring Boot에서 사전 인증 헤더 기반 인증을 설정하는 방법은 무엇입니까? (0) | 2023.07.22 |
---|---|
_chkstk() 함수의 목적은 무엇입니까? (0) | 2023.07.22 |
gcc, 엄격한 별칭 지정 및 조합을 통한 캐스팅 (0) | 2023.07.22 |
Spring Boot 플러그인을 사용하려면 Gradle 4.10 이상이 필요합니다.현재 버전은 Gradle 4.1입니다. (0) | 2023.07.22 |
makefile에 정적 라이브러리를 포함하는 방법 (0) | 2023.07.22 |