python勉強日記

      2019/05/26

pythonとはhttps://www.tuyano.com/index3?id=506001

Pythonのプログラムを動かすには、Pythonのソースコードを翻訳し実行するための「インタープリタ」が必要です。
Cなどは、プログラムが実行出来る命令のかたまりにソースコードを変換してしまい、EXEファイルを作ります。このEXEファイルは、そのままダブルクリックして動かすことができますね。Pythonは、そういうのはできません。

pythonインストール。
統合開発環境pycharmをインストするものの、IDLEで充分なようである。
pycharmのインストは簡単なようで実はめんどくさいのでudemyのやつをそのままマネた。

仮想環境にインストしたほうがいいとか統合開発環境はどれがいいとか色々と書かれているがあまり気にしなくてよさそう。

プログラムを書く場合はいずれにしろファイルとして保存するわけだが、書いた時に実際動くかどうかを確認する必要がある。
この際の利便性から統合開発環境などが推奨されているようである。
意外にこの統合開発環境にクセがあり使いづらく(使い方そのものを覚えるのがめんどくさいというのもあるが)、結局エディタで書いて保存、コマンドプロンプトで動くかどうか確認している(これも勿論めんどくさいが、そもそも統合開発環境を使っていないので比較しようがないわけだが)

さて、webサービスを構築するにはpythonで使えるwebサービス作る用のパッケージだかライブラリだかをインストすればいいようだ。
このインストール作業でまた手間取る→pipがインストールできない構文エラー?~おじさんのpython勉強日記

著名なものはDjangoであるが、どうやらFLASKのほうが簡単なようである。
丁度FLASKでwebサービスを作るkindle本があったのでそれを参考にしよう。

そもそもpythonに限らずプログラム全般そうであるが、各言語の文法を理解したところでwebサービスを作れるようにはならないだろう。少なくとも私はそうである。
簡単なゲームが作れるようになったとして、それがどう自分の作りたいwebサービスに結び付くのかが最初はさっぱり分からない。
webの仕組みから理解する必要がある。ホームページを作成するといった場合もそれは共通する部分がある。
ホームページを作れるようになったとしてそれをインターネット上で公開するには?といったところから分かっていなければならないわけである。
とは言え、単純なホームページであれば作ったHTMLファイルなどをサーバーにアップするくらいの話で終わるが、ユーザーに登録させるとかお問合せとか、掲示板だとか、そういう動的なサイトになってくると話はそれだけでは済まない。
pythonの入門本を一冊勉強し終わったとしても恐らくこれらの部分の知識は得られないだろう。
従ってwebサービスを作るにはそれらの事を解説した本なりサイトなりで勉強しなければならないが、最初のうちは何を勉強すればいいのかが断片的なので途方に暮れる。
そして意外にこれらの事について必要なことを過不足なく分かりやすく紹介、解説している本やサイトを見つけるのが難しい。

また、webサービスを作るにはRubyがもっとも多く使われているらしい。
Rubyにはwebサービスを構築するために必要なコードなどが用意されているrailsというものがある。
また、PythonにはDjangoやFlaskなどがある。

なぜこれらを使うのかと言えば、例えばサイトにアクセスした時にどんな情報を表示するかとかログイン時の挙動のコードなどが用意されているといった具合である。
仮にユーザーにログインさせようとプログラムをイチから書こうとするとどうだろうか?
条件分岐や繰り返しの処理など勉強していたとしても途方にくれること間違いなし。
結局ネットなどでそのコードを検索することになる。
しかし、それらwebサイト構築に通常使われるような一般的な処理が予め用意されているとしたらどうだろう。
むしろ、コードがイチから書けるようになることを目指すよりはそれらパッケージなどの使い方を理解したほうが話が早いということになる。
とりあえずこの本を参考にどのような流れでFlaskを使ってサイトを構築するのかをざっくり眺めてみる事にする。

こっちの方がインストールなどについては詳しいようだ

とりあえず上記本を眺めていたらクラスとかインスタンスが出てきた。
プログラミング言語には専門用語がよく出てくるが入門書であっても華麗にスルーされている場合が多々ある。
クラスやインスタンスを検索してもなんだかよく分からない説明ばかりである。
オブジェクト指向などでもそうだが文章で的確に分かりやすく説明されていることがほとんどない(自分が理解できないだけの話かもしれないが)
自転車の乗り方と同じでコードを書いてくうちに何となく体で理解できればそれでいいのかもしれない。

分かりやすかった記事
Pythonのインスタンスとかクラスとか__init__メソッドとかがよくわからなかったから自分なりに解釈してみた
【Pythonを使い倒す】インスタンスの使い方を覚えて、オブジェクト指向らしいコードを書こう!

要するにクラスというのは関数やそれに使う変数などをひとまとめにしたものでインスタンスは変数を定義したもののようである。

基本的に各プログラミング言語は共通する書き方(文法)のようなものがあるが、定義や変数までひとくくりにするというのはpython独特のものなのか。
以前phpを勉強しようとして速攻挫折し、Rubyにしようかと図書館で本を借りて目次だけ眺めて挫折した位の人間の言う事はあてにならない。

IDLEやパワーシェルでコードを書いてもどうもうまくいかない。
Flaskのインストさえも手間取る始末。
やはりpythonの入門本でお勉強する必要があるのか?。

【Python入門】せっかく書いたプログラムが実行できないって!?




 - python