Fazer um programa para receber um nome e uma letra. A seguir envie estes dados
para uma função que deverá determinar a posição da última ocorrência da letra e a
quantidade de vezes que aparece ( -1 caso o nome não possua a letra).
Escreva no programa principal, o nome, a letra e a posição da última ocorrência (ou -1) e o
número de vezes que a letra aparece no nome.
Soluções para a tarefa
def main(name:str, letter:str):
""" Recebe um nome e uma letra, retorna a quantidade de vezes
que a letra aparece na string e sua última posição; retorna -1
caso a letra não apareça na string. """
if letter not in name:
return -1;
else:
count = 0; # Contador de aparições
x = -1; # Contador de posições
for elem in name:
x += 1;
if elem == letter:
count += 1;
last_pos = x;
return count, last_pos;
print(main('Nicodisidh', 'i'));
Algo nessa lógica deve funcionar. Talvez não seja o mais rápido / eficiente / bonito, mas foi no que eu pensei nos 5 minutos raciocinando; testei com umas palavras e ta funcionando, espero que ajude. Lembrando que o python interpreta as strings como listas também, e se quiser algo mais restrito teria que fazer algo pra verificar se na entrada da letra seja só uma letra mesmo, ou na entrada do nome não tenha números ou outros símbolos fora do alfabeto, etc. Abraço