and と or の特別なプロパティ
Python では、and と or はブール論理演算を実行しますが、ブール値を返すのではなく、実際に比較する値の 1 つを返します。例を見てみましょう。
>>> 'a' and 'b' 'b' >>> '' and 'b' '' >>> 'a' and 'b' and 'c' 'c'
and を使用する場合、式の値はブール コンテキストで左から右に評価されます。 0、''、[]、()、{}、None はブール値コンテキストでは false です。それ以外は true です。まあ、ほとんどすべてです。デフォルトでは、ブール値コンテキストのクラス インスタンスは true と評価されますが、クラス インスタンスを false と評価させる特定のメソッドをクラス内に定義できます。クラスとこれらの特別なメソッドについては、第 5 章で学習します。ブールコンテキスト内のすべての値が true の場合、最後の値を返します。この例では、 and 計算は 'a' を true に評価し、次に 'b' を true に評価し、最後に 'b' を返します。
ブールコンテキストの値が false の場合、最初の false 値を返します。この例では、'' が最初の false 値です。
すべての値は true なので、最後の true 値 'c' を返します。
>>> 'a' or 'b' 'a' >>> '' or 'b' 'b' >>> '' or [] or {} {} >>> def sidefx(): ... print "in sidefx()" ... return 1 >>> 'a' or sidefx() 'a'
or を使用する場合、値は、 and と同様に、ブール値コンテキストで左から右に評価されます。値が true の場合、またはその値をすぐに返します。この場合、「a」が最初の真理値です。
または '' を false に評価し、その後 'b' を true に評価して 'b' を返します。
すべての値が false の場合、または最後の false 値を返します。または、'' を false に評価し、次に [] を false に評価し、次に {} を false に評価し、最後に {} を返します。
ブール値コンテキストの or は、最初の true 値が見つかるまで式を評価し、その後残りの比較値を無視することに注意してください。一部の値に副作用がある場合、このプロパティは重要です。ここで、function Sidefx は決して呼び出されません。これは、 or 演算が 'a' を true と評価するため、すぐに 'a' を返すためです。
C 言語のハッカーであれば、bool ? a : b 式に精通している必要があります。 bool が true の場合、式は a に評価され、それ以外の場合は b になります。 Python での および および or の動作に基づいて、同じことを実現できます。
例 . and-or テクニックの紹介
>>> a = "first" >>> b = "second" >>> 1 and a or b 'first' >>> 0 and a or b 'second'
この構文は、C 言語の bool ? a : b 式に似ています。式全体が左から右に評価されるため、and 式が最初に評価されます。 1 と 'first' は 'first' と評価され、次に 'first' または 'second' は 'first' と評価されます。
0 と 'first' は False に評価され、次に 0 または 'first' は 'second' に評価されます。
ただし、この Python 式はブール論理演算のみを実行し、言語の特定のコンポーネントではないため、これは and-or 手法と C 言語の bool a : b 構文の非常に重要な違いです。 a が false の場合、式は期待どおりに機能しません。 (私がこの問題に何度も苦労したことをご存知ですか?)
例: and-or トリックが機能しない場合
>>> a = "" >>>b = "second" >>> 1 and a or b 'second'
a は空の string であるため、Python のブール値コンテキストでは、空の文字列は false とみなされ、1 と '' の計算値は ''、最後に '' または '秒' の計算値は '秒' と見なされます。おお!この値はあなたが望むものではありません。
and-or トリック、bool および a または b 式は、ブール値コンテキストで a が false と評価される場合、C 言語の式 bool a : b のように機能しません。
and-or トリックの背後にある本当のトリックは、a の値が決して false にならないようにすることです。最も一般的な方法は、a [a] と b [b] を作成し、戻り値リストの最初の要素 (a または b のいずれか) を使用することです。
例: 安全and-or トリックを使用する
>>> a = "" >>> b = "second" >>> (1 and [a] or [b])[0] ''
[a] は空ではないリストであるため、false になることはありません。 a が 0 や ''、あるいは他の false 値であっても、要素が 1 つあるため list [a] は true になります。
今のところ、このヒントは価値がある以上に問題が多いように思えるかもしれません。結局のところ、if ステートメントを使用して同じことを実現できるのに、なぜわざわざ苦労する必要があるのでしょうか。多くの場合、2 つの定数値のどちらかを選択することになりますが、 a は常に true と評価されることがわかっているため、この単純な構文を使用して心配する必要はありません。より洗練された形式のセキュリティを使用する十分な理由がまだあります。たとえば、ラムダ関数など、Python 言語では if ステートメントが許可されない状況があります。
注: ここの文は左から右に解釈されます。このように理解できます。
and文:
0and* *が0か1かを考慮する必要はなく、結果は0になります
1and* 結果を決定するには、*が0か1かを考慮する必要があります。
1or* 次の*を考慮する必要はありません、結果は 1 です
0or* 結果を決定するには、次の * を考慮する必要があります
[関連おすすめ]
1 Python and, or and and- or 構文の概要
2. Python での and と or の使い方を分析する
3. Python での and / or の操作ロジック例のチュートリアルを共有する
5.以上がPythonでのandとorの実際の使い方を詳しく紹介します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

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

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

パフォーマンスに対する配列の均一性の影響は二重です。1)均一性により、コンパイラはメモリアクセスを最適化し、パフォーマンスを改善できます。 2)しかし、タイプの多様性を制限し、それが非効率につながる可能性があります。要するに、適切なデータ構造を選択することが重要です。

craftexecutablepythonscripts、次のようになります

numpyarraysarasarebetterfornumeroperations andmulti-dimensionaldata、whilethearraymoduleissuitable forbasic、1)numpyexcelsinperformance and forlargedatasentassandcomplexoperations.2)thearraymuremememory-effictientivearientfa

NumPyArraySareBetterforHeavyNumericalComputing、whilethearrayarayismoreSuitableformemory-constrainedprojectswithsimpledatatypes.1)numpyarraysofferarays andatiledance andpeperancedatasandatassandcomplexoperations.2)thearraymoduleisuleiseightweightandmemememe-ef

ctypesallowsinging andmanipulatingc-stylearraysinpython.1)usectypestointerfacewithclibrariesforperformance.2)createc-stylearraysfornumericalcomputations.3)passarraystocfunctions foreffientientoperations.how、how、becuutiousmorymanagemation、performanceo


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

SublimeText3 中国語版
中国語版、とても使いやすい

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

WebStorm Mac版
便利なJavaScript開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

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

ホットトピック









