suzume blog

Pythonを勉強中です。日々雑多なことを書いています。

Python3エンジニア認定基礎試験に向けて

ここ数年、Pythonを知ってから独学で勉強してきたのだが、

ここにきてついに「Python3エンジニア認定基礎試験」を受験することに

した。

全くの素人だし本業はITもエンジニアも全く縁が無いのであるが、

それでもなぜだか惚れてしまい?勉強してきた事だけは本物である。

そんなわけで実際合格した人が書いたブログなどを参考に試験に

向けて勉強する事にした。

公式のHPでも案内されている無料の模擬試験をもとに勉強している

のだが、チュートリアルを何度も繰り返し読んでいるはずなのに

全く知らない事が出題されていてその度に自分の理解不足を痛感する。

 

今日はあるデータ構造に出てきたlistのメソッドについてやっと理解が

できた記念?にそのメソッドの考え方について書いていこうと思う。

 

メソッドについてはだいたいは理解できるのであるが、そのメソッドは

いくら考えても、ググッても全く理解できずこの一週間ずっとモヤモヤ

していたのだ。

仕事の合間にもなんとなく考えていたくらいだ。

答えがそこにあるのに、なぜその答えになるのかが分からないなんて

なんだか悔しくてもどかしかったのだ。

たまたま同じ部署にシステム部から異動してきた人がいるのであるが、

その人を見るたびに勇気を出して聞いてみたいという衝動が何度も

起きたくらいだ。

(もちろん彼に迷惑だと思うし、そもそもそんな事を聞ける間柄ではない

のでその衝動はグッと堪えたが・・・)

とにかくこの一週間考え続けた「どうしてそういう答えとなるのか

全く理解できない!ググって解説を読んでもチュートリアルを読んでも

理解できない!どう理解すればその認識に辿り着けるのか・・」

という、自分以外の人にとっては全く意味の無いモヤモヤにずっと

悩まされていたのだが、昨日、模擬試験で別のメソッドについて

勉強していた時に突然フッと理解できたのだ。

自分でもどうして突然腑に落ちたのか全く理解できないのであるが、

とにかく突然全てが解決したのである。

よくレポートが書けないでいたのに、突然筆が進んで書き上げて

しまった人が「レポートの神様が降りてきた!」というような事を

言っていたのだが、まさに昨日はメソッドの神様が降りてきた!

ような気がした。こういう感覚は自分としては初体験であった。

 

そんなわけで以下に考え方について備忘録代わりに書いていこうと思う。

(模擬試験ではなくチュートリアルに記載されているものを使用する)

 

fruits=["orange","apple","pear","banana","kiwi","apple","banana"]

fruits.index("banana",4)  #位置4を起点に次のバナナを見つける

答え⇒6

 

これが、ずーと分からなかった。

でも「スライス」の考え方と次のバナナを「どこから」数えるか

理解していれば分かるものであった。

バナナは2つある。4つ目と7つ目。

位置4はスライス(/)の考え方でいくと

[/"orange",/"apple",/"pear",/"banana",/"kiwi",/"apple",/"banana"]

                4↑ココ    6↑(答え)

つまりキウイ以降にあるバナナを見つける、というミッションなのだ。

そして自分が最も誤解していたことなのだが、

次のバナナはアップルの後。

起点から2つ目にバナナがあるから答えは「2」と思い込んで

しまっていたのだ。

でもチュートリアルをよく読んでみると

「スタート引数からではなく、全シーケンスの最初からのインデックス」

を返すのである。

要はリストの最初からの数を返す、が正解なのである。

だから答えは最初から数えて4つ目以降に初めてくるバナナは

「6」なのである。

多分基礎が分かっている人はこんなこと疑問にも感じないかもしれない

が自分にとっては本当に悩ましい問題だった。

今回の事で得た気付きとしては「自分の思い込みはダメ」という事と

「答えは全てチュートリアルに書かれている」という事だ。

こんな調子でいつ本試験を受けられるのか、まだ目途は立たないのだが

地道に勉強を続けていこうと思う。