Pensei num possível problema em que o valor da variável moeda origem e moeda destino pudessem variar bastante em tamanho como brazillian_real e dollar. Nesse caso, a abordagem do problema teria que ser outra, certo? Pois o valor do índice 15 poderia cair antes da moeda origem. Pensei em aplicar métodos e Duck Typing, estou aprendendo isso no momento.
O professor também simplificou o problema e retirou o valor da moeda, ótimo. Mas se quiséssemos resolver o empecilho de maneira completa, o slicing de cada argumento teria que ser igual ao primeiro, com índice inicial e final, exceto o último [:] . Isso só foi um comentário.
Agora, o código só funciona com URLs com querys. Toda query tem o caractere '?' . Se sim, poderíamos por um outro validador na classe procurando o caractere '?'