Python
location.href="https://python.ms/sub/misc/range/" 整数の集まりを表すオブジェクト 例えば range(3) なら 0, 1, 2 の集まりを表しています。 for i in range(3): print(i) 上のコードを絵にするなら、こんな感じです。 もちろんそう言った側面もあります…
クラス定義時に共通して実行したい処理がある時に使います。
len の意味は、オブジェクトの個数です。len が関数である理由は、メソッドよりも関数が読みやすいからです。
クラスはオブジェクトに共通する値や処理を定義しています。
Python では様々な型、クラスに対して比較演算子を定義されて、あるいは定義することができます。
== が True となる要素を1つ削除します。 要素がなければ ValueError を投げます。 list.remove(x) リスト中で、値 x を持つ最初の要素を削除します。 該当する項目がなければエラーとなります。 # 1) list の remove メソッドは is か == が True となる #…
型判定の関数名は、次の2つの理由から checktype(object) とかにしてほしかったな..(setattr 関数みたいな感じで)。
インスタンス変数は、インスタンスオブジェクトの属性です。クラス変数は、クラスオブジェクトの属性です。
self とは、関数の第一引数です。メソッドは呼び出されると、自分を呼び出してきたインスタンスオブジェクトを関数の第一引数 self に代入して、関数を実行します。
複数の書き方について、それぞれ処理速度の計測、比較をしていきます。
is は、オブジェクトが同じであるかどうかを判定する比較演算子です。== は、オブジェクトの値が等しいかどうかを判定する比較演算子です。(正確には値が同じであるかどうかを確認するように実装されて、 あるいはしなければならず、その実装はクラスごとに…
location.href = "https://python.ms/sub/misc/pep8/pep7/"; 1 行が 79 文字以内である理由 エディタに勝手に改行させないため。 コードレビューする際に、エディタで勝手に改行されると読みづらくなるので。 この 1 行の文字数の制限は、1 行が 80 文字のエ…
1.リストを比較する 2.リストの中身を比較する 3. 重複するリストの中身を比較する。
Python は、動的言語なので Java で言うところのインターフェイスに相当するものはありません。ただ、共通のメソッドを持たせたい場合は2つほど方法があります。 例えば、こんなシチュエーションだとして... class A: pass class B: pass # こいつを追加し…
location.href = "https://python.ms/sub/misc/division/"; Python で割り算をするときの繰り上げと切り捨てについて、説明させていただきます。 3つのやり方があります。 1. 演算子のみを使う。 これがオススメ。欠点は、切り上げが伝わり辛い。利点は、表…
location.href="https://python.ms/sub/algorithm/prime/eratosthenes/" 3 つの書き方を比較検討しました。 項番 項目 時間 1 簡単なもの 0.9157630139998219 2 高速化 0.16211261399985233 3 集合 0.5873824189993684 計測に使用したコード sieve_of_eratos…
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…
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 …
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…
location.href="https://python.ms/sub/misc/init/" __init__ の解説を省略して __new__ の解説に飛ぶ 1. __init__ ってなに? __init__ 自体は、かなり難しくて、つまずきどころかなと思います。 なぜ難しいかというと「名前空間」「スコープ」といった難し…
インスタンスオブジェクトは、変数に代入できるものを指しています。
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.…
location.href="https://python.ms/sub/neovim/"; 目標 作業が完了すると Neovim は、次の 3 つの動作をするようになります。 1. 構文チェック Syntastic, pyflakes 2. 補完 jedi-vim(ドット . を押下した時に補完) 3. 補完 deoplete-nvim(変数名を補完) 表.…
①Linuxのtimeコマンド, ②time, ③cProfile, ④timeit
リスト内包表記が、一番オススメです。
get を使わない。 原則、副作用の無く新たにオブジェクトを生成しない関数, メソッドは原則「名詞」を使うのが望まい。 # x noun = obj.get_noun() # o noun = obj.noun() 感動した記事 Getter/Setterは悪だ。以上 もし get がダメなら、give ならどうだろう…
◯ 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 させる方法
ゼロからDeepまで学ぶ強化学習 - Qiita これを精読する。 DQNの生い立ち + Deep Q-NetworkをChainerで書いた - Qiita http://www.fun.ac.jp/~osawa/course/AI2/learning/QLearning.html まだ1行も読めてない。 JavaでQ学習を実装 迷路の最適ルートを学習・…
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…