Como você sabe, a função range() retorna um intervalo de números, mas não funciona com alfabetos. Neste desafio, tentamos preencher essa lacuna.
Escreva uma função alpha_range() que receba três argumentos: start, stop e step (cujo valor padrão é um). A função deve retornar uma lista de caracteres alfabéticos, do caractere inicial ao caractere final com base no valor de step.
A função deve seguir estas condições:
Se step for zero, maior ou igual a 26, ou menor ou igual a -26, retorne "step must be a non-zero value between -26 and 26, exclusive".
Tanto start quanto stop devem ter a mesma capitalização; caso contrário, retorne "both start and stop must share the same case".
Assim como a função range():
step não deve ser zero.Ao contrário da função range():
alpha_range("a", "f") é a mesma de alpha_range("f", "a"); veja os exemplos).alpha_range("a", "f") ➞ ["a", "b", "c", "d", "e", "f"]
alpha_range("f", "a") ➞ ["a", "b", "c", "d", "e", "f"]
alpha_range("a", "f", -1) ➞ ["f", "e", "d", "c", "b", "a"]
alpha_range("f", "a", -1) ➞ ["f", "e", "d", "c", "b", "a"]
alpha_range("A", "F", -1) ➞ ["F", "E", "D", "C", "B", "A"]
alpha_range("A", "F", 0) ➞ "step must be a non-zero value between -26 and 26, exclusive"
alpha_range("A", "F", -26) ➞ "step must be a non-zero value between -26 and 26, exclusive"
alpha_range("a", "F", -1) ➞ "both start and stop must share the same case"Todos os valores de start e stop nos testes são caracteres alfabéticos válidos.