나는 그것이 간단한 질문이라는 것을 알고 있지만 그것을 구글하는 방법을 모른다.
어떻게해야합니까
print '<a href="%s">%s</a>' % (my_url)
그래서 my_url두 번 사용됩니까? 필자는 "이름" %s을 지정하고 매개 변수에 dict를 사용해야 한다고 가정 하지만 올바른 구문을 확신하지 못합니까?
참고로, my_url매개 변수에서 두 번만 사용할 수 있다는 것을 알고 있지만 그게 요점이 아닙니다. :)
나는 그것이 간단한 질문이라는 것을 알고 있지만 그것을 구글하는 방법을 모른다.
어떻게해야합니까
print '<a href="%s">%s</a>' % (my_url)
그래서 my_url두 번 사용됩니까? 필자는 "이름" %s을 지정하고 매개 변수에 dict를 사용해야 한다고 가정 하지만 올바른 구문을 확신하지 못합니까?
참고로, 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))
이것은 엄청나게 위치 적이며 format () 인수는 명명되지 않은 args가 먼저 와야하고 명명 된 인수가 뒤 따르는 * args (목록 또는 튜플과 같은 시퀀스), * kwargs (dict) 당신에게 좋은 것이 무엇인지 알고 있다면 문자열로 입력하십시오.). 보간 점은 이름이 지정된 값을 레이블로 대체 한 다음 남은 것부터 위치를 지정하여 결정됩니다. 그래서, 당신은 또한 이것을 할 수 있습니다 ...
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))
"literal {arg1}".format(arg1="arg!")terser는 반면라는 이름의 형식은 파이썬 3.5와 함께 작동합니다 f"literal {arg1}"파이썬 3.6 이상, AFAIK에서 새로운 혁신이다.
print '<a href="%(url)s">%(url)s</a>' % {'url': my_url}
'<a href="%(url)s">%(url)s</a>' % dict(url=my_url)
파이썬 3.6 소개 리터럴 문자열 형식이 되어 문자열 외부에서 명명 된 매개 변수를 반복하지 않고도 명명 된 매개 변수의 서식 을 지정할 수 있습니다.
print(f'<a href="{my_url:s}">{my_url:s}</a>')
이것은 평가 my_url되므로 정의되지 않은 경우 a가 표시 NameError됩니다. 실제로, 대신 my_url문자열로 평가되는 한 임의의 파이썬 표현식을 작성할 수 있습니다 (:s 형식화 코드로 . 문자열이 아닐 수있는 표현식의 결과에 대해 문자열 표현을 원하면 다음으로 대체하십시오 :s.!s 사전 리터럴 문자열 서식, 그냥 평범한와 같은을,.
리터럴 문자열 형식에 대한 자세한 내용 은 처음 도입 된 PEP 498을 참조하십시오 .
HTML 페이지를 만들 때는 간단한 문자열 보간이 아닌 템플릿 엔진을 사용하려고합니다.
render()방법 을 방해하는 이유는 무엇입니까 ? 템플릿 출력을에 공급해야한다고 말하는 것은 없습니다 HttpResponse(). Django는 매우 다재다능합니다.
사전 방식뿐만 아니라 다음 형식을 아는 것이 유용 할 수 있습니다.
print '<a href="%s">%s</a>' % (my_url, my_url)
여기서는 중복성이 없으며 코드를 수정할 때 사전 방법으로 오류가 발생하기 쉽지 않지만 여러 삽입에 튜플을 사용할 수 있습니다. 첫 %s번째 요소는 튜플의 첫 번째 요소로 %s대체되고 두 번째 요소는 튜플의 두 번째 요소로 대체되는 방식으로 튜플의 각 요소가 대체됩니다.
my_url실제로 두 번 평가되고 싶지 않은 함수 호출입니다. 두 번 그렇게 나쁘지는 않지만 20 번이나
(get_my_url(), )*20위해 함수를 한 번만 호출하고 20 번 복제합니다.