Exercícios Resolvidos de Funções

Ver Teoria

Enunciado

Crie uma função que receba duas palavras e retorne True caso a primeira palavra seja um prefixo da segunda. Exemplo: ’uf’ é prefixo de ’ufabc’. ’ufabc’ não é prefixo de ’uf’.

Passo 1

Fala aí, maninho! A gente precisa saber se uma palavra é prefixo de outra, e pra isso a gente precisa checar se uma palavra é igual ao início de outra. E a gente sabe fazer isso?? Não!

Mentira, a gente sabe sim. Mas é importante tu sacar que pra fazer nossa função, a gente vai precisar de duas informações externas: a palavra e o sufixo. Aí a gente consegue conferir se realmente é sufixo ou não! Então, esses dois dados vão ser nossos parâmetros.

Eu escolhi um nome que eu achei legal, ok? Os nomes das funções são a gente mesmo que escolhe, mas é sempre uma boa ideia escolher nome autoexplicativos. Mas ok, agora a gente precisa fazer a verificação. Vamo lá!

Passo 2

Cara, primeiro, bora pensar um pouco sobre uma palavra ser prefixo de outra. Olha essas duas palavras:

Sacou que uma é igual ao início da outra?

Show! A gente precisa fazer essa verificação, mas pra isso a gente precisa saber o tamanho do prefixo pra pegar fatia da palavra. Vai ficar mais claro na prática, se liga só:

Sacou? A gente pega a fatia do início da palavra, do mesmo tamanho do prefixo, e confere se eles são iguais. Se forem iguais, retornamos True, e False caso contrário. Mas calma… Tá funcionando, mas tem uma certa redundância nesse código!

Se liga que a expressão relacional (com o == ali no if) já retorna pra gente True ou False. A gente tá basicamente dizendo “se for True retorna True, e se for False então retorna False”. Cara, não parece redundante? A gente só precisa retornar o resultado da expressão relacional direto!

Se ligou? O resultado da função vai ser o resultado da expressão que passamos no return, e assim evitamos fazer um if desnecessariamente. Ok, agora só falta a gente testar!

Passo 3

Pra testar, eu vou chamar essa função dentro de um print() do lado de fora da função.

E agora bora executar pra ver. Olhando aqui, nos dois primeiros tem que dar True e False no último. Vamo ver...

E foi exatamente o que a função retornou!

Mas não esquece de apagar os códigos de teste antes de entregar o código, hein!

Valeu, maninhooo! Até a próxima questão!

Resposta