実現したいこと
for+if文で
①リスト内で2で割り切れる場合
②リスト内で2で割り切れない場合
で集計するプログラムを作りましたが、条件判定式で不明な点があり、お伺いします。
具体的には、下記、### 発生している問題・エラーメッセージを参照願います。
前提
アナコンダで勉強中です。
jupyter notebook 6.5.2
Python 3.10.9
発生している問題・エラーメッセージ
冒頭①に対し、
if d%2==0: で条件判定、ヒットしたものは加算するfor文とし、これは問題なく稼働しました。
冒頭②に対し、当初は①を真似て、
if e%2!==0: で条件判定、同様に加算するfor文としましたが、==で、SyntaxError: invalid syntaxとなりました。
if e%2!==0:を、=を1つとする、 if e%2!=0:とすると、問題なく動きます。
具体的には、下記、「該当のソースコード」欄をご参照下さい。
ご教示いただきたいのは、①if d%2と、②if e%2!の違いは、①は0と等しいか、②は0と等しくないか(!で等しくない、という否定形は与えている)ですが、0との対比で言えば、いずれも==でいいのでは、と思え、SyntaxErrorとなる理由が当方には分かりませんでした。
①②いずれも、==0で、0とイコールを示しており、但し、②は!を入れることで、0と等しくない、という意味となると思われ、エラーになる理由は、これ以外にあるのでは、と想像しました。
お知恵をいただけますと、幸いです。
該当のソースコード
python
1 2#リスト作成 3list_2=list(range(5,20,3)) 4list_2 5[5, 8, 11, 14, 17] 6 7#①リスト内で2で割り切れる場合のみ加算する。 8y=0 9for d in list_2: 10 if d%2==0: 11 y=y+d 12 else: 13 pass 14print(y) 15# 返し22 16 17#②リスト内で2で割り切れない場合のみ加算する。 18z=0 19for e in list_2: 20 if e%2!==0: 21 z=z+e 22 else: 23 pass 24print(z) 25 26#if e%2!==0: に対し、SyntaxError: invalid syntax となります。 27 28#以下の通り、if文の=を1つにすると、問題は生じません。 29z=0 30for e in list_2: 31 if e%2!=0: 32 z=z+e 33 else: 34 pass 35print(z) 36#返し 33 37
試したこと
前記、以下の通り~内、if文のイコールを、==から=に変更。
補足情報
特にありません。
ここにより詳細な情報を記載してください。

回答2件
あなたの回答
tips
プレビュー