Megoldás előnézete: a Python numerikus szorzása a*operátor. Amikor értékeket olvas kiinput(), konvertálja őket erreintvagyfloathogy elkerüljük a húrismétlést. Tömbök és mátrixok esetén használja a NumPy függvényeket az elemenkénti és mátrixos szorzáshoz.
Kulcsfogalmak
A Pythonban a szorzás néhány gyakori esetet fed le, amelyeket naponta használsz:
- Számok:
*egész számokat szoroz és lebeg (pl.2 * 3 == 6). - Sorozatok:
*karakterláncokat és listákat ismétel (pl."ha" * 3 == "hahaha"). - Tömbök/mátrixok: NumPy-val, használja
np.multiplymert elem-bölcs ésnp.dotvagy@mátrixszorzáshoz. - Felhasználói bevitel:
input()karakterláncokat ad vissza; szorzás előtt számokká konvertálni.
1. módszer: Szorozza meg a számokat a beépített operátorral
1. lépés:Határozzon meg két számot.
a = 5
b = 32. lépés:Szorozza meg a használatával*.
product = a * b3. lépés:Nyomtassa ki az eredményt egy f karakterlánccal.
print(f"{a} * {b} = {product}") # 5 * 3 = 152. módszer: Szorozza meg helyesen a felhasználói beviteli értékeket
1. lépés:Konvertálja a bemenetet számokká.
price = float(input("Enter price: "))
qty = int(input("Enter quantity: "))2. lépés:Szorozzuk meg a számértékeket.
total = price * qty3. lépés:Nyomtasson ki egy olvasható üzenetet.
print(f"Total cost: ${total}")4. lépés:Alapvető hibakezelés hozzáadása az érvénytelen bevitelhez.
try:
n = int(input("Enter a whole number: "))
print(f"2 * {n} = {2 * n}")
except ValueError:
print("Please enter a valid integer.")Miért számít ez: ha kihagyja a konverziókat,"2" * 3válik"222"(húrismétlés), nem6.
3. módszer: Hozzon létre egy szorzótáblát (időtáblázat)
1. lépés:Olvassa be az alapszámot egész számként.
Bővebben:A „python setup.py egg_info” parancs meghiúsítása az 1-es hibakóddal
base = int(input("Number for the table: "))2. lépés:Hurok az 1-től 12-ig.
for i in range(1, 13):
print(f"{base} x {i} = {base * i}")Ezzel elkerülhető a gyakori hiba, aholnumegy karakterlánc és kimenetek2 x 3 = 222.
4. módszer: Ismételje meg a karakterláncokat és listákat ugyanazzal az operátorral
1. lépés:Ismételje meg a karakterláncot*.
echo = "hi"
print(echo * 3) # hihihi2. lépés:Ismételje meg a listát*.
items = [1, 2]
print(items * 3) # [1, 2, 1, 2, 1, 2]Megjegyzés: a módosítható objektumok listájának ismétlésekor minden ismétlődő hivatkozás ugyanarra a belső objektumra mutat.
5. módszer: Szorozza meg a tömböket és mátrixokat a NumPy segítségével
1. lépés:Telepítse a NumPy-t.
# In a terminal
pip install numpy2. lépés:NumPy importálása.
import numpy as np3. lépés:Végezze el a tömbök elemenkénti szorzását.
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(np.multiply(a, b)) # [ 4 10 18]4. lépés:Mátrixok szorzása (pontszorzat).
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)Az elemenkénti szorzás a megfelelő bejegyzéseket, míg a mátrixszorzás lineáris algebrai szabályokat alkalmaz a sorokra és oszlopokra.
6. módszer: Használat nélkül szaporítson*(tanulási gyakorlat)
1. lépés:Inicializálja az akkumulátort nullára.
def multiply(a, b):
total = 02. lépés:Hurokabs(b)alkalommal.
i = 0
while i < abs(b):
total += a
i += 13. lépés:Javítsa ki a jelet, habnegatív és visszatér.
return total if b >= 0 else -total
print(multiply(6, -3)) # -18Ez a szorzást ismételt összeadásként modellezi, és tükrözi az osztálytermi aritmetikát. Lassabb, mint a használata*és gyakorlásra vagy korlátozott környezetekre kell fenntartani.
Gyakorlati példák
Gyakran előforduló esetek:
- Fizetési végösszegek:
total = unit_price * quantity. - Méretezési értékek:
scaled = value * factor. - Szöveges bannerek:
print("=" * 40). - Adattudomány: elemenkénti tömbműveletek és mátrixtermékek NumPy segítségével.
Gyakori hibák és azok elkerülése
- Elfelejtette átküldeni a bemenetet:
num = int(input(...))vagyfloat(...)kijavítja a karakterlánc-ismétlést, mint"2" * 3 == "222". - Karakterláncok és számok közvetlen összefűzése: használjon f-stringeket (
f"{x}") vagy konvertálni ezzelstr(). - Zavaros elem- és mátrixszorzás: használat
np.multiply(elemszerűen) vsnp.dot/@(mátrix). - Használata
eval()az értékek szorzására: nem biztonságos és szükségtelen; hívása * bvagy használjamath.proditerálható elemekhez. - Ismétlődő kód időtáblázatokhoz: írjon hurkot a nyomtatási utasítások megkettőzése helyett.
A legjobb gyakorlatok és tippek
- Előnyben részesítse az f-sztringeket az olvasható kimenethez, pl.
print(f"{a} * {b} = {a * b}"). - Több számú termék esetén használja
import math; math.prod(iterable)Python 3.8+ verzióban. - Pénzért fontolja meg
decimal.Decimala lebegőpontos kerekítési problémák elkerülése érdekében. - A teljesítményérzékeny numerikus kódban a NumPy-t használja a műveletek vektorizálására Python-hurkok helyett.
- A funkcionális stílus érdekében
from operator import mulhívható megfelelőjét ad*.
Gyors referencia lista
- Számok:
*. - Szám bevitele:
int()/float()szorzás előtt. - Karakterláncok/listák:
*megismétli a tartalmat. - Tömbök:
np.multiplyelemi szempontból,np.dotvagy@mátrixszorzáshoz. - Elkerül
eval()termékekhez. - Használjon hurkokat az időtáblázatokhoz; ne ismételje meg a nyomtatási sorokat.
Mostantól megvannak a gyakorlati minták a számok, sorozatok és tömbök szorzásához Pythonban, valamint a buktatók, amelyeket el kell kerülni a felhasználói bevitel olvasásakor. Tartsa ezt referenciaként, és időt takarít meg a hibakeresés és a formázás során.














