2016-07-25 4 views
1

私は同様の質問hereを見つけましたが、回答が私の問題に適用されないようです。リスト内の各項目に対してコンディションを検証するコンポジット条件のステートメントの場合

y = 3 
list1 = [1,2,3,4,5] 

if y != 0 or y != list1: 
    print("y is not in range") 
else: 
    print(y) 

それはy is not in rangeを印刷し続ける:

は、ここに私のコードです。

私の目標は、yがリスト内のいずれかの項目に等しくない場合y0またはに等しいないを行うかどうかを確認することです。


は私がリストに含まれているyの状態で確認する方法で、具体的興味、上記orandなければならないことを理解しています。

+0

ループを理解していますか? 'for 'ループを探します。 'y!= list1'が常に真であるので、これは常にその行を表示します。リストは決して数字と同じではありません。 – Carcigenicate

答えて

10

あなたはyがリストにない0と異なっていることを確認したい:

if y != 0 and y not in list1: 

orを使用すると、条件のが十分にあるので、y != 0ので、それは行かずTrueを返すことを意味しがlistではないため、常にFalseを返すy != list1には、inを使用する必要があります。


あなたは本当にあなたが何をしたい、その後orを使用する場合:

if not (y == 0 or y in list1): 
    print('y not in range') 
else: 
    print(y) 

ド・モルガンの法則Rememer:

not (y == 0 or y in list1) == (not y == 0) and (not y in list1) == y != 0 and y not in list1 
+0

これはこの特定の問題に対する正しい答えですが、質問のタイトルは身体のものとは少し異なる質問を示唆しています。 – Carcigenicate

+2

@Carcigenicateだからタイトルを編集しますか?タイトルと質問は頻繁に不一致で、私は質問を無視して代わりにタイトルに答えるべきではないという提案は見たことがありません。 –

+1

@Carcigenicateタイトルは質問の要約でなければなりません。 *という質問は本文です*。一致しない場合、タイトルは本文に一致するように編集する必要があります。後で質問を編集してより明確にし、より良いタイトルを見つけようとします。 – Bakuriu

1

タイトルに尋ねた質問について、あなたは何かを書くことができる

true if condition else false for y in list1 

をチェックしてリストlist1にあるすべての要素yに対してconditionを確認します。 HERE便利なリンクです。

それ以外の@バクリュウの応答は正しいです。

関連する問題