Python学習【365日チャレンジ!】19日目のマスターU(@Udemy11)です。
今日は、TimeCupsulが不調で、TimeMachineでバックアップが取れなくなっているので、なんとかうまくできる方法がないかとWin機にHDDをつなげたりしているとあっという間に時間が経ってしまい、最終的にはNASに対応したネットワーク型のHDDを購入するしかないかなと諦めかけています。
とりあえず、外付けHDDをNAS化できるアダプタがあるようなので、それを試してみようかと思っています。
それでは、今日もPythonを学習していきます。
記事の内容は、酒井潤さんの講座を参考にさせていただき、学習した内容を紹介しています。
Pythonをひととおり学習したい人にはピッタリの講座で、値段も専門書1冊の値段よりも安く受講できるので、超おすすめの講座です。
昨日の復習
昨日は、実際のListの使い方のイメージを学習しました。
>>> s = []
>>> min = 0
>>> max = 4
>>> s.append('p')
>>> min >= len(s) > max
True
>>> s.append('p')
>>> s.append('p')
>>> s.append('p')
>>> min <= len(s) < max
False
>>> len(s)
4
乗客0人の車(s)を用意して、順番に人(p)を乗せていき、乗れるかどうかを判断します。
定員(max)は4人なので、4人になった時点で、Falseが返されて、乗客数を調べると(len)乗客は4人という感じでした。
具体的なイメージとプログラムをどのように当てはめるかが重要です。
想像力を働かせて、求めるサービスがどのようにコードに置き換えられるか考えていかないといけません。
では、本日の内容は、タプル型です。
タプル型の基本
タプル型は、parenthesesの丸括弧で囲んで指定しますが、丸括弧で囲まなくても,(コンマ)を使うことで自動的にタプル型として認識されます。
>>> t = 1, 2, 3
>>> s = (1, 2, 3)
>>> type(t)
<class 'tuple'>
>>> type(s)
<class 'tuple'>
一つの値を代入するときでもコンマを入れるとタプル型になり、コンマを入れないと文字型になったりします。
>>> a = 1,
>>> b = 1,
>>> type(a)
<class 'int'>
>>> type(b)
<class 'tuple'>
また、タプル型は、リストと同様に、indexやcountのメソッドが使えたり、スライスで値を抽出したりできます。
>>> t = [1, 2, 3, 2, 2]
>>> t.index(2)
1
>>> t.count(2)
3
>>> t[0]
1
>>> t[0:2]
(1, 2)
ほぼ、リストと同じような使い方はできますが、sortで並べ替えはできません。
また、タプルの中の値を変更することもできません。
タプルは、読み込み専用の型であり、変更されては困る値を扱うときに使われます。
タプルにリストを入れることは可能
タブル単体であれば、中の値を変更することはできませんが、タプルの中に入れたリストの中身は変更することが可能です。
>>> t = ([1, 2, 3], [4, 5, 6])
>>> t
([1, 2, 3], [4, 5, 6])
>>> t[0][0] = 100
>>> t
([100, 2, 3], [4, 5, 6])
タプルの中に入っているindex値のリストの中のindex値を指定して変更しています。
数値型とよく間違えるポイント
タプルでよく間違えるのが、コンマを入れ忘れてタプル型以外に指定されてしまうパターンです。
タプルは値を変更できませんが、2つのタプルを足して新しいタプル型変数を作ることができます。
このときに、一つの値のタプルと複数の値のタプルを合わせるときにエラーが起こってしまうことがあります。
>>> n_tuple = (1, 2, 3) + (4, 5, 6)
>>> n_tuple
(1, 2, 3, 4, 5, 6)
>>> a_tuple = (1) + (4, 5, 6)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'tuple'
>>> a_tuple = (1,) + (4, 5, 6)
>>> a_tuple
(1, 4, 5, 6)
ついつい、コンマを忘れると、数字とタプルをたせませんというエラーが起こります。
この場合は、最初の1のあとに,(コンマ)をつけるとうまくいきます。
やることでしか覚えられない
昨日はエビングハウスの忘却曲線を紹介しましたが、ほんと何度も繰り返さないとどんどん忘れていってしまいます。
酒井さんの講座も以前挫折したときは、このあたりまでは受講していたのですが、全くもって記憶の片隅にも残っていませんでした。
つまり、学習しても、しっかり復習しないと自分のものにはなりません。
しっかりと毎日Pythonのコードを書く時間を確保して、スキルを身につけないと!
ではでは、Good Python!