[解決済み] 条件付き文字列書式を実装するには?
質問
Pythonでテキストベースのゲームを作っているのですが、ある条件に基づいて文字列を異なった形にしたい場合があります。
具体的には、私は部屋の中のアイテムを説明するテキストを表示したいのです。私は、部屋の説明で、問題のアイテム オブジェクトが部屋オブジェクトのアイテム リストにある場合にのみ、これを表示したいのです。このままでは、単純に条件式に文字列を連結しただけでは、思い通りに出力されず、それぞれのケースで異なる文字列を用意したほうが良いような気がします。
私の質問は、ブール条件式の結果に基づいて文字列をフォーマットするためのpythonicメソッドがあるかということです。私はforループ構造を使用することができましたが、私はジェネレータ式に似た、より簡単なものがあるかどうか疑問に思っていました。
私はこれに似たものを探しています、文字列形式で
num = [x for x in xrange(1,100) if x % 10 == 0]
一般的な例として
print "At least, that's what %s told me." %("he" if gender == "male", else: "she")
この例は有効なPythonではないことは承知していますが、私が探しているものを一般的に示しています。私は、上記のようなブーリアン文字列フォーマットのための有効な表現があるかどうか疑問に思っています。 少し探してみたところ、特に条件付き文字列書式に関連するものは見つかりませんでした。一般的なフォーマット文字列に関するいくつかの投稿を見つけましたが、それは私が探しているものではありません。
そのようなものが実際に存在するのであれば、それは非常に便利です。また、提案されるかもしれない別の方法についても、私はオープンです。どんな助けでも、前もってありがとうございます。
どのように解決するのですか?
あなたのコードは、実際には は であり、カンマとコロンの2つの文字を削除すれば有効なPythonとなります。
>>> gender= "male"
>>> print "At least, that's what %s told me." %("he" if gender == "male" else "she")
At least, that's what he told me.
よりモダンなスタイルでは
.format
を使いますが。
>>> s = "At least, that's what {pronoun} told me.".format(pronoun="he" if gender == "male" else "she")
>>> s
"At least, that's what he told me."
ここで、formatの引数は
dict
で、好きなように複雑なものを組み込めます。
関連
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] バイトを文字列に変換する
-
[解決済み] リストを均等な大きさの塊に分割するには?
-
[解決済み] どうすれば、文字列中のリテラルな中抜き文字を印刷し、また.formatを使用することができるのでしょうか?
-
[解決済み] 文字列フォーマット:% vs. .format vs. f-stringリテラル
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
-
[解決済み] Flaskで非同期タスクを作る
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 印刷用のインラインif文の書き方は?
-
[解決済み] 2つの線分が交差しているかどうかを確認するにはどうすればよいですか?
-
[解決済み] Djangoで2つの日付の間を選択する
-
[解決済み] 辞書のキーと値を交換するにはどうすればよいですか?
-
[解決済み] データフレームをソートした後にインデックスを更新する
-
[解決済み] Django 1.7で初期マイグレーションからマイグレートバックする方法は?
-
[解決済み] サブフォルダからのインポートモジュール
-
[解決済み] subprocess.run()の出力を抑制またはキャプチャするには?
-
[解決済み] PyQtアプリケーションのスレッド化。QtスレッドとPythonスレッドのどちらを使うか?
-
[解決済み] Python 言語を決定するには?