Pythonまとめ
type
str
float
number
など通常のタイプが用意されている。
for文
for [ここにfor文の中で使いたい文字] in range [forを回す範囲]
上記で使える。
if文
if n < 100:
// ここで処理
else:
// ここで処理
consoleで確認したいとき
console.logではなく、print()でコンソールに結果を表示できます。
import
よくあるimportの仕方
// 先頭
import test from "[相対パス]"
function
def main():
print("mainの関数です")
functionのarguments
def main(input_string):
print(`${input_string}です。`)
pythonは動的言語なので、引数のtypeを指定する必要がなく、自動で判別してくれます。
main
上記の記事がわかりやすいです。
if __name__ == __main__
name は自動で割り当てられる変数になっており、現在呼び出しているファイルなら name には main が割り当てられて、そのmainファイルからimportして呼び出して使っているファイルの__name__はそのファイル名が割り当てられます。この性質を使うことでimportしたファイルの関数が勝手に実行されないように制御できます。
変数(global変数、ローカル変数)
ローカル変数
ローカル変数は関数実行中にのみその変数に対応したメモリが確保され、関数が終了するとメモリが解放されます。また、当然そのローカル変数が含まれている関数外からその変数を参照することはできません。
global変数
global変数はファイルの実行中はメモリが確保され、ファイルの処理が終了するとメモリが解放されます。また、glolba変数なので、関数の中から参照することができます。
global変数の書き換え
pythonのglobal変数の書き換えはやや特殊です。JavaScriptだとファイルの一番上でglobal変数を定義して関数の中で呼び出したりしますが、pythonの場合は、変数を書き換える場合、globalという修飾詩のようなものをつけてあげる必要があります。
global x // global変数を定義
x = 50 // global変数を値を設定
def sample ():
print(`${x}の値は50です。`)
boolean値
return True か return Falseでbooleanを返してくれます。
immutable とmutable
上記の記事が参考になります。
pythonでは型によってimmutableなものとmutableなものが分かれています。
tuple
pythonにはtupleと呼ばれる型があります。
sample_tuple = ("sample", 1, "sample", 2)
print(sample_tuple[0])
>>> "sample"
print(sample_tuple[1])
>>> 1
上記のように様々なタイプを混ざった状態で持つことができます。
他の言語だとrecordsと呼ばれるタイプです。
ちなみにtupleを作った後に変更を加えようとするとエラーが起きます。
sample_tuple = ("sample", 1, "sample", 2)
sample_tuple[0] = "new_element"
>>> これはエラーが起きます。理由はtupleがimmutableだからです。
tupleを複数持つ組み合わせ
people_tuples = [("taro", 10),("hanako", 20), ("satoru", 30)]
for (name, age) in people_tuples:
if age < 18
print (`${name}は未成年です`)
上記のようにtupleをリストの中に持つことで複数のtupleを扱うことができます。
iterator
イテレータとは、複数のデータを順に取り出す機能です。for文では内部で自動的に実行されています。
set
setとは集合を扱うデータ型です。
s = set("abcdefabbe")
例えぱ上記のsetをprint(s)とすると、{a,b,c,d,e,f}が出力されます。理由はsetの出力は重複を持たないためです。上記だとaとbとeが重複しているので、出力ではそれぞれ1つしか出てきません。
s = set("abcdefabbe")
for i in s:
print (i, end = " ")
>>>b a d e c f
また、出力の順番はランダムです。
s = set("abcdefabbe")
"a" in s
>>> True
"z" in s
>>> False
上記のように集合の要素かどうかもinを使えばチェックできます。
Union
set("abcdef") | set("ghij")
>>>a,b,c,d,e,f,g,h,i,j
Intersection
set("abcdef") & set("efghij")
>>>e,f
Differance
set("abcdef") - set("efghij")
>>>a,b,c,d
symmetric difference
片方の集合にのみ属している要素
set("abcdef") ^ set("efghij")
>>>a,b,c,d,g,h,i,j
addとdiscard
s.add("z")のようにしてs集合に要素zを追加でき、s.discard("a")のようにしてs集合から要素aを削除できます。
mapping type
{"apple":100, "banana":120, "peach":300}
上記のようにキーバリューで値を持ちます。
dictionary
辞書型は、pythonに埋め込まれているmapping typeです。
上記のキーバリューの{}で囲まれた形がdictionaryです。
fruits = {"apple":100, "banana":120, "peach":300}
fruits["apple"]
>>>100
上記のように検索できます。
dictionaryとlistの違い
検索が速いのがdictionaryです。一方、listは検索がdictionaryより遅いですが、検索順はlistの順番通りです。dictionaryは出力順がランダムです。
zip
fruits_keys = ["apple", "banana", "peach"]
fruits_values = [100, 120, 300]
fruits_dictionary = dict(zip(fruits_keys,fruits_values))
print(fruits_dictionary)
>>>{"apple":100, "banana":120, "peach":300}
キーのlistとバリューのlistで新しいdictionaryを作れます。
module
上記がよくまとまっています。reactでいうcomponentのような概念に近い印象です。
Discussion