こんにちは。 PyQチームのkonieです。
独学しているとどうしても行き詰まってしまうこと、ありますよね。
私はどうも釈然としなくてずっと同じ問題を解いたり、解説を何度も読んだりすることがあります。
自分の中で引っかかっている部分を調べているときには、独学している人の経験談はとても参考になります。その知見の中から解決のヒントを得られたこともたくさんあります。
私も自分の独学する中で理解したことをPython学習チャンネルを通じて紹介することで、Pythonを勉強する誰かの役に立てればと思い、定期的に自分のPython独学記を投稿することにしました。
今回は復習の意味も込めてデータ型を振り返って、私が気づいたことを紹介したいと思います。
それぞれの特徴に合ったデータの型を使いましょう
Pythonは数値や文字列などのデータを扱います。 Pythonで扱うデータにはそれぞれ種類があって、それらまとめてデータ型と言っているイメージです。
データ型にはint型(整数型)、str型(文字列型)、ブール型(真偽値型)などの色々な型があり、それぞれの特徴や使う上でのルールを理解して使用しないとエラーが出てきます。
これから、データ型を学習した時に間違いやすかったポイントを解説します。
str型+int型+str型だとエラーが出る
x = 80 print('私はテストで' + x + '点をとりました')
上記の例ではエラーになってしまいます。x
に入っている80
はint型です。
このままだとstr型+int型+str型と型の違うものをくっつけようとするのでエラーになります。
それではどのように書けばいいのでしょうか。
x = '80' print('私はテストで' + x + '点をとりました')
x = str(80) print('私はテストで' + x + '点をとりました')
これらの例では、x
を入れる際str型にしているため、すべてがstr型で結合され、エラーが出なくなります。
これらの例のようにデータ型には、文字列と数値は+でくっつけられない決まりがあります。また、文字列は計算の中に入れられない決まりもありますが、私はよく文字列と数値が頭の中でごちゃごちゃになっていました。
そのため異なる値を連結するときに、データの種類に合わせて変換しなければならないことをしっかりと確認してから問題を解けばケアレスミスが減ることを学びました。
真(True)か偽(False)のどちらかを示すブール型
データ型の種類の1つにブール型(真偽値型)が存在するのですが、こちらは楽しく勉強できました。
ブール型では、成り立つ場合は真(True)
, 一方成り立たない場合には偽(False)
と真偽値を表します。if文で条件分岐に使われることもあります。
a = 1 if a: print('真です') else: print('偽です')
この例の場合真です
と表示されます。
もし変数aに0が代入されている
場合は、偽です
と表示されています。
ブール型に関しては、高校の時の数学の数Aで習った「集合と論理」と同じような内容でした。
もともと数学が好きだったのと、この分野はとくに解くことが楽しかったので、すっと頭の中に内容が入ってきました。
このような理由でここは好きな単元ではあるのですが、ここでも何回もエラーが出てきた記憶があります。
私はエラーが出た時には、「ここがおかしいのかな?それともあそこかな?」と考えながら少しずつ変えていきます。たとえるなら、間違い探しをする感覚です。ブール型はTrueかFalseの2択なので、どちらかの条件をしっかり覚えておけば、エラーが出た時は違う方が正しいとわかります。だからブール型を学習している時には条件を覚えるのが効率的です。(といいつつ私はよく間違ってしまうのですけれど)
皆さんも楽しみながら取り組んで欲しい
エラーは自分を成長させてくれる存在
私が今回の話で一番伝えたいことは、エラーが出た時も楽しく解決して欲しいということです。
誰もが自分にとって難しい問題を解くのに手こずったことがあると思います。
私ももちろんエラーが出てくると悔しいです。でもエラーが出てきたほうがエラーの原因を考えながら、「次こそ正しいコードを書いてやるぞ!」と燃えてくるんです。
なぜなら、私にとってエラーは自分を成長させてくれる存在だと思っているからです。
問題が解けた成功体験をモチベーションに
エラーが何度も出てきて問題を解くのが嫌になった人には、問題が解けた時の成功体験思い出しながら、苦手な問題を克服して欲しいと思っています。
なかなか解けない難しい問題が出てきても、何度も間違えるうちにつまずきやすいポイントが自然と理解できるようになります。そのうちに問題を解くことが楽しくなっていくのではないでしょうか。
だからエラーが出ることに悩んでいる方にも、頑張って自分なりのコードを書いてみることをお薦めしたいです。そうすることで、自分で書いたプログラムが動く喜びを知って欲しいからです。
konieのつぶやき
自分で考えながら完成したコードと、用意された模範解答が違い過ぎて落ち込むこともあります。PyQでクリアした問題でも、自分のコードと写経が随分と違っていたことが何回もあります。(もちろんPyQのほうがスマートなコードなので、ちくしょうと思います(笑))
でも、「プロの人はこう書くのか」という気づきが得られるので、これからも自力でPyQの問題を解いていきます。
ぜひ皆さんも一度は自分でコードを書いてみてください。