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

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

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

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

【本記事のもくじ】

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

  • 1.Python3.9新機能

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

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

1.Python3.9新機能

Dictの連結処理

Python 3.9には、Python 3.8にはなかった新しい方法が追加されています。それは、|オペレータを使用した辞書のマージです。以下は、|オペレータを使用して辞書をマージする方法です。

dict1 = {"a": 1, "b": 2}
dict2 = {"c": 3, "d": 4}

merged_dict = dict1 | dict2

このコードを実行すると、merged_dictは次のようになります。

{"a": 1, "b": 2, "c": 3, "d": 4}

|オペレータは、両方の辞書のキーが重複している場合、右側の辞書の値が優先されます。

Python 3.9以前のバージョンでは、update()メソッドを使用して辞書をマージする必要がありました。上記で説明した方法と同じ方法を使用する必要があります。

文字列メソッド

Python 3.9には、Python 3.8にはなかった新しい文字列メソッドが追加されています。以下は、Python 3.9での新しい文字列メソッドの例です。

1. removeprefix()removesuffix()メソッド

removeprefix()removesuffix()メソッドは、文字列の先頭または末尾に指定されたプレフィックスまたはサフィックスがある場合に、そのプレフィックスまたはサフィックスを削除するために使用されます。これらのメソッドは次のように使用します。

text = "Hello world !"
text = text.removeprefix("Hello ")
text = text.removesuffix("!")
print(text)

出力:

world

2. casefold()メソッド

casefold()メソッドは、大文字小文字を区別しない文字列比較のために文字列を正規化するために使用されます。これは、lower()メソッドよりも強力な正規化を提供します。例えば、トルコ語の”i”には、通常の英語の”i”とは異なる小文字形式があります。casefold()メソッドは、このような異なる小文字形式を正規化するために使用されます。これを使用すると、異なる言語やスクリプトで書かれた文字列の比較がより正確になります。以下は、casefold()メソッドを使用した例です。

text1 = "Straße"
text2 = "strasse"

if text1.casefold() == text2.casefold():
  print("The strings are equal")
else:
  print("The strings are not equal")

出力

The strings are equal

Python 3.8には、これらの新しいメソッドはありませんでした。しかし、Python 3.8には、Python 3.9と同じくらい強力な正規化を提供するstr.translate()メソッドがあります。str.translate()メソッドは、マップを使用して文字列を正規化するために使用されます。しかし、これはより高度な使用方法を要求するため、より複雑なものです。

数学関数

Python 3.9には、Python 3.8にはなかった新しい数学関数が追加されています。以下は、Python 3.9での新しい数学関数の例です。

1. math.prod()関数

math.prod()関数は、与えられたリストまたはイテラブルの要素の積を返します。以下は、math.prod()関数を使用した例です。

import math

result = math.prod([1, 2, 3, 4])
print(result)

出力:

24

2. math.isqrt()関数

math.isqrt()関数は、整数の平方根を返します。結果は整数に四捨五入されます。以下は、math.isqrt()関数を使用した例です。

import math

result = math.isqrt(16)
print(result)

出力:

4

Python 3.8には、これらの新しい関数はありませんでした。ただし、Python 3.8には、Python 3.9にも存在するすべての古典的な数学関数があります(math.sin()math.cos()math.tan()math.log()など)。また、Python 3.8には、math.prod()と同じ結果を得るためにreduce()関数を使用することもできます。しかし、reduce()関数はより複雑な使用方法を要求するため、より複雑なものです。

Type hiting

Python 3.9では、Python 3.8で導入された型ヒント機能に多数の拡張が加えられました。以下は、Python 3.9での新しい型ヒントの例です。

1. アノテーションの削除構文

Python 3.9では、変数の型ヒントを削除するための新しい構文が導入されました。アノテーションの前に「/」を付けることで、型ヒントを削除できます。以下は、この構文を使用した例です。

def example(x: int, y: int, /) -> int:
return x + y

2. TypedDict

Python 3.9では、typing.TypedDict型が導入されました。これは、辞書型のヒントをより正確に表現するためのものです。TypedDictは、辞書のキーと値の型を指定することができ、必要なキーを指定することができます。以下は、TypedDictを使用した例です。

from typing import TypedDict

class Person(TypedDict):
name: str
age: int

person: Person = {"name": "Alice", "age": 30}

この例では、PersonというTypedDict型が定義されています。nameageは、strintの型を持つ必要があります。person変数は、Person型であり、nameageが含まれる必要があります。これにより、辞書のキーと値の型を明示的に指定できるため、コードの品質が向上します。

Python 3.8には、これらの新しい型ヒントはありませんでした。ただし、Python 3.8には、Python 3.9で使用可能な古典的な型ヒント、例えばListDictなどの多くの型ヒントがありました。また、Python 3.8でもアノテーションの削除構文を使用することができますが、TypedDict型は使用できません。


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

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

それでは、以上です。

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