ホームページ >バックエンド開発 >Python チュートリアル >Lao Qi で書式設定された式からメソッドまで Python を学びましょう

Lao Qi で書式設定された式からメソッドまで Python を学びましょう

WBOY
WBOYオリジナル
2016-06-16 08:41:271066ブラウズ

ここからはフォーマット方法について詳しく説明していきます。

基本操作

いわゆる書式設定方法では、まず文字列を出力するテンプレートを作成し、次に format を使用してテンプレートのコンテンツを入力します。

コードをコピー コードは次のとおりです:

>>> #まず文字列テンプレートを作成します
>>> template = "私の名前は {0}。私のウェブサイトは {1} です。私は {2} を書いています。"

>>> #テンプレート内のシリアル番号の内容に対応する形式を順番に使用します
>>> template.format("qiwsir","qiwsir.github.io","python")
「私の名前は qiwsir です。私の Web サイトは qiwsir.github.io です。」

もちろん、上記の操作を実行したい場合は、次のように実行できます。

コードをコピー コードは次のとおりです:

>>> "私の名前は {0} です。私のウェブサイトは {1} です。私は {2} を書いています。".format("qiwsir","qiwsir.github.io","python")
「私の名前は qiwsir です。私の Web サイトは qiwsir.github.io です。」

これらは % で書かれた式とあまり変わりません。でも心配しないでください、子供たちは違いが分からないのです。成長して初めて違いに気づきます。時間をかけて見て実験してください。

対応する順序でテンプレート内の位置を埋めるだけでなく (プレースホルダーと同様)、キーワードを使用してフィールドの内容を示すこともできます。

コードをコピー コードは次のとおりです:

>>> template = "私の名前は {name} です。私のウェブサイトは {site} です。」
>>> template.format(site='qiwsir.github.io', name='qiwsir')
「私の名前は qiwsir です。私の Web サイトは qiwsir.github.io です」

キーワードで指定する内容は str である必要はなく、他のデータ型も可能です。また、キーワードと以前の位置番号を混在させることもできます。例:

コードをコピー コードは次のとおりです:

>>> "{number} は {all} にあります。{0} は私の番号です。".format("seven",number=7,all=[1,2,3,4,5,6, 7,8,9,0])
「7 は [1、2、3、4、5、6、7、8、9、0] の中にあります。7 は私の番号です。」

少しは面白いと感じ始めましたか?出力結果を見ると、format メソッドが新しい str を取得していることがわかります。

シーケンスオブジェクトのオフセット

出力では、単語の最初の文字と 3 番目の文字を表示するという要件があります。たとえば、「Python」という単語では、最初の文字が p で、3 番目の文字が t であることを読者に伝える必要があります。

この質問は難しくありません。多くの実装方法があります。ここでの主な目的は、オフセットの適用を形式で示すことです。

コードをコピー コードは次のとおりです:

>>> テンプレート = "最初 = {0[0]}、三番目 = {0[2]}"
>>> テンプレート.フォーマット(ワード)
'最初=p、三番目=t'

リストもシーケンス型であり、そのオフセットも使用できます。

コードをコピー コードは次のとおりです:

>>> word_lst = リスト(単語)
>>> 単語_lst
['p'、'y'、't'、'h'、'o'、'n']
>>> テンプレート
'最初={0[0]}、三番目={0[2]}'
>>> template.format(word_lst)
'最初=p、三番目=t'

上記を要約すると、もう少し冗長な実験になります:

コードをコピー コードは次のとおりです:

>>> template = "その単語は {0}、その最初の単語は {0[0]} です。別の単語は {1}、その 2 番目の単語は {1[1]} です。"
>>> template.format("Python","学習")
「その単語は Python です。最初の単語は p です。もう 1 つの単語は learn で、2 番目の単語は e です。」

>>> "{name} の最初は {name[0]}".format(name="qiwsir") #指定されたキーワード値のオフセット
「qiwsir の最初は q」

オフセットはシーケンス型データ内にあることに注意してください。オフセットは負の数、つまり右から数えることができるためです。

コードをコピー コードは次のとおりです:

>>> 単語
'パイソン'
>>> 単語[-1]
「ん」
>>> 単語[-2]
「お」

ただし、テンプレートでは負のオフセットを使用できません。

コードをコピー コードは次のとおりです:

>>> "最初={0[0]}、終了={0[-1]}".format(word) #エラーレポート
トレースバック (最後の呼び出し):
ファイル「」、1 行目、
TypeError: 文字列インデックスは str ではなく整数である必要があります

>>> "First={0[0]}, End={0[5]}".format(word) #-1 を 5 に変更するだけです。
'最初=p、終わり=n'

もちろん、テンプレートの外に置くことも完全に可能です。以上:

コードをコピー コードは次のとおりです:

>>> "最初={0}、終了={1}".format(単語[0],単語[-1])
'最初=p、終わり=n'

辞書のキー

直接実験に行き、まず観察してから結論を導き出します

コードをコピー コードは次のとおりです:

>>> 私の情報
{'ウェブサイト': 'qiwsir.github.io', '名前': 'qiwsir', '部屋': 703}
>>> テンプレート = "私は {0[名前]}です"
>>> template.format(myinfo)
「私はキウシールです」
>>> テンプレート = 「私は {0[name]} です。私の QQ は {qq} です」
>>> template.format(myinfo,qq="26066913")
「私は qiwsir です。私の QQ は 26066913 です」

位置の後にキーが続き、formatパラメータの辞書キーに対応する値が取得できます。冗長すぎるので、例を見れば理解できるでしょう。場所に基づいて取得するだけでなく、キーワードに基づいて取得することもできます:

コードをコピー コードは次のとおりです:

>>> 私の情報
{'ウェブサイト': 'qiwsir.github.io', '名前': 'qiwsir', '部屋': 703}
>>> "私のウェブサイトは {info[website]} で、{0} が好きです".format("python",info=myinfo) #キーワード情報は辞書を参照しています
「私のウェブサイトは qiwsir.github.io で、Python が好きです」

テンプレートに属性を追加します

タイトルが何を言っているのか分かりません。それでは実験を見てみましょう。

コードをコピー コードは次のとおりです:

>>> 数学をインポート
>>> "PI は {PI.pi}".format(PI=math)
'PI は 3.14159265359'

これはキーワードを使用しています。位置を使用して、もう少し複雑なものに変更してみましょう。

コードをコピー コードは次のとおりです:

>>> sys,math
をインポートします >>> 'PI は {0.pi} です。'.format(math,sys)
「PI は 3.14159265359 です。私の lptop は linux2 を実行します。」

ご理解いただければ幸いです。

その他の拠点

この世界の数学の分野では、私たちがよく使う10進法や12進法(今何時、あなたや私がよく使うのはこれです、時計の盤面は12進法です)のほかに、および 60 進法 (これについてはよくご存知でしょう) のほかに、2 進数、8 進数、16 進数などの他の基本システムもあります。ここでは 16 進数の問題については説明しません。詳しく知りたい場合は、Google で調べてください。しかし、確かにベースはコンピュータにおいて非常に重要です。マシンは最低レベルでバイナリを使用するためです。

ここでは、出力時の 16 進数の問題についてのみ説明します。

>>> "{0:X}、{1:o}、{2:b}".format(255,255,255)
'FF、377、11111111'
X: 16 進数、16 進数
o:8進数,8進数
b:バイナリ,バイナリ
ちなみに、数値の出力方法は書式設定式と同じですので、詳細は割愛します。

書式設定方法では、文字幅や左右揃えなどの簡単なレイアウト形式も指定できますが、私の経験ではあまり使われないようです。読者が必要な場合は、Google で検索するか、公式ドキュメントにアクセスしてください。

整形された表現や整形方法については、これを使用するという人もいますし、これを使用することを好む人もいます。私のアドバイスは、自分にとって使いやすいものを使用することです。宗派的な意見は避けてください。ただし、書式設定された式は将来のバージョンで非推奨になる可能性があるという噂があります。それは今後の課題であり、今後検討していきます。さあ、手に取って使ってください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。