[解決済み] 複数のステートメントを1行にまとめるには?
質問
この質問をどのようなタイトルで考えるべきか迷いましたが、コーディング・ゴルフは少し具体性に欠けるものの、適切なタイトルだと思います。
Pythonの内包は少し知っていますが、「読む」のはとても難しいようです。私が思うに、内包は次のコードと同じことを達成するかもしれません。
for i in range(10): if i == 9: print('i equals 9')
このコードは、現在の内包の仕組みよりもずっと読みやすくなっています。
:
を1行にまとめると......これでは私も......。
私の質問です。
次のような例をONE LINEにする方法はないでしょうか?
try:
if sam[0] != 'harry':
print('hello', sam)
except:
pass
こんなのがあれば最高ですね。
try: if sam[0] != 'harry': print('hellp', sam)
except:pass
しかし、またしても矛盾した
:
を実行する方法があれば、それも知りたいです。
try
(またはそのようなもの) を使用せずに
except
を入れる必要があるのは、全く無意味なことのように思えます。
except:pass
は、無駄な行です。
どのように解決するのですか?
残念ながら、あなたが望むことはPythonでは不可能です(そのため、Pythonはコマンドラインのワンライナープログラムにはほとんど役に立ちません)。括弧を明示的に使っても、構文例外を回避することはできません。セミコロンで区切られた単純な文の列であれば、回避できます。
for i in range(10): print "foo"; print "bar"
しかし、インデントされたブロックを導入するコンストラクトを追加するとすぐに (
if
を使用すると、改行が必要になります。また
for i in range(10): print "i equals 9" if i==9 else None
は合法であり、あなたが望むものに近いかもしれません。
については
try ... except
のこと:全く意味がない
なし
その
except
.
try
は、"このコードを実行したいのですが、例外を投げるかもしれません"と言っています。例外を気にしないのであれば
try
. しかし、それを入れた途端に、「潜在的な例外を処理したい」と言うことになるのです。そのため
pass
で、具体的に処理しないことを希望していることになります。しかし、これはコードが実行され続けることを意味し、そうでなければ実行されません。
関連
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
Pythonの@decoratorsについてまとめてみました。
-
[解決済み】numpy: true_divide で無効な値に遭遇
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] 複数の例外を1行でキャッチする(ブロックを除く)
-
[解決済み] 辞書を値で並べ替えるにはどうしたらいいですか?
-
[解決済み] リストが空かどうかを確認するにはどうすればよいですか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
Python Decorator 練習問題
-
Python Pillow Image.save jpg画像圧縮問題
-
Pythonの画像ファイル処理用ライブラリ「Pillow」(グラフィックの詳細)
-
[解決済み] データ型が理解できない
-
[解決済み】TypeError: re.findall()でバイトのようなオブジェクトに文字列パターンを使用することはできません。)
-
[解決済み】TypeErrorを取得しました。エントリを持つ子テーブルの後に親テーブルを追加しようとすると、 __init__() missing 1 required positional argument: 'on_delete'
-
[解決済み] 'int'オブジェクトに'__getitem__'属性がない。
-
[解決済み】「OverflowError: Python int too large to convert to C long" on windows but not mac
-
[解決済み】 'numpy.float64' オブジェクトは反復可能ではない
-
[解決済み】django インポートエラー - core.managementという名前のモジュールがない