Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonの除算演算子?


一般に、式のデータ型は引数の型によって異なります。このルールはほとんどの演算子に適用されます。2つの整数を追加する場合のように、結果は整数になります。ただし、除算の場合、2つの異なる期待があるため、これはうまくいきません。除算によって正確な浮動小数点数が生成されることを期待する場合もあれば、切り捨てられた整数の結果が必要な場合もあります。

一般に、除算(/)のPython定義は、引数のみに依存していました。たとえば、Python 2.7では、両方の引数が整数であるため、20/7の除算は2でした。ただし、引数が浮動小数点数であったため、20。/7は出力として2.857142857142857を生成します。

上記の「/」の定義は、作成者が予期していなかったデータ型が使用されているアプリケーションで問題を引き起こすことがよくありました。

摂氏から華氏への変換の簡単なプログラムを考えてみましょう。入力に応じて2つの異なる結果が生成されます。 1人のユーザーが整数引数(18)と別の浮動小数点引数(18.0)を指定した場合、すべての入力の数値が同じであっても、答えはまったく異なります。

#Conversion of celcius to Fahrendheit in python 2.6
>>> print 18*9/5 + 32
64
>>> print 18.0*9/5 + 32
64.4
>>> 18 == 18.0
True

上から、18.0を通過すると正しい出力が得られ、18を通過すると誤った出力が得られることがわかります。この動作は、Python 2.xでは、すべての引数が整数の場合、「/」演算子がフロア除算として機能するためです。ただし、引数の1つがfloat値の場合、「/」演算子はfloat値を返します。

明示的な変換関数(float(x)など)は、これを防ぐのに役立ちます。ただし、Pythonは単純でまばらな言語であり、予期しないデータ型のまれなケースをカバーするために変換が密集することはありません。 Python 2.2バージョンから、期待されることを明確にするために新しい除算演算子が追加されました。通常の/演算子は、将来、浮動小数点の結果を返します。特別な除算演算子//は、切り捨てられた結果を返します。

>>> # Python 2.7 program to demonstrate the use of "//" for both integers and floating point number
>>> print 9//2
4
>>> print -9//2
-5
>>> print 9.0//2
4.0
>>> print -9.0//2
-5.0

Python3.xでの除算演算

Python 3.xでは、上記の欠陥が削除され、「/」演算子は整数引数と浮動小数点引数の両方に対して浮動小数点除算を実行します。

>>> #Conversion of celcius to Fahrendheit in python 3.x
>>> #Passing 18 (integer)
>>> print (18*9/5 + 32)
64.4
>>> #Passing 18.0(float)
>>> print(18.0*9/5 + 32)
64.4

また、+ veまたは–ve引数を渡しても違いはありません。

>>> print(9/2)
4.5
>>> print(-9/2)
-4.5
>>> print(9.0/2)
4.5
>>> print(-9.0/2)
-4.5
>
  1. Pythonのタプル除算

    Pythonでタプル除算を実行する必要がある場合は、「zip」メソッドとジェネレータ式を使用できます。 zipメソッドは反復可能オブジェクトを取得し、それらをタプルに集約して、結果として返します。 ジェネレーターは、イテレーターを作成する簡単な方法です。 __iter __()および__next __()メソッドを使用してクラスを自動的に実装し、内部状態を追跡し、返される可能性のある値が存在しない場合はStopIteration例外を発生させます。 以下は同じのデモンストレーションです- 例 my_tuple_1 = ( 7, 8, 3, 4, 3, 2) my_tuple_2 = (9

  2. Pythonでパターンを印刷する方法は?

    Pythonのパターンは、ネストされたforループを使用して印刷できます。外側のループは行数を反復処理するために使用され、内側のループは列数を処理するために使用されます。印刷ステートメントは、要件に応じてさまざまなパターンを形成するように変更されます。 パターンには、星型、数字型、アルファベット型があります。パターンは、さまざまな形、三角形、ピラミッドなどにすることができます。 例 これらのパターンはすべて、これらの異なるパターンを形成する変更されたprintステートメントを含むforループを使用して印刷できます。 これらのパターンの印刷の基本的な考え方は同じですが、わずかな違いが