😎

Pythonまとめ

2023/12/08に公開

type

str
float
number
など通常のタイプが用意されている。

for文

for [ここにfor文の中で使いたい文字] in range [forを回す範囲]

上記で使える。

if文

sample.py
if n < 100:
  // ここで処理
else:
  // ここで処理

consoleで確認したいとき

console.logではなく、print()でコンソールに結果を表示できます。

import

よくあるimportの仕方

sample.py
// 先頭
import test from "[相対パス]"

function

sample.py
def main():
  print("mainの関数です")

functionのarguments

sample.py
def main(input_string):
  print(`${input_string}です。`)

pythonは動的言語なので、引数のtypeを指定する必要がなく、自動で判別してくれます。

main

https://qiita.com/soicchi/items/45ac8e2006361126b023
https://zenn.dev/daiki/articles/f01302cee5890d25a025
上記の記事がわかりやすいです。

sample.py
if __name__ == __main__

name は自動で割り当てられる変数になっており、現在呼び出しているファイルなら name には main が割り当てられて、そのmainファイルからimportして呼び出して使っているファイルの__name__はそのファイル名が割り当てられます。この性質を使うことでimportしたファイルの関数が勝手に実行されないように制御できます。

変数(global変数、ローカル変数)

ローカル変数

ローカル変数は関数実行中にのみその変数に対応したメモリが確保され、関数が終了するとメモリが解放されます。また、当然そのローカル変数が含まれている関数外からその変数を参照することはできません。

global変数

global変数はファイルの実行中はメモリが確保され、ファイルの処理が終了するとメモリが解放されます。また、glolba変数なので、関数の中から参照することができます。

global変数の書き換え

pythonのglobal変数の書き換えはやや特殊です。JavaScriptだとファイルの一番上でglobal変数を定義して関数の中で呼び出したりしますが、pythonの場合は、変数を書き換える場合、globalという修飾詩のようなものをつけてあげる必要があります。

sample.py
global x // global変数を定義
x = 50 // global変数を値を設定

def sample ():
  print(`${x}の値は50です。`)

boolean値

return True か return Falseでbooleanを返してくれます。

immutable とmutable

https://yumarublog.com/python/mutableimmutable/#:~:text=Copy-,ミュータブルとイミュータブルな型一覧,-ミュータブルの型
上記の記事が参考になります。

pythonでは型によってimmutableなものとmutableなものが分かれています。

tuple

pythonにはtupleと呼ばれる型があります。

sample.py
sample_tuple = ("sample", 1, "sample", 2)

print(sample_tuple[0])
>>> "sample"

print(sample_tuple[1])
>>> 1

上記のように様々なタイプを混ざった状態で持つことができます。
他の言語だとrecordsと呼ばれるタイプです。

ちなみにtupleを作った後に変更を加えようとするとエラーが起きます。

sample.py
sample_tuple = ("sample", 1, "sample", 2)

sample_tuple[0] = "new_element"
>>> これはエラーが起きます。理由はtupleがimmutableだからです。

tupleを複数持つ組み合わせ

sample.py
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とは集合を扱うデータ型です。

sample.py
s = set("abcdefabbe")

例えぱ上記のsetをprint(s)とすると、{a,b,c,d,e,f}が出力されます。理由はsetの出力は重複を持たないためです。上記だとaとbとeが重複しているので、出力ではそれぞれ1つしか出てきません。

sample.py
s = set("abcdefabbe")

for i in s:
  print (i, end = " ")
>>>b a d e c f

また、出力の順番はランダムです。

sample.py
s = set("abcdefabbe")

"a" in s
>>> True

"z" in s
>>> False

上記のように集合の要素かどうかもinを使えばチェックできます。

Union

sample.py
set("abcdef") | set("ghij")
>>>a,b,c,d,e,f,g,h,i,j

Intersection

sample.py
set("abcdef") & set("efghij")
>>>e,f

Differance

sample.py
set("abcdef") - set("efghij")
>>>a,b,c,d

symmetric difference

片方の集合にのみ属している要素

sample.py
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です。

sample.py
fruits = {"apple":100, "banana":120, "peach":300}
fruits["apple"]
>>>100

上記のように検索できます。

dictionaryとlistの違い

検索が速いのがdictionaryです。一方、listは検索がdictionaryより遅いですが、検索順はlistの順番通りです。dictionaryは出力順がランダムです。

zip

sample.py
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

https://rinatz.github.io/python-book/ch04-01-modules/#:~:text=モジュールとは関数や,に実装を行います。
上記がよくまとまっています。reactでいうcomponentのような概念に近い印象です。

Discussion