私はそれが本当に簡単な質問であることを知っていますが、それをググる方法がわかりません。
どのようにできるのか
print '<a href="%s">%s</a>' % (my_url)
それでmy_url
2回使用されますか?私は「名前」を付け、%s
次にparamsでdictを使用する必要があると思いますが、正しい構文がわかりませんか?
参考までにmy_url
、パラメーターで2回だけ使用できることは知っていますが、それはポイントではありません:)
私はそれが本当に簡単な質問であることを知っていますが、それをググる方法がわかりません。
どのようにできるのか
print '<a href="%s">%s</a>' % (my_url)
それでmy_url
2回使用されますか?私は「名前」を付け、%s
次にparamsでdictを使用する必要があると思いますが、正しい構文がわかりませんか?
参考までにmy_url
、パラメーターで2回だけ使用できることは知っていますが、それはポイントではありません:)
回答:
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()引数はPythonの規則に従うという警告のみが付いています。名前のない引数が最初に続き、名前付きの引数が続き、次に* 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が一方命名フォーマットは、Pythonの3.5で動作するf"literal {arg1}"
Pythonの3.6またはそれ以降、私の知る限りでは、新しい技術革新です。
print '<a href="%(url)s">%(url)s</a>' % {'url': my_url}
'<a href="%(url)s">%(url)s</a>' % dict(url=my_url)
Python 3.6はリテラル文字列フォーマットを導入しているため、文字列の外側の名前付きパラメーターを繰り返すことなく名前付きパラメーターをフォーマットできます。
print(f'<a href="{my_url:s}">{my_url:s}</a>')
これはを評価my_url
するため、定義されていない場合はを取得しNameError
ます。実際、の代わりにmy_url
、(:s
フォーマットコードのため)文字列に評価される限り、任意のPython式を記述できます。あなたは置き換え、文字列ではないかもしれません式の結果のための文字列表現したい場合:s
により!s
事前にリテラル文字列の書式、普通のと同じように、。
リテラル文字列フォーマットの詳細については、最初に導入されたPEP 498を参照してください。
HTMLページを作成するには、単純な文字列補間ではなく、テンプレートエンジンを使用します。
render()
メソッドでメール本文を生成することを妨げている理由は何ですか?テンプレート出力をにフィードしなければならないということは何もありませんHttpResponse()
。Djangoは恥ずかしいほど用途が広いです。
辞書の方法と同様に、次の形式を知っておくと便利です。
print '<a href="%s">%s</a>' % (my_url, my_url)
ここでは少し冗長ですが、辞書の方法はコードを変更するときに間違いを起こしにくくなりますが、複数の挿入にタプルを使用することは可能です。最初の%s
タプルの最初の要素で置換され、第二の%s
組の2番目の要素のために、およびそうタプルの各要素のために置換されています。
my_url
は冗長であり、実際には私が2回評価される必要がないようにしたくない関数呼び出しです。二度はそれほど悪くはありませんが、それは簡単に20回だったかもしれません:)
(get_my_url(), )*20
、関数を1回だけ呼び出し、20回複製します。