Python 3.9:新機能チェックアウトするためのクールな機能
公開: 2020-12-01Pythonは、開発者の間で常に人気があり、最も人気のある言語です。 プログラミング言語を人気に応じてランク付けするプログラミングコミュニティであるTiobeインデックスによると、PythonはJavaを抜いて2番目にランク付けされています。 Pythonは優れたコミュニティサポートを備えており、そのシンプルさと使いやすい性質により、すべての初心者は少なくともこの言語を習得することを目指しています。
この言語は、データ分析、機械学習、Web開発、コンピューターアプリケーション、IOT、またはその他の開発分野での使用法を見つけるために近年多くの注目を集めていますが、最新バージョンのPython 3.9安定版がリリースされ、機能リリースのタイムラインで変更するためのパーサーから追加機能への多くの変更。 これらの変更を詳しく見てみましょう。
目次
新しいオペレーター
辞書を扱っている間、他の辞書からのエントリでそれらをマージまたは更新する必要があることがよくあります。 以前は、ディクショナリオブジェクトの更新属性first_dict.update(second_dict)を使用してこれを行うことができましたが、このアプローチの問題は、変更がインプレースで行われ、元の値が変更されることです。
一時的に変更するには、前の値を格納するために別の変数が必要です。 この新しいバージョンでは、辞書をマージするために使用できるマージ演算子(|)と呼ばれる新しい演算子が導入されました。 これを理解するためのコード例を次に示します。
A = {“ name”:“ Author”、“ company”:“ upGrad”}
B = {“ status”:“ instructor”}
印刷(A | B)
出力:{“ name”:“ Author”、“ company”:“ upGrad”、“ status”:“ instructor”}
| は連結演算子のようなものですが、元の値を更新する場合は、|=演算子を使用するだけです。 前の例を続けると、A |=BはAディクショナリの値を更新します。
また読む:インドのPython開発者給与
文字列操作
テキスト操作は、特にNLPの期間中、データサイエンスのライフサイクルの主要な部分を形成します。 分割、連結、置換など、さまざまなタイプの文字列操作を実行するためのさまざまな関数があります。 このレガシーに加えて、removesuffix()とremoveprefix()という2つの新しい操作が追加されました。
名前が示すように、これらは文字列からプレフィックスとサフィックスを削除するために使用されます。 文字列オブジェクトを使用してアクセスできます。 この削除は、正規表現と文字列のスライスを使用して簡単に実行できますが、組み込みライブラリにこの機能があります。 説明のための簡単な例を次に示します。
'@something_new' .removeprefix('@')
'something_231' .removesufix( '231')
出力:
新しい何か
なにか_
変更されたタイムゾーンモジュール
このバージョンでは、標準ライブラリのIANAデータベースをサポートするzoneinfoという名前の新しいモジュールも導入されています。 標準ライブラリのDateTimeオブジェクトでタイムゾーンを指定できますが、ユーザーはタイムゾーンの複雑なルールを作成することになります。 PEP 615によると、ユーザーベースはUTC、IANA、またはシステムローカルタイムゾーンなどの主要なタイムゾーンに傾いています。 これで、「大陸/都市」の形式の構成検索パスを指定して、ゾーン情報オブジェクトを作成できます。 例えば、
zoneinfoからインポートZoneInfo
日時からインポート日時
dt = datetime(2020、11、15、01、tzinfo = ZoneInfo(“ Asia / Kolkata”))
dt.tzname()
出力:'IST'
について学ぶ:トップPythonツール

新しい数学関数
数学モジュールは、一般的な数学で使用されるすべての数値演算で構成されています。 正弦関数、余弦関数、特定の場所への数値の四捨五入、円周率や指数関数などの普遍的な定数など、数学モジュールはほぼすべての種類の関数をカバーします。
このリストに3つの新しい関数が追加され、math.lcm()、math.nextafter()、math.ulp()があります。 LCM(最小公倍数)は非常に一般的に使用される関数ですが、他の2つはあまり使用されていません。 以前は、LCM操作用の関数を明示的に作成する必要がありましたが、この新しいバージョンを開始すると、標準ライブラリに組み込みの機能が追加されます。 この関数を使用するには、次のコマンドを呼び出すだけです。
数学をインポートする
math.lcm(2,3)
出力:6
この関数で引数が渡されない場合は1を返し、引数の1つがゼロの場合は0を返します。
高性能パーサー
機能レベルでのすべての新しい追加とは別に、Python言語パーサーもPEGパーサーと呼ばれる新しいより高速なテクノロジーに更新されます。 この効果はこのバージョンには反映されませんが、今後のPython3.10には反映されます。 Pythonが作成された日から、コードを上から下、左から右に解析するLL(1)パーサーを使用してきました。 このパーサーは文脈自由文法に基づいているため、文字列が複数の解析ツリーを持つことができ、中間ステップの数が増えることを意味するのはあいまいです。 新しいPEGパーサーは、有効なAST(抽象構文木)を1つだけ生成し、前のパーサーのあいまいさを取り除きます。
新しいランダム機能とリリースサイクルの変更
random.randomモジュールに、ランダムなnバイトを返す新しいメソッドrandbytes(n)が追加されました。 他のランダム関数と非常によく似ています。 また、以前は、Pythonは18か月ごとに新しいバージョンをリリースしていましたが、これは12か月に短縮されました。
世界のトップ大学からデータサイエンス認定を取得します。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを学び、キャリアを早急に進めましょう。
結論
ソフトウェアの新しいバージョンがリリースされるときはいつでも、それは多くの新しい変更を伴います。 ここでは、新しい演算子、追加された機能、改善されたパーサーなど、Pythonの主要で強調された変更のいくつかについて説明しました。
ast、asyncio、concurrent.futures、マルチプロセッシング、XMLなど、他のモジュールにも多くの新しい変更があります。 一部の機能は減価償却されており、リストは続きます。 新しいPython3.9の更新の完全なリストについては、公式ドキュメントを確認してください。
python、データサイエンスについて知りたい場合は、IIIT-BとupGradのデータサイエンスのPGディプロマをチェックしてください。これは、働く専門家向けに作成され、10以上のケーススタディとプロジェクト、実践的なハンズオンワークショップ、業界の専門家とのメンターシップを提供します。業界のメンターとの1対1、400時間以上の学習、トップ企業との就職支援。
Pythonが他のコーディング言語よりも好まれるのはなぜですか?
Pythonが他の言語よりも好まれる理由はたくさんあります。 まず、Pythonのコードは読みやすく、これまでに記述したことがない開発者でも理解できます。 Pythonは科学界では一般的であり、Pythonのユーザーには多くの研究者や教授がいます。 Pythonで作成されたコードは、開発者が共有、コピー、および変更できます。 また、Pythonには強力なコミュニティがあり、無料でオープンなプログラミング言語であるため、急速に進化しています。 Pythonは幅広いシステムと互換性があります。 他の言語で蔓延している問題に直面していないため、開発者に役立ちます。
Pythonでのmath.nextafter()とmath.ulp()の使用法は何ですか?
nextafter()とulp()は、Python3.9.0の数学ライブラリに追加された2つの新しい関数です。 nextafter()関数は、xの次のfloat値をyの方向に返します。 xがyと等しい場合、値yが返されます。 その構文はmath.nextafter(x、y)です。ここで、xとyは2つの整数/浮動小数点値です。 ULPは、「最後の場所の単位」を意味する略語です。 ULPは、数値解析とコンピューターサイエンスの浮動小数点値の間のスペースです。 math.ulp()関数は、floatxの最下位ビットの値を返します。 その構文は数学的なulp(x)であり、入力される引数xはfloatである必要があり、そのulpが返される必要があります。
Pythonのパーサーとは何ですか?
構文解析ステップ中に、コンパイラーは、字句アナライザーによって作成されたトークンが言語の構文規則に従って編成されているかどうかを調べます。 パーサーがこれを担当します。 パーサーは、字句アナライザーからトークンの文字列を取得し、その文字列がソース言語の文法に対応していることを検証します。 構文上の問題が検出および報告され、開発者が中間コードを生成できる解析ツリーが生成されます。 また、パーサーモジュールはPythonの内部パーサーおよびバイトコードコンパイラと通信します。 このインターフェースの主な目的は、PythonコードがPython式の解析ツリーを変更し、そこから機能するコードを生成できるようにすることです。