7

そのため、以前はコードに問題がありました。なぜなら、foodList を反復処理したときに空の行が得られたからです。

以下に示すように、誰かが「if x.strip():」メソッドの使用を提案しました。

for x in split:
  if x.strip():
    foodList = foodList + [x.split(",")]

正常に動作しますが、実際に何を意味するのか知りたいです。空白を削除することは知っていますが、上記の if ステートメントは、x に空のスペースがある場合は true と言っているわけではありません。私が望んでいたものの反対はどれですか?用語と、それが舞台裏で何をしているのかについて、先に述べたいと思います。

4

3 に答える 3

13

Python では、「空の」オブジェクト --- 空のリスト、空の辞書、およびこの場合のように空の文字列 --- は、ブール値のコンテキスト ( などif) では false と見なされます。空でない文字列はすべて true と見なされます。 strip空白を取り除いた後の文字列を返します。文字列に空白のみが含まれている場合は、strip()すべてが取り除かれ、空の文字列が返されます。つまりif strip()、「の結果がstrip()空の文字列でない場合」、つまり、文字列に空白以外の何かが含まれている場合です。

于 2013-06-23T19:04:43.700 に答える
3

メソッド strip() は、文字列の最初と最後からすべての文字が取り除かれた文字列のコピーを返します (デフォルトの空白文字)。

そのため、入力文字が指定されていない場合、文字列の先頭と末尾から空白が削除されます。この時点では、文字列はpythonのように解釈されるxため、スペースを考慮せずに文字列が空かどうかを制御するだけです。emptyfalse

于 2013-06-23T19:05:30.303 に答える