student['id'] is not None or student['id'] != ''
or
演算子は、式の少なくとも一方がTruthyであることを必要とするので、この式全体が常にTrueになります。そのため、コントロールは常にブロックif
に入ります。
ここでDe Morgan's lawsを使用できます。あなたが欲しい
"not (A and B)" is the same as "(not A) or (not B)"
also,
"not (A or B)" is the same as "(not A) and (not B)".
あなたは
if student['id'] is not None and student['id'] != '':
# print details
または
if not (student['id'] is None or student['id'] == ''):
# print details
、と同じように書かれていることができるように、IDは、 "ないなし" と "空でない" ことがないように
代わりに、私はこのように慣用的に書くことをお勧めします。
for student in students:
if student['id']:
# print details
値がNone
または空の場合、if
ステートメントは現在のオブジェクトをスキップします。 id
がTruthy値の場合にのみ、詳細が出力されます。
id
は何については、この
for student in students:
if 'id' in student and student['id']:
# print details
"and"ではありませんか? –
ああ!それは私の非常に愚かだった:)私は第1条件 'を除いたif(student ['id']!= '')'これは十分だった!ありがとう – aaj