PUROGU LADESU

ポエムがメインのブログです。

速習Python:データ構造

リスト(配列) list li = [5, 11, 40, 6, 55, 2, 7] li[-1] #最後尾 li[2] #3番目 li[:2] #0-3番目の手前まで li[:] #全部 len(li)list('abcde') で文字列をリストに変換li[::2] #全部を一つ飛ばしで取り出し li[::-1] #全部を逆順で取り出し リストの操作 …

速習Python 数値と文字列

print "python" でインタラクティブモード起動 print() type() #変数の型を確認 print('aaa', 'bbb', sep=',') 変数 varはなくていい 型は自動で決まる 型宣言はできるがエラーにはならず意味がないので不要nb: int = 1 num = 100 str = 'aaaa'定数はないけ…

Dockerその他注意事項

レイヤ https://qiita.com/zembutsu/items/24558f9d0d254e33088fDockerfileのコマンドのたびにレイヤが増えていくという説明。たぶん。 DockerDesktopのimageの中を見るとLayersというのが確認できる。 ネットワーク コンテナをネットワークに加えて複数のコ…

Dockerでpython環境を作成する2

Dockerfileでbuildしてイメージ作成するパターン python環境を構築し、ホストからソース編集できるようにします。 入れたいパッケージのリストはrequirements.txtに任意で記載します。https://hub.docker.com/_/python 1. フォルダ構成 src/ src/main.py doc…

DockerでPython環境を作成する

Dockerfileを使わずDockerHubのイメージをそのまま使うパターンです。 python環境を構築し、ホストからソース編集できるようにします。 入れたいパッケージのリストはrequirements.txtに任意で記載します。https://hub.docker.com/_/python 1. フォルダ構成 …

Dockerでanaconda環境を作る

anacondaをインストールしてjupyternotebookを起動し、ホストからアクセスできるようにします。https://hub.docker.com/r/continuumio/anaconda3imageが4GBほどありますので注意。 1. フォルダ構成 src/ docker-compose.yml 2. 起動方法 docker-compose.yml…

Dockerのボリューム

コンテナ内のデータはコンテナとともに消えるため、 ホストのディレクトリをコンテナにマウントして永続化する。1. 名前付きボリューム 保存場所はdockerが勝手に決めます docker volume create xxxrunの-vでマウントするディレクトリと、マウント先のボリュ…

byteとbitと16進数

offsetが4byteの場合、格納できるデータの表し方 0000 32bit integer 0004 unsigned byte 0005 ...4byte = 32bit 1byteが8bitなので、4byteは32bitである1111 = 0xF = 15 4bit、つまり2進数の15は16進数ではFとなる。 つまり4bitは16進数だと1文字。1111 111…

DockerCompose

概要 docker-compose.ymlを使って複数コンテナを一箇所で管理します。 コマンド docker-compose version docker-compose up -d (作成) docker-compose down (削除) docker-compose start / stop(起動、停止) docker-compose.yml services: app, mysqlなど…

Dockerイメージのバージョン指定

Pythonパッケージの場合 DockerHubからイメージを取得する際、python:3のような形でバージョン指定します。 python:3 python:3.9 python:3.9.16 python:3.9-slim python:3.9-slim-bullseyepython:3 実際にはこのようなバージョンはなく、バージョン3の最新と…

Dockerの概要と基本コマンド

概要 環境構築をするためのものです。 OSやアプリケーション、パッケージなどがセットになったイメージを共有することで、 同じ環境を簡単に作れます。作れるらしい。 コンテナはホストへの負荷が少なく、簡単に作ったり消したり出来ます。 イメージ Docker…

AtCoder Beginners Selectionをやってみたら出来なかった

ABC086A - Product 簡単ABC081A - Placing Marbles 簡単ABC081B - Shift only 簡単ABC087B - Coins 簡単ABC083B - Some Sums 簡単ABC088B - Card Game for Two 簡単ABC085B - Kagami Mochi 簡単ABC085C - Otoshidama 考え方はあっていたがミスで失敗ABC049C …

【Javascript】オブジェクト配列で指定キーのmin, maxを取得する

オブジェクト配列で指定キーのmin, maxを取得する reduceを使います。 prevとcurrentをキーで比較し、オブジェクトをreturnします。 const data = [ { name: "aaa", score: 90 }, { name: "bbb", score: 30 }, { name: "ccc", score: 20 }, { name: "ddd", s…

【Javascript】Promiseの復習

Promise Promiseは非同期処理のためのものです。 時間のかかる処理を使う場合に必要です。 ややこしいですがDBやネットワーク処理などかなり使い所が多いのでこれは必ずマスターする必要があります。まず、目的の処理を作成し、new Promiseでラップします。 …

Javascriptの落とし穴6

JSON JSONとオブジェクトリテラルは変換が必要。でも簡単にできる。 console.log(JSON.parse('{"x":1,"y":2,"z":3}')); console.log(JSON.stringify(obj3)); オブジェクト変更の制限 use strictを宣言しないと効果がない(IEでは無効) Object.preventExtens…

Javascriptの落とし穴5

クラス(プロトタイプ) Javascriptではプロトタイプベースという方式でクラスを実現しています。 これが一番クセ者です。ES6ではclassキーワードが使えるようになり、多少マシになりましたが。コンストラクタはただの関数リテラルです。コンストラクタ、メ…

Javascriptの落とし穴4

関数 1.function命令 通常のやり方。解析時に登録され、宣言より上からでも呼び出せる console.log(getPlus(8)); function getPlus(x) { return x + 10; }2.Functionオブジェクト 文字列として定義できる。ただ必要ない限り使わない。 var getTri = new Func…

Javascriptの落とし穴3

正規表現でキャプチャしたい場合はmatchではなくmatchAllかexecを使う matchはgをつけると複数認識するが、キャプチャを返さない。 ilet optlist = [ '<select name="country">', '<option value="us" selected>アメリカ 合衆国</option>', '<option value="fr">ふらんす</option>', '<option value="in">インド</option>', ].join("\n"); console.log(optlist); let regexp2 = new </select>…

Javascriptの落とし穴2

配列の初期化 配列の宣言のときArrayオブジェクトをnewしてはいけません。バグのもとです。 リテラル[]で初期化します。 わざわざnewしなくても同じことができます。 let bad = new Array(11, 22, 33); let good = [1, 22, 33]; 配列のコピー スプレッド構文…

Javascriptの落とし穴1

Javascriptはクセがスゴイ ブラウザさえあれば動くし何となくかけるものの危険がいっぱいです。 シンタックスもES6が出てきて劇的に変わったり、ブラウザ問題もあります。 Node.jsでは動作が違ったりここでも使える使えない問題が発生したりします。 JSフレ…

【Django】クエリを作成する

クエリを作成する | Django ドキュメント | Djangoデータベースからオブジェクトを取得するには、モデルクラスの Manager から QuerySet を作ります。 各モデルは少なくとも一つの Manager を持ち、デフォルトでは objects という名前を持ちます。 SQL 文に…

【Django】モデル

モデルを定義してマイグレーションしてDBを作成するのが目的です。 あと自動生成される管理画面の出来栄えはモデルに依存するでしょう。モデル | Django ドキュメント | Django models.Model class Person(models.Model): first_name = models.CharField(max…

【Django】フォームフィールド

フォームクラスを作る際、フィールド定義に使うオプションなど。 class UserForm(forms.Form): f = forms.EmailField(xxx=xxx) Form fields | Django ドキュメント | Django Field.clean(value) f = forms.EmailField() f.clean('xxx') 渡された値でフォーム…

【Django】パッケージ化

パッケージ化して他でインストールできるようにする 高度なチュートリアル: 再利用可能アプリの書き方 | Django ドキュメント | Djangosetuptoolsをインストールし、これを使ってパッケージ化するpip/conda install setuptools目的のアプリフォルダのみを別…

【Django】チュートリアル7 管理サイトの扱い

その7 管理サイトの扱い 管理サイトのカスタムができる 項目の並び替え カスタマイズクラス作って、引数の二番目に渡す。 class QuestionAdmin(admin.ModelAdmin): fields = ['pub_date', 'question_text'] admin.site.register(Question, QuestionAdmin)fi…

【Django】チュートリアル5〜6 テスト、静的ファイルの扱い

その5 テスト Django におけるテスト Django におけるテスト | Django ドキュメント | Django 各アプリのtests.pyに書く python manage.py test xxxx で実行 モデルやビューごとに TestClass を分割する class QuestionModelTests(TestCase): self.assertIs…

【Django】チュートリアル3〜4 ビューの作成、フォーム

その3ビューの作成 urls.pyにルートを書いていく urlpatternsのパラメータはviews.pyの引数の名前と一致させること。 path('<int:question_id>', views.detail, name='detail'), def detail(request, question_id): return render(request, 'polls/detail.html', context) テ</int:question_id>…

【Django】チュートリアル1〜2 初期設定、データベース、モデル作成

その1インストール はじめての Django アプリ作成、その 1 | Django ドキュメント | Django インストール pip install django conda install django Djangoが入ってるか確認 python -m django --version プロジェクト django-admin startproject mysite ア…

【python】仮想環境切り替え

venv pythonについてくるやつです。仮想環境: Python環境構築ガイド - python.jp python3 -m venv .newenv .newenvフォルダが作成される。名前は何でも良い。 # 有効化する (sourceと.はカレントシェルでシェルを実行するコマンドです) source .newenv/bin…

【Python】Anaconda環境のパッケージの利用

Anaconda環境のパッケージの利用 Managing packages — conda 4.9.2.post26+f52f2bf4 documentation 使い方 conda install xxx conda remove xxxconda listコマンドはインストールしたパッケージのリストを表示する。 取得元チャネルも表示。 conda list chan…