40代から始めるプログラミング⑪~炎の蛇

 今日も今日とて、Pythonの試験勉強です。
 弊社の新卒は、ある資格を全員取らされます。それは、NTTコミュニケーションが開催する「.comマスター」というネーミングセンスが少しアレな、PCやネットワークの包括的な知識を問われる資格です。CBTなので何回でも受けられますが、同じような内容ならIPAのITパスポートの方が国家資格なんで知名度的にいいんじゃないかと思いますが、まあ、あんまり普及度は変わらないんでしょう。
 私は、よく新卒の小童どもに二進数やサブネットマスクを、名刺に書かれた数々の資格で、「私の資格を言ってみろ」なんっつってマウント取りながら教えてたものです。
 こんな簡単なことも分からんのか、なんてクソ老害ムーブでしたが、実際同じマウンドに立って初めて分かることもありますね。
 来週、受験するつもりだったので模擬試験を受けていますが、ことごとく不合格が表示されます。あれ、CBTで初級だったら、過去問からだいたい出るんじゃないの?結構な深さで理解しないとヤバいな、これ。
 で、思ったのですが、二か月前まで学生だった新卒ちゃんが、急にビットだルータだっつっても、分からんのは無理もありませんよなあ。私もプログラミングに関しては彼らの理解度とイーブンの状態なので、「こんなに分からんもんかあ」、や「受かるんかなあ」、といったような、多分同じような心持になってしまいます。
 この不安な状態に、「いや、丸暗記で受かるっしょ」みたいな無責任な言葉を掛けるのは、非常にデリカシーがないご様子ですね。
 「賢者は歴史に学び、愚者は経験に学ぶ」って言葉は本当に真実です。自分は注意していても、及ばないこともあります。自覚のない失敗が真の失敗とも言いますし、自覚の有無は重要です。そのためにも、常に自分の間違いの含有率は、ちゃんと自分で経験してチェックすべきと深く思い至りました。自分のポテンシャル上、歴史には学べませんので経験です。
 まったく、汚物は消毒せねばなりませんね。
 ですが、同時に分からないことが分かるようになっていく面白さというものも追体験できました。これは、私と新卒ちゃんたちの初学者としての立ち位置が一緒だからこそです。これが理解できたので、本当にプログラミングを学び始めて良かったと思います。本当に欲しかったプログラミングスキルは非常に少なく、世紀末の種モミほどです。今日より明日なんじゃ。
 最近の知識の有りようは、目の前の問題にも即時に集合知であるインターネットからダウンロード可能なので、ストックされた量の多寡よりも、フローの効率や速度が貴ばれます。
 ですが、少しずつでも初期状態の「知らない」で満たされている空間を、「知っていること」を足場に進むことの根本的な面白さは変わらないと思います。そういうところは、私のような中年も若い人と共有できることなのかな、と考えた次第です。
 さて、あと一週間なので、夜通し頑張る所存です。ひと段落して窓から星空を見ると……、あれ、あの北斗七星、八個ない?

今回の模擬試験のメモ
模擬試験アプリ - Python3エンジニア認定基礎/データ分析/実践試験 - ExamApp (python-basic.com)
関数の処理結果を関数の外で使う場合は、returnで返す必要があります
関数の中でprint文を実行し、print文の引数が関数ではなく変数であれば、returnがなくても結果は同じ
演算子の優先度は、高→低と並べると「比較演算子 → not → and → or 」
「import モジュール名(ファイル名)」でインポートした場合は、「モジュール名.関数名()」で実行する。
Pythonのエラーは、構文エラーと例外があります
例外はtry文で判定して処理を続行させることができます。
except節を複数記述した場合は、上から順に判定して、最初に例外を補足したexcept節の処理だけ実行します。
クラスにメソッドを定義する場合、メソッドの第一引数でインスタンス自身(問題文ではsample)を受け取る必要があります。
class Greet():

def say(self):3】 selfでsampleを受け取る

    print('Hello')
    【4print文を実行

sample = Greet()
【1】 クラスをインスタンス化

sample.say()
【2】 sayメソッドを実行
メソッドの第一引数の名前は慣習で「self」を使います。
想定外の例外が発生した際にプログラムを終了させる場合、try文で判定してsys.exit()で終了させることがあります。
インタープリタを起動するコマンドは、以下のいずれかとなります。

python
python[バージョン]
python -c コマンド [引数]
append()メソッドが取れる引数は一つ
引数のデフォルト値は、関数を定義した時点で決定します。
「/」は、その前が位置引数だけであることを示す記号です。
「*」は、その後がキーワード引数だけであることを示す記号です。

「/」と「*」の間は、位置引数とキーワード引数のどちらでも問題ありません。
リストから値がxに等しい最初のアイテムを削除する場合は、「list.remove(x)」のメソッドを使います。

指定した値がリストに存在しない場合はValueErrorになるため、問題文はtry節でValueErrorを送出します。
「変数を使った処理 for 変数 in イテラブルオブジェクト if 条件式」となります。
「|」は、「aまたはbまたは両者に存在する要素」を結果として返す演算です。
(a ^ b)aまたはbにある共通しない要素
sorted()関数は、リスト、タプル、辞書、集合、文字列を辞書順に並び替えて、リストで返します。非破壊のため、対象の変数に影響はありません。
「df = pandas.DataFrame〜」の「pandas」がモジュール名です。
インタープリタで「import module」とインポートすると、変数「name」に「'module'」が代入されます。そのため、「if name == 'main':」と記述するとif文がFalseになり、func()が実行されません。
wは書き出し専用で、r+が読み書き両用です。
try文に複数のexcept節がある場合、一度の処理で実行されるexcept節は一つまでです。
「ハンドラ」とは「except節で設定した処理」を指します。
try文のelse節は、try節が例外を送出しなかった場合に実行されます。
ceilは小数点以下を切り上げて整数を返し、floorは小数点以下を切り捨てて整数を返します。
sys.argvは、スクリプト実行時の引数が格納されたリストです。例えばインタープリタで「>>> python sample.py -a abc」を実行すると、sys.argvに['sample.py', '-a', 'abc']が格納されます。
エスケープシーケンスとは「\+文字」の組み合わせを指し、それぞれ特別な意味に変換されます。

「\’」は「’」に変換され、「\n」は改行に変換されます。


この記事が気に入ったらサポートをしてみませんか?