数値と算術演算

数値はほぼすべてのプログラムに登場します。ショッピングカートの合計、ゲームのスコア更新、何かが起きた回数のカウント。Pythonは紙の計算のような算術演算子を提供し、さらに最初から知る価値のあるものがいくつかあります。
演算子
数学の4つの演算子(+、-、*、/)は期待通りに機能します。Pythonは3つ追加し、常に使用するものを追加します。整数除算、剰余、累乗です。
price = 12.99
quantity = 3
print(price * quantity) # 38.97
print(price + 2) # 14.99
print(price - 1.00) # 11.99| 演算子 | 名前 | 例 | 結果 |
|---|---|---|---|
+ | 加算 | 5 + 3 | 8 |
- | 減算 | 5 - 3 | 2 |
* | 乗算 | 5 * 3 | 15 |
/ | 除算 | 5 / 3 | 1.6666... |
// | 整数除算 | 5 // 3 | 1 |
% | 剰余 | 5 % 3 | 2 |
** | 累乗 | 5 ** 3 | 125 |
+、-、*、/は紙の計算のように動作します。3つの追加は早期から学ぶ価値があります。//は整数に除算し、%は剰余を返し、**は累乗します。%の方が期待以上に使うことになります。 除算:/ vs //
/は答えが整数でも常に正確な小数を返します。//は小数部を切り落とし、負の無限大に向かって床。正の数の場合は小数を切ることを意味しますが、負の数の場合はゼロからさらに1ステップ進みます。
10 / 2 # 5.0 (常にfloat、均等に割れても)
10 / 3 # 3.3333333333333335
10 // 3 # 3
7 // 2 # 3
-7 // 2 # -4 (ゼロに向かってではなく、負の無限大に向かって床)ほとんどの場合、正の数で//を使用します。負の動作が現れたときに念頭に置いてください。
/は常に小数を返します。均等に割れても4 / 2は2.0です。//は小数部を切り落としますが、負に注意してください。-7 // 2は-3ではなく-4です。これは切り詰めではなく床だからです。最初にやったときに私を引っかかりました。 剰余演算子%
%は整数除算後に残っているものを提供します。10 // 3が3の場合(3は10に3回入る)、10 % 3は1です(3×3=9、10-9=1)。最も一般的な使用は数が偶数か奇数かを確認することです。
10 % 3 # 1
10 % 2 # 0 (均等に割る)
10 % 7 # 3
6 % 2 # 0 (偶数)
7 % 2 # 1 (奇数)%は整数除算後の余りです。10 % 3は1です。3が10に3回入り、1が余るからです。ほとんどの場合、偶数/奇数チェックで出会います。n % 2は偶数は0、奇数は1です。 累乗**
**は数を累乗します。2つのアスタリスクを使用し、Pythonで別の意味を持つ^シンボルではありません。
2 ** 10 # 1024
3 ** 3 # 27
9 ** 0.5 # 3.0 (平方根:0.5の累乗に引き上げる)**は数を累乗に引き上げるため、2 ** 10は1024です。分数の累乗はルートを与えます。9 ** 0.5は3.0です。1つの罠はシンボルです。**を使用し、^ではなく、Pythonで関連のないことをします。 演算子の優先順位
Pythonは標準的な数学の順序に従います。累乗最初、乗算と除算、加算と減算。確実でない場合は括弧を使用してください。意図を明確にし、何も費用がかかりません。
2 + 3 * 4 # 14、20ではない
2 ** 3 + 1 # 9、512ではない
10 - 4 / 2 # 8.0、3.0ではない
(2 + 3) * 4 # 20
10 / (2 + 3) # 2.0intとfloatがどのように相互作用するか
Pythonは一貫したルールを持っています。/は常に小数を返し、4 / 2でも2.0を与えます。整数と小数を混ぜる任意の操作もfloatを与えます。整数が必要な場合は、//を使用するか、int()で変換してください。
4 / 2 # 2.0 (常にfloat)
4 // 2 # 2 (int)
4 + 2 # 6 (int)
4 + 2.0 # 6.0 (float)
4 * 0.5 # 2.0 (float)/は常に小数を与えるため、4 / 2は2ではなく2.0です。整数を小数で任意の場所で混ぜると、小数が出てきます。整数が必要な場合は、//に到達するか、int()でラップしてください。 Float精度
ある時点で、ほぼすべての人を驚かせる落とし穴があります。
0.1 + 0.2 # 0.30000000000000004その小さなエラーはPythonのバグではありません。コンピューターはバイナリで小数を格納し、0.1などのいくつかの値を正確に表現することはできません。10進数で1/3を正確に書くことができない方法に似ています。ほとんどの日常的な計算ではそれは重要ではありません。金銭を表示するために、round()または:.2f形式指定子は出力をきれいに保ちます。
round()または:.2fがそれをきれいに保ちます。 読みやすい数値リテラル
Pythonは大きな数をより読みやすくするために、数値リテラルにアンダースコアを入れることを許可します。Pythonはそれらを完全に無視します。これはあなたのためです。
population = 8_100_000_000
distance_km = 384_400
pi_approx = 3.141_592_653便利な組み込み関数
abs()
abs()は絶対値を返します。常に正で、入力の符号に関わらず。数字がゼロからどのくらい離れているかを気にするときに使用し、どちらの方向ではなく。
abs(-5) # 5
abs(3.7) # 3.7
abs(-0.5) # 0.5abs()は符号を取り除き、肯定的なサイズを返します。abs(-5)は5で、abs(3.7)は3.7です。数がゼロからどのくらい離れているかを気にするときに到達してください。どちらの方向ではなく。 round()
round()はデフォルトで最も近い整数に丸めます。2番目の引数を渡して、特定の小数位数を保つ。
round(3.7) # 4
round(3.2) # 3
round(3.14159, 2) # 3.14知る価値がある1つのこと。round(2.5)は2を与え、3ではありません。値が2つのオプション間の正確に途中の場合、Pythonは最も近い偶数に丸めます。
round(x)は最も近い整数に移動し、round(x, n)は`n`小数位を保ちます。驚き。正確に途中に座っている値は最も近い偶数に丸めるため、round(2.5)は2で、3ではありません。 divmod()
divmod()は商と剰余を単一の呼び出しで与えます。タプル(タプルとセットの章で説明)である値のペアを返し、2つの名前に一度に割り当てることができます。
divmod(10, 3) # (3, 1): 商3、剰余1
divmod(7, 2) # (3, 1)
divmod(9, 3) # (3, 0)
quotient, remainder = divmod(10, 3)
print(quotient) # 3
print(remainder) # 1divmod(a, b)は商と剰余を一緒に返します。divmod(10, 3)は(3, 1)です。quotient, remainder = divmod(10, 3)で両方を一度にアンパックできます。 実際に
チップ計算機。
bill = 45.50
tip_rate = 0.18
tip = round(bill * tip_rate, 2)
total = round(bill + tip, 2)
print(f"Bill: ${bill}")
print(f"Tip: ${tip}")
print(f"Total: ${total}")round()は出力を金銭のように見せ、小数点のあるのではなく。

