Python inとnotの使い方

Python学習【365日チャレンジ!】34日目のマスターU(@Udemy11)です。

先日作ったトンテキが美味しかったので、再び激安スーパーLAMUで豚肩ロースの塊を買ってきて、今度はチャーシューに挑戦しました。

参考にしたのがこちらの動画。

この動画のように寸胴があるわけではないので、一番大きな鍋で煮込んだのですが、4時間もキッチンで煮込んでたので、食べるときにでき上がりの写真を取るのを忘れてしまいました。

チャーシュー

2kg分くらいの豚肩ロースだったのですが、みんなで食べると、あまりの美味しさにあっという間になくなってしまいました。

時間はかかりますが、簡単に作れるので、また作ろうと思います。

では今日もPythonを学習しますよ。

昨日の復習

昨日は、比較演算子と論理演算子を学習しました。

a == b

a と b が等しいとき

a != b

a と b が異なるとき

a < b

a が b より小さいとき

a > b

a が b より大きいとき

a <= b

a が b 以下のとき

a >= b

a が b 以上のとき

a > 0 and b > 0

a と b が条件を満たしているとき

a > 0 or b > 0

a か b が条件を満たしているとき

上記の条件に当てはまるときはTrue(真)を返します。
下記のような出力をすると、出力結果はTrueになります。

a = 1
b = 1
print(a == b)

演算子は、if文を使って条件を指定するときに使われますが、上記のような条件を記載したときに、Boolean型でTrueかFalseを返しているということです。

それでは、今日の内容にすすみましょう!

inの使い方

inは、リスト型やタプル型など値が入っているかどうかの確認に使います。

x = [1, 2, 3, 4]
y = 1
if y in x:
    print('in listx')

リスト型変数xの中に変数yが入っている場合、’in listx’を表示するコードなので、1がリストに入っているため、’in listx’が表示されます。

inは、文字列でも整数型でもタプル型でも辞書型でも集合型でも使うことができるので、かなり使用頻度の高い演算子です。

notの使い方

notは、inと合わせて使ったり、単独で使ったりしますが、使い方に注意が必要です。
上記のinのときに書いたコードを例に取ると、次のような使い方が考えられます。

x = [1, 2, 3, 4]
y = 100
if y not in x:
    print('y is out of x')

変数y(100)がリスト型変数xの中に入っていない場合、’y is out of x’と出力されるコードになります。

リストの中に入っていないという判断をする場合を取り上げましたが、次のように書くことも可能です。

x = [1, 2, 3, 4]
y = 100
if y in x:
    print('in listx')
else:
    print('y is out of x')

inで紹介した例のコードに、else文を付け加える感じですね。

notを使うと、条件を否定する場合をTrueとしてしまうので、次のような場合にはどっちがどっちやらよくわからなくなってしまいます。

a = 2
b = 1
if not b > a:
    print('b is small')
 
#下記の書き方のほうがわかりやすい
if b < a:
    print('b is small')

この例だと、notを使うことでわかりにくくなってしまうため、否定する条件をシンプルに書けるときはシンプルな方を選んだほうがいいわけです。

notはBoolean型がおすすめ

notで条件を否定するときに使う場合は、シンプルな書き方があることを紹介しました。

では、どんなときに、notを使ったらいいのか?

変数にTrueやFalseを定義したときは、変数が自動的にBoolean型になりますが、notを使ったほうがいい場面としては、Boolean型の変数に対して使う方法が一般的です。

文章にするといまいち分かりづらいので、実際のコードでみてみましょう。

is_ok = True
if is_ok:
    print('OK')

この場合、変数is_okは自動的にBoolean型になるため、ifのあとに【== True】を付ける必要がありません。

このような場合は、変数is_okがTureではないとき、つまりFalseを返す条件としてnotを使ったほうがわかりやすくなります。

is_ok = True
if not is_ok:
    print('NO')
 
#notを使わない場合は次のように書く
if is_ok != True:
    print('NO')

【!= True】の部分は、【== False】でも大丈夫。

まだまだ初歩なので、もっとたくさんのコードを目にしないとわかりませんが、notの使い所は結構かぎられているような感じがします。

講座の中でも、よりたくさんのコードに触れるようになれば、傾向がわかってくると話していたので、やっぱ数をこなすしかありませんね。

なんだかプログラミングって感じ

これから、どんどんこのようなプログラミングっぽい処理が増えてきますが、しっかりと復習しないとすぐに忘れてしまいます。

今日も、これまで学習してきたことを復習しながら忘れていることがないかチェックしていきましたが、忘れていることが結構ありました。

忘れていても、再度確認すれば、それが上書きされるので、次に復習したときには記憶に残っている割合が高くなります。

確認を忘れず、進んでは戻ってを繰り返し、

一日一歩三日で三歩、三歩歩いて二歩下がる

の気持ちで一歩ずつ進んでいきたいと思います。

それでは、今日もGood Python!