nprogram’s blog

気ままに、プログラミングのトピックについて書いていきます

Django学習 (トラブルシューティング)

はじめに DjangoのWebアプリケーション作成時につまったところを記載します。 開発環境 Windows 10 (version 1809) Python version : 3.7.1 Django version : (2, 1, 7, 'final', 0) IDE : Visual Studio Code ディレクトリ構成 プロジェクトの中に一つのア…

PyCharmのトラブルシューティングまとめ

はじめに PyCharmで、躓いたところをまとめておく記事です。 環境 Windows 10 (version : 1809) PyCharm 2018.3.4 (Professional Edition) No R interpreter defined 問題 PyCharm上で、機械学習をしようとしたら、以下のエラーメッセージが出る・・・。 No …

Python 仮想環境で楽々モジュール管理 [Windows]

はじめに pythonで、モジュール管理が大変だと思いませんか? 仮想環境を使用することで、他の環境に影響を与えずに、モジュールをインストールすることが可能です。 環境 OS : Windows 10 (version : 1809) 仮想環境の作成と実行 仮想環境は以下のコマンド…

Django学習 (Djangoサーバー作成とDjango上でアプリケーション実行)

はじめに Djangoの環境を構築するための学習内容を記載します。 環境 Windows 10 (version 1809) Python version : 3.7.1 Django version : (2, 1, 7, 'final', 0) 注意点 現在どのディレクトリ階層にいるか、コマンド実施前に必ず確認しましょう (コマンドc…

Python3の関数アノテーションの記載方法

はじめに C++やC#の異なり、Pythonのコードは、関数に引数や戻り値の型を書かなくても問題ありません。 ただし、あとのコード見やすさを考慮すると、関数アノテーションを書いたほうがいいと思います。 関数アノテーションの書き方 関数の引数の型の場合 関…

TeXで綺麗な数式を書きたい

はじめに ブログに数式を乗せたい場合があると思います。そのときは、TEXを使用すると、きれいに表示できます。 hatenaブログの場合 K-means法 <div align="center">[tex: \begin{align} min=\sum_{i=1}^n\sum_{x \in X_i}||x - \mu||^2 \end{align} ]</div> Qiitaの場合 Qiitaの場合で…

抽出・変換・統計をC++テンプレートメソッドで解く [C++]

C++

はじめに 抽出・変換・統計をC++テンプレートメソッドで解きたいと思います。 std::accumulateとラムダ式 C++テンプレートメソッド C++17畳み込み式、単項右畳み込みでコンパイル時に値を計算 #include <iostream> #include <algorithm> //copy_if, for_each, transform #include <vector></vector></algorithm></iostream>…

templateクラスを用いて、C++で抽出・変換・集計処理を行います

C++

はじめに templateクラスを用いて、C++で抽出・変換・集計処理を行います。 #include <iostream> #include <algorithm> //copy_if, for_each, transform #include <vector> #include <array> #include <numeric> //iota, accumulate #include <cassert> using namespace std; void print_num(int num){ std::cout<< </cassert></numeric></array></vector></algorithm></iostream>…

初期化構文 [C++17]

C++

初期化構文 #include <iostream> using namespace std; int main(void){ // Your code here! int test = 2; if (int x = 2; x > test) { std::cout << "xは変数testより大きい" << std::endl; } else if (x == test) { std::cout << "xは変数testと同じ値" << std::end</iostream>…

C++で抽出・変換・集計処理を行う

C++

はじめに JavaやC#の関数型プログラミングをC++で行ってみました。 数列から、奇数を抽出して、その結果に対して2倍し、統計します。 コード #include <iostream> #include <functional> #include <algorithm> #include <vector> #include <numeric> using namespace std; void print_num(int num){ std::cout<<</numeric></vector></algorithm></functional></iostream>…

std::functionについて [C++]

C++

はじめに functionクラステンプレートは、パラメータの型リストArgTypes...、戻り値の型Rに合致する、あらゆる関数ポインタ、関数オブジェクト、メンバ関数ポインタ、メンバ変数ポインタを保持できるクラスです。 使用例 #include <iostream> #include <functional> using namespac</functional></iostream>…

ラムダ式攻略 [C++]

C++

はじめに 「ラムダ式(lambda expressions)」は、簡易的な関数オブジェクトをその場で定義するための機能です。 この機能によって、「高階関数(関数を引数もしくは戻り値とする関数)」をより使いやすくできます。 仕様 構文 [キャプチャリスト](パラメータリ…

Pythonの勉強サイトまとめ

はじめに Pythonを勉強する上で役に立ちそうなサイトを紹介します。 機械学習 クラスタリングの様子を視覚的に見ることが出来るサイト。クラスタリングのイメージがつかみやすくなると思います。 K-means 法を D3.js でビジュアライズしてみた - てっく煮ブ…

コピーコンストラクタと代入演算子の禁止方法

C++

はじめに C++11の文法のdeleteを使うことで、クラスのインスタンスのコピーや代入を禁止することができます。 #include <iostream> class Person { public: // 参照 const std::string m_name; int m_age; Person(const std::string name, int age) : m_name(name), m_</iostream>…

const メンバ変数がいるときの代入演算子

C++

はじめに 自分で作成したクラスのメンバ変数が、constメンバ変数であった場合、デフォルトの代入演算子では正しく代入できません。 そのため、代入演算子を自分で実装します。 例えば、nameとageというメンバ変数があったとしまして、ageだけconstメンバ変数…

メンバイニシャライザ(初期化リスト)[C++]

C++

はじめに メンバイニシャライザ(初期化リスト)を使うと、クラスのメンバ変数を代入ではなく、初期化することができます。 コンストラクタの定義 X::X() : メンバ変数名A(初期化子A), メンバ変数名B(初期化子B), ... { } 厳密には、メンバ変数1つ1つの初…

依存性逆転の法則の学習

依存性逆転の原則 (Dependency Inversion Principle) 依存関係逆転の原則は柔軟なシステムの作り方を教えてくれます。 最も柔軟なシステムは、ソースコードの依存関係がインターフェイスだけを参照している場合です。 上位クラスの具象クラスと下位クラスの…

Pythonでモジュールをインポートするときの構文

はじめに 関数の定義と関数を利用する処理を同じファイルに記述すると、コード行数が膨大になります。 また、関数を再利用しにくいです。 そこで、関数の定義を別ファイルに分けて、関数の定義(モジュール)を読み込む(インポート)方法をとります。 使用する…

Facadeパターン

はじめに Facadeパターンはこの記事が非常にわかりやすいと思います。 qiita.com

jupyterノートブックで、pandas_datareaderが見つからない問題の対処

エラーメッセージ --------------------------------------------------------------------------- ModuleNotFoundError Traceback (most recent call last) <ipython-input-1-86720d1c88cc> in <module>() 7 import matplotlib.pyplot as plt 8 import numpy as np ----> 9 import pandas_dataread</module></ipython-input-1-86720d1c88cc>…

構造化束縛 [C++17]

C++

構造化束縛 C++17で追加された構造化束縛は多値を分解して受け取るための変数宣言の文法です。 多値を受け取るためには、これまでは多値をかたまりで受け取るか、ライブラリで分解して受け取るしかありませんでした。 構造化束縛を使うと、少ないコード量で…

Pythonでプライベートメンバ変数をクラスに定義する [Python]

Pythonのプロパティを使う方法 Pythonでは、クラスのカプセル化を実現する際は、プロパティを用いるほうがいいと思います。 getter, setterを作ったとしても、使用者側がそれを使ってくれる保証がありません。(´;ω;`) あまり良くない書き方 その3 getter/se…

クラスのメソッドのオーバーライドとsuperによる親メソッドの呼び出し [Python]

クラスのメソッドのオーバーライドとsuperによる親メソッドの呼び出し <コード> class Car(object): def __init__(self, model=None): self.model = model def run(self): print('run') class ToyotaCar(Car): def run(self): print('fast') class TeslaCar(…

業務で作成する設計ドキュメント

はじめに プロジェクトで作成する設計ドキュメントは、プロジェクトの計画や品質を守るためにも必須と考えています。 私が必要と考える設計ドキュメントを以下に記載しました。 設計ドキュメント 番号 項目 内容 備考 優先度 1 GQM 定量的にプロジェクトの目…

「Webプログラミングが面白いほどわかる本」を見て仮想環境を作成しました

はじめに 「Webプログラミングが面白いほどわかる本」を見て、仮想環境(Linux OS)の作成したので、その手順を記載します。 本は、こちらです。 https://www.kadokawa.co.jp/product/321712000860 本の通りに、Linux環境構築しようとする Linux 環境構築時に…

C++11, C++14, C++17を勉強したい

C++

はじめに C++11, C++14, C++17を勉強するときに役立つサイト、書籍を紹介します。 サイト C++11からC++17を駆け抜けるC++講座 https://qiita.com/yumetodo/items/68f58de43094519ae899 達人出版会 https://tatsu-zine.com/ ここで、書籍を購入すると、Amazon…

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

はじめに オブジェクト指向型プログラミングを再学習します。 S.O.L.I.Dとは? オブジェクト指向プログラミングの5の原則のこと (1) S - 単一責任の原則 (Single Responsibility Principle) (2) O - 開放・閉鎖原則 (Open/closed principle) (3) L - リスコ…

Stateパターン [C#]

はじめに 状態を多く持ち、状態ごとの操作の動作が異なるプログラムで、恐ろしく長い条件分岐処理(if文, switch文)を見かけたことはありませんか? 私はよくあります。(^_^;) たとえば、簡単な電気ポットのプログラムがあるとします。このプログラムでは、以…

Compositeパターン [C#]

Compositeパターン Compositeパターンは、容器と中身を同一視して、再帰的な構造を作るパターンです。 利用者は容器と中身を意識せずに使用することができます。 Compositeパターンを使用しない場合は、容器と中身を意識する必要がある。 コード例では、Dire…

Abstract Factory パターン [C#]

Abstract Factory パターン [C#] Abstract Factory パターンを記載します。 Abstract Factoryパターンを使うことによって、クラスの使用者は、具象クラスを直接扱わずに、具職クラスのインスタンスを取得できる。 (Main関数で扱っているのは、抽象クラスのみ…