検索
ホームページバックエンド開発Python チュートリアルPython での算術演算子の高度な使用法

Python での算術演算子の高度な使用法

Jul 21, 2016 pm 02:53 PM
pythonオペレーター数学手術オペレーター

Python におけるオブジェクトの動作は、その型によって決まります。いわゆるタイプは、特定の特定の操作をサポートするものです。数値オブジェクトはあらゆるプログラミング言語の基本要素であり、加算、減算、乗算、除算などの数学演算をサポートします。
Python の数値オブジェクトには整数と浮動小数点数が含まれており、+、-、*、/ などのさまざまな数学演算をサポートしています。 これらの演算子がないと、プログラムは関数呼び出しを使用して、add(2, 3)、sub(5, 2) などの数学演算を実行することしかできません。
プログラム内の演算子の機能は通常の数学演算の使用法と一致しているため、より簡単かつ直感的に使用できます。 Python では、これらの演算子は、object.__add__() や object.__sub__() などのオブジェクトのいくつかの特別なメソッドを定義することによって実装されます。ユーザーが独自のクラスを定義するときに上記の特別なメソッドを実装すると、カスタム クラスのオブジェクトは対応する数学的演算をサポートできるため、デジタル オブジェクトの動作をシミュレートできます。これにより、実際には演算子のオーバーロードの効果が得られます。

ここでは、加算演算をサポートする中国語の数値クラスを実装することによって、Python で一般的な数学演算をサポートする中国語の数値クラスを実装する方法について説明します。 ChineseNumber クラスの基本的な定義は次のとおりです。

リーリー

現時点での効果は以下の通りです。

リーリー

一般的な数学演算子
クラスを定義するときは、__add__() メソッドを実装して、このクラスに + 演算子を追加します。次のメソッドを ChineseNumber に追加します:

リーリー

現時点では、 ChineseNumber オブジェクトは + を使用できます。

リーリー

+ の場合、a + b は a.__add__(b) を呼び出すことと同じです。同様に、他の算術演算子を定義できます。以下の表を参照してください。

リーリー

オペランド反転を伴う数学演算子 (オペランドの反映/交換)

リーリー

2 は整数型であり、その __add__() メソッドは ChineseNumber クラスのオブジェクトをサポートしていないため、上記のエラーが発生しました。オペランド反転を使用して数学演算子を定義すると、この問題を解決できます。 __radd__() メソッドを ChineseNumber クラスに追加して、オペランド反転の + 演算を実装します。

リーリー

a + b の場合、a が __add__() メソッドを定義していない場合、Python は b の __radd__() メソッドを呼び出そうとします。このとき、a + b は b.__radd__(a) を呼び出すことと同じになります。

リーリー

同様に、オペランド反転を伴う他の数学演算子を定義できます。以下の表を参照してください。

リーリー

算術代入演算子
演算代入演算子は、単一の演算子を使用して演算と代入演算を完了します。たとえば、a += b は、a = a + b を呼び出すことと同じです。 += 演算子を実装するには、__iadd__() メソッドを ChineseNumber に追加します。

リーリー

この時、

リーリー

同様に、他の演算代入演算子も定義できます。以下の表を参照してください。

リーリー

単項数学演算子
単項数学演算子は、負の数を取得するための演算子など、オペランドが 1 つだけある演算です。 - 対応する特殊関数は __neg__() です。 ChineseNumber の __neg__() メソッドを追加します

リーリー

この時点で、 ChineseNumber オブジェクトは - 操作をサポートします。

リーリー

その他の単項演算子については、以下の表を参照してください。

リーリー

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Pythonアレイで実行できる一般的な操作は何ですか?Pythonアレイで実行できる一般的な操作は何ですか?Apr 26, 2025 am 12:22 AM

PythonArraysSupportVariousoperations:1)SlicingExtractsSubsets、2)Appending/ExtendingAdddesements、3)inSertingSelementSatspecificpositions、4)remvingingDeletesements、5)sorting/verversingsorder、and6)listenionsionsionsionsionscreatenewlistsebasedexistin

一般的に使用されているnumpy配列はどのようなアプリケーションにありますか?一般的に使用されているnumpy配列はどのようなアプリケーションにありますか?Apr 26, 2025 am 12:13 AM

numpyarraysAressertialentionsionceivationsefirication-efficientnumericalcomputations andDatamanipulation.theyarecrucialindatascience、mashineelearning、物理学、エンジニアリング、および促進可能性への適用性、scaledatiencyを効率的に、forexample、infinancialanalyyy

Pythonのリスト上の配列を使用するのはいつですか?Pythonのリスト上の配列を使用するのはいつですか?Apr 26, 2025 am 12:12 AM

UseanArray.ArrayOverAlistinPythonは、Performance-criticalCode.1)homogeneousdata:araysavememorywithpedelements.2)Performance-criticalcode:Araysofterbetterbetterfornumerumerumericaleperations.3)interf

すべてのリスト操作は配列でサポートされていますか?なぜまたはなぜですか?すべてのリスト操作は配列でサポートされていますか?なぜまたはなぜですか?Apr 26, 2025 am 12:05 AM

いいえ、notallistoperationSaresuptedbyarrays、andviceversa.1)arraysdonotsupportdynamicoperationslikeappendorintorintorinsertizizing、whosimpactsporformance.2)リスト

Pythonリストの要素にどのようにアクセスしますか?Pythonリストの要素にどのようにアクセスしますか?Apr 26, 2025 am 12:03 AM

toaccesselementsinapythonlist、useindexing、negativeindexing、slicing、oriteration.1)indexingstartsat0.2)negativeindexingAcsesess.3)slicingextractStions.4)reterationSuseSuseSuseSuseSeSeS forLoopseCheckLentlentlentlentlentlentlenttodExeror。

Pythonを使用した科学コンピューティングでアレイはどのように使用されていますか?Pythonを使用した科学コンピューティングでアレイはどのように使用されていますか?Apr 25, 2025 am 12:28 AM

Arraysinpython、特にvianumpy、arecrucialinscientificComputing fortheirefficienty andversitility.1)彼らは、fornumericaloperations、data analysis、andmachinelearning.2)numpy'simplementation incensuresfasteroperationsthanpasteroperations.3)arayableminablecickick

同じシステムで異なるPythonバージョンをどのように処理しますか?同じシステムで異なるPythonバージョンをどのように処理しますか?Apr 25, 2025 am 12:24 AM

Pyenv、Venv、およびAnacondaを使用して、さまざまなPythonバージョンを管理できます。 1)Pyenvを使用して、複数のPythonバージョンを管理します。Pyenvをインストールし、グローバルバージョンとローカルバージョンを設定します。 2)VENVを使用して仮想環境を作成して、プロジェクトの依存関係を分離します。 3)Anacondaを使用して、データサイエンスプロジェクトでPythonバージョンを管理します。 4)システムレベルのタスク用にシステムPythonを保持します。これらのツールと戦略を通じて、Pythonのさまざまなバージョンを効果的に管理して、プロジェクトのスムーズな実行を確保できます。

標準のPythonアレイでnumpyアレイを使用することの利点は何ですか?標準のPythonアレイでnumpyアレイを使用することの利点は何ですか?Apr 25, 2025 am 12:21 AM

numpyarrayshaveveraladvantages-averstandardpythonarrays:1)thealmuchfasterduetocベースのインプレンテーション、2)アレモレメモリ効率、特にlargedatasets、および3)それらは、拡散化された、構造化された形成術科療法、

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。