if not
の発言について質問Python 2.7
です。
私はいくつかのコードを書き、if not
ステートメントを使用しました。if not
私が書いたコードの一部で、オプションのキーワードが入力されたかどうかを判断するステートメントを含む関数を参照しています。
0.0
がキーワードの値である場合を除いて、正常に動作します。0
これは、「ない」と見なされるものの 1 つであるためだと理解しています。私のコードはおそらく長すぎて投稿できませんが、これは類似した (簡略化された) 例です。
def square(x=None):
if not x:
print "you have not entered x"
else:
y=x**2
return y
list=[1, 3, 0 ,9]
output=[]
for item in list:
y=square(item)
output.append(y)
print output
ただし、この場合、次のものが残りました。
you have not entered x
[1, 9, None, 81]
私が取得したい場所:
[1, 9, 0, 81]
上記の例では、リスト内包表記を使用できましたが、関数を使用して目的の出力を取得したいと仮定すると、どうすればこれを行うことができるでしょうか?
私が持っていた1つの考えは:
def square(x=None):
if not x and not str(x).isdigit():
print "you have not entered x"
else:
y=x**2
return y
list=[1, 3, 0 ,9]
output=[]
for item in list:
y=square(item)
output.append(y)
print output
これは機能しますが、少し扱いにくい方法のようです。誰かが別の方法を持っているなら、私はとても感謝しています。