50代サラリーマンの暮らし

50代前半のサラリーマンです。

Pythonでプログラミングをまた始めてみよう

子どもは夏休みです。ええなぁ。

普段通っているスイミングスクールの短期コースを追加して、この夏休みでどんどん先へ進ませます。

今朝、その短期コースに行ってました。明日は昇級テストです。がんばって次のクラス行ってくれよ。

スイミングのあと、休日はゆったり昼を食べたいのでピノキオに。昼といってもモーニングですが。

前回はこどもが病み上がり調子乗って食べたあと、具合悪くなって大変でした。

ryonepon.hatenablog.com

 

もう今日は、大丈夫でしょう。でも食べ過ぎないように。

そして、ぼくはいつもこれです。食べ過ぎです。(今日はなんか写真がきれいな気がする)

これまで何回かこれを食べてますが、今まで気づきませんでした。

赤いタコさんウィンナーがついてるのですが、これになんと顔があったんです!

子どもが、タコさんウィンナー顔あるやん!と言うので見たら、確かに。だいぶ目つき悪いけど。

妻のタコさんウィンナーも同じでした。

 

 

今週は、またやってみようと思い立ったプログラミングに少し取り組んでみました。

ryonepon.hatenablog.com

 

巷で一番人気のPythonをやってみようとネットで見てたら、いい感じでした。

それは、Pythonインタプリタ言語であること。

プログラミング言語は、その実行方式によって、コンパイル言語とインタプリタ言語があります。

 

プログラミング言語で書いたコードは、そのままではコンピュータで実行できません。コンピュータがわかる命令、マシン語機械語)に翻訳する必要があります。

コンパイル言語が、全文を一括翻訳してから実行する形式なのに対して、インタプリタ言語は逐次翻訳、同時通訳しながら実行するイメージですかね。

 

むかしプログラミングを覚えたBASICもインタプリタ言語でした。

インタプリタのいいところは、書いたらすぐ実行できることです。修正したらすぐ試せます。

コンパイル言語は、ちょっとの修正でもいちいちコンパイルマシン語に変換する)という作業をしないと実行できません。しかも一か所でもコンパイルエラーがあると、エラーが解消するまでいっさい実行できません。ちょっとした手間ですが、触ってみるのに意外とハードルになる気がします。この点、Pythonはいいですね。

 

Googleで、Pthyonを検索してみると、

ゼロからのPhython入門というページが出てきました。

www.python.jp

Google Colaboratory(Colab)であれば、面倒な環境設定なしに、ブラウザで動かせるPython環境が無料で用意できるとありました。これええやん。

始めるのにまず環境整備に手間がかかってしまうと、敷居が高くなりますから。

 

さっそく、書いてある通り、準備開始です。

Googleのアカウントを持っていれば、2~3クリックで環境が用意できました。

 

ただ、Colabに遷移したときに、スタートというマークが表示されたので、クリックしたら、クレジット番号を促す画面が、、、

ん?無料ちゃうんか、なんで入れなあかんねん。と思い、戻ってよく見たら、何かの広告でした。紛らわしい。こんなん詐欺やん。あぶない、あぶない。

 

さっそく、チュートリアルに沿って、コードを入力。そして実行。

おおっ!動いた!

コードを書いて実行するまでのプロセスが簡単でいいです。

こんな感じです。

上のプログラムは、入力した文字が、数字かそうでないかを判定するもの。

下のは、入力した文字が、数字かもしくはアルファベットか、それ以外かを判定するという単純なものです。

 

このチュートリアルは、プログラミング未経験の人でも、変数とか文字列とか条件分岐とか、プログラミングに必要な概念も理解できるようになってます。

一応、遠い昔とはいえ経験があるので、コードをコピペして実行しながら思い出しつつ、Pythonの表記方法を理解していきます。同じ処理でも言語によって表記が違うので。

 

関数、リスト、タプル、ふんふん、なんとなくわかった。(気がする)

 

最後に演習として、スイカ割りゲームです。

座標を入力して、返ってくるメッセージがから徐々にスイカの位置に近づいていき当てるというゲームです。文字だけのゲームです。

 

コードをコピペして、実行。

 

そして、一度書いたプログラムを、よりよくするため改良していきます。

 

機能追加や改善していくことはもちろんですが、それだけでなく、機能(プログラムの振る舞い)は変えずに改良することをリファクタリングと言うそうです。

読みやすくわかりやすいコードに書き直したり、効率的に処理するように、改良しやすいように書き直したり。

 

プログラムはとにかく動けばええってもんでもないみたいです。

最初から完成形を書けるわけもなく、文章であれば、1度書いて読んでみて見直し、また書いて読んで見直しと推敲を重ねますが、それと同じような感じですかね。

 

ひとまず、チュートリアルでなんとなくわかった気になってます。

次は調子に乗って、なんか簡単なゲームでも試したいみたいと思います。