Python

Python の range ってなに?

location.href="https://python.ms/sub/misc/range/" 整数の集まりを表すオブジェクト 例えば range(3) なら 0, 1, 2 の集まりを表しています。 for i in range(3): print(i) 上のコードを絵にするなら、こんな感じです。 もちろんそう言った側面もあります…

Python のメタクラスとクラスデコレータってなに?

クラス定義時に共通して実行したい処理がある時に使います。

Python の len の意味、なんでメソッドではなく関数なの?

len の意味は、オブジェクトの個数です。len が関数である理由は、メソッドよりも関数が読みやすいからです。

Python のクラスってなに?

クラスはオブジェクトに共通する値や処理を定義しています。

Pythono の比較演算子ってなに?

Python では様々な型、クラスに対して比較演算子を定義されて、あるいは定義することができます。

Python の list.remove メソッド

== が True となる要素を1つ削除します。 要素がなければ ValueError を投げます。 list.remove(x) リスト中で、値 x を持つ最初の要素を削除します。 該当する項目がなければエラーとなります。 # 1) list の remove メソッドは is か == が True となる #…

Python の type 関数について思ったこと

型判定の関数名は、次の2つの理由から checktype(object) とかにしてほしかったな..(setattr 関数みたいな感じで)。

Python のクラス変数とインスタンス変数ってなに?

インスタンス変数は、インスタンスオブジェクトの属性です。クラス変数は、クラスオブジェクトの属性です。

Python の関数とメソッドの違いってなに?

self とは、関数の第一引数です。メソッドは呼び出されると、自分を呼び出してきたインスタンスオブジェクトを関数の第一引数 self に代入して、関数を実行します。

Python を高速化したい

複数の書き方について、それぞれ処理速度の計測、比較をしていきます。

Python の is と == の動作と違い

is は、オブジェクトが同じであるかどうかを判定する比較演算子です。== は、オブジェクトの値が等しいかどうかを判定する比較演算子です。(正確には値が同じであるかどうかを確認するように実装されて、 あるいはしなければならず、その実装はクラスごとに…

Python で 1 行が 79 文字以内で、インデントがスペース 4 文字なのはなんで?

location.href = "https://python.ms/sub/misc/pep8/pep7/"; 1 行が 79 文字以内である理由 エディタに勝手に改行させないため。 コードレビューする際に、エディタで勝手に改行されると読みづらくなるので。 この 1 行の文字数の制限は、1 行が 80 文字のエ…

Python でリストを比較する。

1.リストを比較する 2.リストの中身を比較する 3. 重複するリストの中身を比較する。

Python でインターフェイスを持たせたい。

Python は、動的言語なので Java で言うところのインターフェイスに相当するものはありません。ただ、共通のメソッドを持たせたい場合は2つほど方法があります。 例えば、こんなシチュエーションだとして... class A: pass class B: pass # こいつを追加し…

Python で割り算をするときの切り上げと切り捨て

location.href = "https://python.ms/sub/misc/division/"; Python で割り算をするときの繰り上げと切り捨てについて、説明させていただきます。 3つのやり方があります。 1. 演算子のみを使う。 これがオススメ。欠点は、切り上げが伝わり辛い。利点は、表…

Python で素数のリストを得る方法 エラトステネスの篩

location.href="https://python.ms/sub/algorithm/prime/eratosthenes/" 3 つの書き方を比較検討しました。 項番 項目 時間 1 簡単なもの 0.9157630139998219 2 高速化 0.16211261399985233 3 集合 0.5873824189993684 計測に使用したコード sieve_of_eratos…

How to get prime list by Python

Sieve of Eratosthenes def primes(n): is_prime = [True] * (n + 1) is_prime[0] = False is_prime[1] = False for i in range(2, n + 1): for j in range(i * 2, n + 1, i): # Exclude j from candidate of prime. # j = i * k is_prime[j] = False return…

builder も作った..。

import collections def main(): # @immutable('x1', 'y1', 'x2', 'y2', 'is_line', 'is_dot') # class Region(object): region1 = Region(0, 0, 1, 1) print(region1) # def __init__ の代替もできてる。 # self.is_rectangle = value とはできない。self …

isimmutable function in Python

import string import random def usage(): # int print(isimmutable(1)) # True # str print(isimmutable('Hello, world!')) # True # user defined class class C: pass print(isimmutable(C())) # False # dict print(isimmutable({'a': 1})) # False # s…

Python の __new__ と __init__ ってなに?

location.href="https://python.ms/sub/misc/init/" __init__ の解説を省略して __new__ の解説に飛ぶ 1. __init__ ってなに? __init__ 自体は、かなり難しくて、つまずきどころかなと思います。 なぜ難しいかというと「名前空間」「スコープ」といった難し…

Python のクラスオブジェクトとインスタンスオブジェクトってなに?

インスタンスオブジェクトは、変数に代入できるものを指しています。

How to send an email from Gmail by Python.

usage $ python3 sample.py sample.py """Send an email from Gmail. Before execute this code, turn on the flag "Allow less secure apps" from the follwoing link. https://myaccount.google.com/lesssecureapps """ import smtplib import email.mime.…

Mac で Neovim を Python の開発環境にする。

location.href="https://python.ms/sub/neovim/"; 目標 作業が完了すると Neovim は、次の 3 つの動作をするようになります。 1. 構文チェック Syntastic, pyflakes 2. 補完 jedi-vim(ドット . を押下した時に補完) 3. 補完 deoplete-nvim(変数名を補完) 表.…

Python で実行時間を計測したい。

①Linuxのtimeコマンド, ②time, ③cProfile, ④timeit

Python でリストを条件をつけて複数の要素を削除したい。

リスト内包表記が、一番オススメです。

Python の関数、メソッドの命名について

get を使わない。 原則、副作用の無く新たにオブジェクトを生成しない関数, メソッドは原則「名詞」を使うのが望まい。 # x noun = obj.get_noun() # o noun = obj.noun() 感動した記事 Getter/Setterは悪だ。以上 もし get がダメなら、give ならどうだろう…

Initializing two dimensional dictionary in Python

◯ usage >>> table = dict2d(['a', 'b', 'c']) >>> table['a']['b'] = 100 >>> table['a']['b'] 100 ◯ definition def dict2d(key_list, default=None): return dict1d(key_list, dict1d(key_list, default)) def dict1d(key_list, default=None): n = len(k…

Python で class のみ reload

Python で class のみ reload させる方法

学習ノート - 強化学習

ゼロからDeepまで学ぶ強化学習 - Qiita これを精読する。 DQNの生い立ち + Deep Q-NetworkをChainerで書いた - Qiita http://www.fun.ac.jp/~osawa/course/AI2/learning/QLearning.html まだ1行も読めてない。 JavaでQ学習を実装 迷路の最適ルートを学習・…

isiterable Python3

usage >>> isiterable(MyIterableContainer('Yaruo', 'Yaranaio', 'Yarumi'), 3) True >>> >>> isiterable(MyIterableContainer('Yaruo', 'Yaranaio', 'Yarumi'), 2) False >>> >>> >>> isiterable([1, 2, 3], 3) True >>> >>> isiterable([1, 2, 3], 2) Fal…