Trabalhas para uma agência governamental que intercetou uma série de sinais de comunicação encriptados de um grupo de assaltantes de bancos. Os sinais contêm uma longa sequência de algarismos. A tua equipa precisa de usar várias técnicas de processamento digital de sinal para analisar os sinais e identificar padrões que possam indicar o planeamento de um assalto.
A tua tarefa é procurar padrões na longa sequência de algarismos do sinal encriptado.
A técnica que vais usar aqui chama-se maior produto de uma série.
Vamos definir primeiro alguns termos.
Vamos ver um exemplo, com o parâmetro de entrada "63915".
3, há três séries possíveis:
"639""391""915""639" é 162 (6 × 3 × 9 = 162)"391" é 27 (3 × 9 × 1 = 27)"915" é 45 (9 × 1 × 5 = 45)"63915" é o da série "639".
Por isso, a resposta é 162.Por vezes, é necessário lançar uma exceção. Quando o fazes, deves incluir sempre uma mensagem de erro significativa para indicar qual é a origem do erro. Isto torna o teu código mais legível e ajuda imenso na depuração. Nas situações em que sabes que a origem do erro será de um determinado tipo, podes optar por lançar um dos tipos de erro incorporados, mas deves continuar a incluir uma mensagem significativa.
Este exercício em particular exige que uses a instrução raise para "lançar" um ValueError quando a tua função largest_product() recebe um valor de entrada inválido. Os testes só passam se fizeres raise da exception e incluíres uma mensagem com ela. Podes reutilizar à vontade o teu código do exercício series!
Para lançar um ValueError com uma mensagem, escreve a mensagem como argumento do tipo exception:
# 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")
Inscreve-te no Exercism para aprenderes e dominares Python com 17 conceitos146 exercícios, e mentoria humana real, tudo grátis.