Pythonで乗算する方法

ソリューションプレビュー:Pythonの数値乗算で使用します*オペレーター。から値を読むときinput()、それらをに変換しますintまたはfloat文字列の繰り返しを避けるため。配列とマトリックスの場合、要素単位とマトリックスの乗算にnumpy関数を使用します。

重要な概念

Pythonの乗算では、毎日使用するいくつかの一般的なケースをカバーします。

  • 数字:*整数とフロートを掛けます(例:2 * 3 == 6)。
  • シーケンス:*文字列とリストを繰り返します(例:"ha" * 3 == "hahaha")。
  • 配列/マトリックス:numpyを使用して使用しますnp.multiply要素単位の場合np.dotまたは@マトリックス乗算用。
  • ユーザー入力:input()文字列を返します。乗算する前に数字に変換します。

方法1:数値を組み込みの演算子に乗算します

ステップ1:2つの番号を定義します。

a = 5
b = 3

ステップ2:使用して乗算します*

product = a * b

ステップ3:結果をFストリングで印刷します。

print(f"{a} * {b} = {product}")  # 5 * 3 = 15

方法2:ユーザー入力値を正しく掛けます

ステップ1:入力を数値に変換します。

price = float(input("Enter price: "))
qty = int(input("Enter quantity: "))

ステップ2:数値を掛けます。

total = price * qty

ステップ3:読みやすいメッセージを印刷します。

print(f"Total cost: ${total}")

ステップ4:無効な入力のために基本的なエラー処理を追加します。

try:
    n = int(input("Enter a whole number: "))
    print(f"2 * {n} = {2 * n}")
except ValueError:
    print("Please enter a valid integer.")

なぜこれが重要なのか:変換をスキップすると、"2" * 3なります"222"(文字列の繰り返し)、そうではありません6

方法3:乗算テーブルを構築する(タイムテーブル)

ステップ1:整数として基本番号を読みます。

base = int(input("Number for the table: "))

ステップ2:1〜12をループします。

for i in range(1, 13):
    print(f"{base} x {i} = {base * i}")

これにより、一般的なバグが回避されますnum文字列と出力です2 x 3 = 222

方法4:同じ演算子を使用して文字列とリストを繰り返す

ステップ1:文字列を繰り返します*

echo = "hi"
print(echo * 3)  # hihihi

ステップ2:でリストを繰り返します*

items = [1, 2]
print(items * 3)  # [1, 2, 1, 2, 1, 2]

注:可変オブジェクトのリストを繰り返すと、すべての繰り返し参照が同じ内部オブジェクトを指します。

方法5:アレイとマトリックスをnumpyに掛けます

ステップ1:numpyをインストールします。

# In a terminal
pip install numpy

ステップ2:numpyをインポートします。

import numpy as np

ステップ3:配列の要素単位の乗算を行います。

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(np.multiply(a, b))  # [ 4 10 18]

ステップ4:マトリックス(DOT製品)を掛けます。

A = np.array([[1, 2],
              [3, 4]])
B = np.array([[5, 6],
              [7, 8]])
print(np.dot(A, B))
# [[19 22]
#  [43 50]]
# Equivalent: print(A @ B)

要素は、対応するエントリを乗算しますが、マトリックスの乗算は線形代数ルールを行と列に適用します。

また読む:

方法6:使用せずに乗算します*(学習演習)

ステップ1:アキュムレータをゼロに初期化します。

def multiply(a, b):
    total = 0

ステップ2:ループabs(b)時代。

    i = 0
    while i < abs(b):
        total += a
        i += 1

ステップ3:サインを修正する場合bネガティブで戻ります。

    return total if b >= 0 else -total

print(multiply(6, -3))  # -18

このモデルは、繰り返し追加され、教室の算術をミラーリングします。使用するよりも遅いです*練習または制約された環境のために予約する必要があります。

実用的な例

頻繁にヒットするユースケース:

  • チェックアウトの合計:total = unit_price * quantity
  • スケーリング値:scaled = value * factor
  • テキストバナー:print("=" * 40)
  • データサイエンス:numpyを使用した要素ごとの配列操作とマトリックス製品。

よくある間違いとそれらを避ける方法

  • 入力をキャストするのを忘れる:num = int(input(...))またはfloat(...)文字列の繰り返しを修正します"2" * 3 == "222"
  • 文字列と数字を直接連結します:fストリングを使用します(f"{x}")またはで変換しますstr()
  • 紛らわしい元素とマトリックスの乗算:使用np.multiply(要素単位)vsnp.dot/@(マトリックス)。
  • 使用eval()値を掛けるには:安全ではなく不必要な。電話a * bまたは使用しますmath.prod繰り返しの場合。
  • Times Tablesのコードを繰り返す:印刷ステートメントを複製する代わりに、ループを作成します。

ベストプラクティスとヒント

  • 読みやすい出力にはfストリングを好む、例えばprint(f"{a} * {b} = {a * b}")
  • 多くの製品の場合、使用してくださいimport math; math.prod(iterable)Python 3.8+で。
  • お金のために、考慮してくださいdecimal.Decimal浮動小数点の丸めの問題を避けるため。
  • パフォーマンスに敏感な数値コードでは、pythonループの代わりに操作を自動化するためにnumpyを使用します。
  • 機能的なスタイルのために、from operator import mulと同等の呼び出し可能なものを提供します*

クイックリファレンスチェックリスト

  • 数字:*
  • 番号への入力:int()/float()乗算する前に。
  • 文字列/リスト:*コンテンツを繰り返します。
  • 配列:np.multiply要素単位の場合、np.dotまたは@マトリックス乗算用。
  • 避けるeval()製品用。
  • 時間テーブルにループを使用します。プリントラインを複製しないでください。

これで、Pythonの数値、シーケンス、および配列を掛けるための実用的なパターンに加えて、ユーザー入力を読むときに避けるべき落とし穴があります。これを参照として保持すると、結果のデバッグとフォーマットの結果を節約できます。

Related Posts