Egy kormányhivatalnál dolgozol, amely elfogta egy bankrablóbanda titkosított kommunikációs jeleinek egy sorozatát. A jelek egy hosszú számjegysorozatot tartalmaznak. A csapatodnak különféle digitális jelfeldolgozási technikákkal kell elemeznie a jeleket, és fel kell ismernie azokat a mintázatokat, amelyek egy rablás megtervezésére utalhatnak.
A feladatod, hogy mintákat keress a titkosított jel hosszú számjegysorozatában.
A technika, amit itt használni fogsz, a legnagyobb sorozatszorzat.
Először is tisztázzunk néhány fogalmat.
Nézzünk meg egy példát a "63915" bemenettel.
3, akkor három lehetséges sorozat lesz:
"639""391""915""639" sorozat szorzata 162 (6 × 3 × 9 = 162)"391" sorozat szorzata 27 (3 × 9 × 1 = 27)"915" sorozat szorzata 45 (9 × 1 × 5 = 45)"63915" legnagyobb sorozatszorzata a "639" sorozatból származik.
Tehát a válasz 162.Néha szükség van arra, hogy kivételt dobj. Amikor ezt teszed, mindig adj meg egy beszédes hibaüzenetet, amely megmutatja, mi a hiba forrása. Ez olvashatóbbá teszi a kódodat, és jelentősen megkönnyíti a hibakeresést. Ha tudod, hogy a hiba forrása egy adott típus lesz, dönthetsz úgy, hogy a beépített hibatípusok egyikét dobod, de ilyenkor is adj meg beszédes üzenetet.
Ennél a feladatnál a raise utasítást kell használnod ahhoz, hogy „dobj” egy ValueError-t, amikor a largest_product() függvényed érvénytelen bemenetet kap. A tesztek csak akkor lesznek sikeresek, ha raise-eled az exception-t, és üzenetet is fűzöl hozzá. Nyugodtan használd újra a series feladatban írt kódodat!
Ha üzenettel szeretnél ValueError-t dobni, írd az üzenetet az exception típus argumentumaként:
# span of numbers is longer than number series
raise ValueError("span must not exceed string length")
# span of number is negative
raise ValueError("span must not be negative")
# series includes non-number input
raise ValueError("digits input must only contain digits")
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Python nyelvet 17 fogalom146 feladat segítségével, valódi emberi mentorálással, mindez ingyen.