shinoblog-manabu

Progate(プロゲート)を使って初歩の初歩からプログラミング勉強をはじめました。無料から有料バージョンへ以降しつつ、自分辞書として活用しています。なるべく私と同じ初心者目線を使い、各プログラミング内容を説明したいです。

プログラミングパラダイム

プログラミングパラダイム

f:id:shinoblog-manabu:20210712155957j:plain

 

 

抽象化

 

 

参考:抽象クラスを使うメリット

https://qiita.com/bluepost59/items/eef6f48fdd322b0b9791

 

参考:10分でわかる】オブジェクト指向とは?プログラミングに必須のクラスやオブジェクト指向を解説!【Java,Python,PHP他、全言語対応版】

https://www.youtube.com/watch?v=CTIAYv88xj4

 

 

なるほど。上記によってクラスとインスタンスの違いがより明確になりました。

 

クラス(抽象化)をつくり、インスタンス(具体的な歴史)を創る。

 

それではPythonにおいてクラスの作り方やインスタンスをどうやって構築していけば良いでしょうか。

 

 

#1-1:インスタンス

f:id:shinoblog-manabu:20210710114639p:plain

 

#1-1-5:出力結果

f:id:shinoblog-manabu:20210710114651p:plain

 

 

 

programming paradigm

 

覚えておくワード

手続き型プログラミング

オブジェクト指向プログラミング

関数型プログラミング

ステート(状態)

 



 

  • 手続き型プログラミング

 

 

f:id:shinoblog-manabu:20210712155605p:plain

f:id:shinoblog-manabu:20210712155612p:plain

 

 

途中からステートを変えつつ手続きを踏んでいく手法。



Point

データをグローバル変数として持ちつつ、関数を用いて上記データを操作する。 



手続き型プログラミングのデメリット

・予期しないエラーが起こりやすくなる。

・関数のグローバルステートの読み書きが多くなり把握できにくい環境になる。

・データを壊すようなプログラムを書いてしまう。

・プログラムが肥大するにつれ、グローバル変数も増す。

・関数それぞれがグローバル変数を読み込むため、プログラム維持が難しくなる。

 




上記の問題をどのように対処すべきか?

 

A.グローバル変数の多用を避ける。

 

Point

 

  • 関数の独立性を高めることができる
  • 理解しやすくなる
  • バグの発生を抑えるコードを書くことができるようになる

 



上記の特徴を踏まえ、上手にプログラミングを活用していこう。

 

 

 

関数型プログラミング

 

関数型プログラミングとは

f:id:shinoblog-manabu:20210712155704p:plain

出典:関数型プログラミング - Wikipedia




上記の解釈では理解できなかったので、試しに例題をだしつつ解説しているサイトにて一読してみた。

 

参考一覧:

 

Pythonで関数型プログラミングのエッセンスに触れてみよう | 侍エンジニアブログ (sejuku.net)

 

Pythonを使って関数型プログラミング Part.1 - ログミーTech (logmi.jp)




上記の説明をみても理解が難しかった。しかし、打開するためのヒントを見つけた。



強化すべき勉強内容

  • if文
  • for文
  • 関数

 

上記勉強内容をいま一度復習し、他の問題集などで慣れる必要がありそうだ。

この項目に関しては流し読みしつつ、理解できるようなスキルを持った時、再度学習すればよいと感じた。

 

まずは基本+実践である程度の力をつけよう!