【超まとめ】解説!!「Python3.10新機能」【Python新機能】

こんにちはヤク学長です。
データサイエンティスト兼ファーマシストで、アルゴリズムやBI開発を行っています。

本記事の目的は、「pythonの基本操作を知る」ことを目的としています。

【Python】WindowsにPythonをインストールしよう【入門編】

【本記事のもくじ】

まず、「Python」に真剣に取り組むための概要を解説します。
下記の方法で、簡単に概要を抑えることができます。

  • 1.Python3.10新機能

それでは、上から順番に見ていきます。
なお、本上記の方法を抑えれば成果が出ます。

記事の内容は「転載 & 引用OK」問題ありません。

1.Python3.10新機能

パターンマッチング

パターンマッチングは、Python 3.10で導入された新機能で、値のパターンに基づいて値をマッチングすることができます。この機能は、短い、簡潔な、読みやすいコードを書くことを可能にします。

以下は、パターンマッチングの例です。

def describe_person(person):
match person:
case {"name": str, "age": int}:
print(f"{person['name']} is {person['age']} years old.")
case {"name": str, "occupation": str}:
print(f"{person['name']} works as a {person['occupation']}.")
case _:
print("Invalid person.")

person1 = {"name": "Alice", "age": 30}
person2 = {"name": "Bob", "occupation": "engineer"}
person3 = {"name": "Charlie"}

describe_person(person1)
describe_person(person2)
describe_person(person3)

この例では、describe_person()関数は、与えられた辞書に基づいて人物の情報を出力します。パターンマッチングは、与えられた辞書が指定されたパターンと一致するかどうかを確認し、最初に一致するパターンに対応する処理を実行します。

上記の例では、最初のcase文は、personnameキーを持ち、その値が文字列であり、ageキーを持ち、その値が整数である場合に一致します。2番目のcase文は、personnameキーを持ち、その値が文字列であり、occupationキーを持つ場合に一致します。最後のcase文は、上記のいずれの場合にも一致しない場合に実行されます。パターンマッチングの構文は、caseキーワードで開始され、:で終了します。また、_は、どのパターンにも一致しない場合に使用されます。

Python 3.10以前のバージョンでは、このようなパターンマッチングの機能はありませんでした。代わりに、ifelifelseなどの制御フロー構文が使用されました。しかし、パターンマッチングを使用することで、より短く、簡潔で、読みやすいコードを書くことができます。

Type hitingの複数指定

Pythonの型ヒントでは、複数の型を指定することができます。以下は、複数の型を指定する方法の例です。

1. Union型を使用する

typing.Unionを使用して複数の型を指定できます。以下は、Union型を使用した例です。

from typing import Union

def example(a: Union[int, float], b: Union[str, bytes]):
print(a, b)

example(10, "hello")

この例では、aintまたはfloat型の値を持ち、bstrまたはbytes型の値を持つ必要があります。

2. Tuple型を使用する

typing.Tupleを使用して、複数の型のタプルを指定できます。以下は、Tuple型を使用した例です。

from typing import Tuple

def example(a: Tuple[int, float], b: Tuple[str, bytes]):
print(a, b)

example((10, 3.14), ("hello", b"world"))

この例では、aint型とfloat型のタプル、bstr型とbytes型のタプルを受け入れます。

Pythonの型ヒントには、複数の型を指定するための他の方法もありますが、Union型とTuple型は最も一般的に使用されます。

isinstanceの複数指定

isinstance()関数を使用して、複数の型を指定する方法はいくつかあります。以下は、いくつかの例です。

1. タプルを使用する

タプルを使用して、複数の型を指定できます。以下は、タプルを使用した例です。

value = 10
if isinstance(value, (int, float)):
print("value is a number")

この例では、isinstance()関数は、valueintまたはfloatの場合にTrueを返します。

2. any()関数を使用する

any()関数を使用して、複数のisinstance()関数呼び出しをまとめることができます。以下は、any()関数を使用した例です。

value = 10
if any([isinstance(value, t) for t in (int, float, complex)]):
print("value is a number")

この例では、isinstance()関数がintfloat、またはcomplexのいずれかに一致する場合に、any()関数はTrueを返します。

3. 論理演算子を使用する

論理演算子を使用して、複数のisinstance()関数呼び出しをまとめることができます。以下は、論理演算子を使用した例です。

value = 10
if isinstance(value, int) or isinstance(value, float) or isinstance(value, complex):
print("value is a number")

この例では、isinstance()関数がintfloat、またはcomplexのいずれかに一致する場合に、論理演算子はTrueを返します。

これらの方法は、いずれも複数の型を指定することができますが、タプルを使用する方法が最も一般的で簡潔です。


というわけで、今回は以上です。大変お疲れ様でした。
引き続きで、徐々に発信していきます。

コメントや感想を受け付けています。ちょっとした感想でもいいので嬉しいです。

それでは、以上です。

最新情報をチェックしよう!