1. Descreva o que faz o código abaixo. Então, crie um prompt para ser usado no ChatGPT para que ele crie o código abaixo para você. Depois disso, insira um erro de sintaxe no código abaixo, e pergunte ao ChatGPT para ajudar a encontrar o erro.
def busca(palavra, letra):
    i = 0
    while i < len(palavra):
        if palavra[i] == letra
            return i
        i += 1
    return -1

Passo 1

O enunciado pede três coisas (vou listar clarinho):
  1. Descrever o que faz o código fornecido.
  2. Criar um prompt (texto) que eu poderia usar no ChatGPT para que ele gere exatamente esse código para mim.
  3. Inserir um erro de sintaxe no código e formular uma pergunta ao ChatGPT pedindo que ele me ajude a encontrar esse erro.
Informações relevantes fornecidas (o código dado):
def busca(palavra, letra):
    i = 0
    while i < len(palavra):
        if palavra[i] == letra
            return i
        i += 1
    return -1
Observações sobre o que eu tenho disponível: o código acima é a base com a qual temos que trabalhar; não devo pedir mais informações. A resolução a seguir vai explicar passo a passo o que o código faz, como escrever o prompt para gerar esse código e como inserir/identificar o erro de sintaxe.

Passo 2

Explicação detalhada, linha a linha, do que o código pretende fazer (sem corrigir ainda):
  • def busca(palavra, letra):
    • Isso define uma função em Python chamada busca que recebe dois parâmetros: palavra e letra. Pense em palavra como uma sequência de caracteres (uma string) e letra como um caractere que queremos procurar nessa string.
  • i = 0
    • Inicializa um contador i com valor 0. Em Python as posições dentro de uma string começam em 0 (índice zero).
  • while i < len(palavra):
    • len(palavra) dá o tamanho da string palavra. O while faz um laço que repete enquanto i for menor que o comprimento da palavra — isto é, percorre todos os índices válidos da string.
  • if palavra[i] == letra
    • Aqui a intenção é comparar o caractere na posição i de palavra com letra. Se forem iguais, devemos retornar i (o índice da primeira ocorrência).
  • return i
    • Esta linha retorna o índice encontrado. Quando uma função dá return, ela sai imediatamente, então ela devolve a primeira ocorrência encontrada.
  • i += 1
    • Incrementa i para passar ao próximo índice.
  • return -1
    • Se o laço terminou sem encontrar a letra, a função devolve -1 para indicar “não encontrado”. Esse é um padrão comum: índice válido é não-negativo; -1 significa falha.
Exemplo concreto para fixar a ideia:
  • Se chamarmos busca("casa", "a") a varredura é: i=0 -> "c"=="a"? não, i=1 -> "a"=="a"? sim -> retorna 1. Então a função devolve 1.
  • Se chamarmos busca("python", "z") nenhum caractere bate, laço termina e devolve -1.
Conceitos básicos usados e explicados (para você poder reproduzir na prova):
  • Função (def nome(param1, param2):) define um bloco reutilizável que pode devolver um valor usando return.
  • Índices de string começam em 0.
  • len(s) retorna o comprimento de uma string s.
  • while condição: repete enquanto a condição é verdadeira; cuidado com laços infinitos — por isso incrementamos i.
  • Igualdade em Python é ==. Erro comum é confundir com = (atribuição).
  • return termina a função e devolve um valor.

Passo 3

Prompt didático e preciso para pedir ao ChatGPT que gere o código correto (use exatamente isto ao pedir):
Escreva uma função em Python chamada busca que recebe dois parâmetros: a string `palavra` e o caractere `letra`. A função deve procurar a primeira ocorrência de `letra` em `palavra` percorrendo a string com um laço `while` (não use .find ou métodos prontos). Se encontrar, deve retornar o índice (um inteiro >= 0) da primeira ocorrência. Se não encontrar, deve retornar `-1`. Inclua uma breve docstring explicando o que a função faz e forneça 2 exemplos de uso (imprimindo os resultados).
Explicação rápida de por que o prompt é assim: ele especifica nome e parâmetros da função, a técnica desejada (usar while), o comportamento de retorno e pede exemplos — isso garante que o ChatGPT gere o código exatamente no formato que queremos.

Passo 4

Agora vou mostrar o código com um erro de sintaxe (inserido propositalmente) e escrever a pergunta que você enviaria ao ChatGPT para que ele encontre o erro. Código com erro:
def busca(palavra, letra):
    i = 0
    while i < len(palavra):
        if palavra[i] == letra
            return i
        i += 1
    return -1
Pergunta que você pode enviar ao ChatGPT (copie exatamente isto):
Aqui está um trecho de código Python que não roda por causa de um erro de sintaxe. Por favor, encontre o erro de sintaxe, explique por que o Python reclama (mensagem típica) e mostre a correção exata do código. Código:

def busca(palavra, letra):
    i = 0
    while i < len(palavra):
        if palavra[i] == letra
            return i
        i += 1
    return -1

Passo 5

Como identificar o erro de sintaxe (passo a passo prático que você faria na prova ou ao rodar o código):
  1. Salve o código num arquivo, por exemplo teste.py, e rode python teste.py.
    • O interpretador Python vai interromper a execução e mostrar um SyntaxError apontando uma linha e um token problemático.
    • Mensagem típica: SyntaxError: invalid syntax e uma seta (^) apontando perto do final da linha onde o erro ocorreu.
  2. Quando o Python destaca a linha if palavra[i] == letra sem dois-pontos no final, você deve lembrar da sintaxe do if: sempre é if condição: com : no final. A ausência do : causa SyntaxError.
  3. Corrija adicionando o : ao final da linha do if:
def busca(palavra, letra):
    i = 0
    while i < len(palavra):
        if palavra[i] == letra:
            return i
        i += 1
    return -1
  1. Teste com exemplos:
  • print(busca("casa", "a")) deve mostrar 1.
  • print(busca("python", "z")) deve mostrar -1.
Dicas extras que te ajudam a achar erros rapidamente:
  • Observe sempre se estruturas de controle (if, for, while, def, class) terminam com :.
  • Cuidado com indentação em Python (misturar tabs e espaços pode causar erro diferente).
  • Use um editor que mostra erros de sintaxe ou um linter (pylint, flake8) para destacar problemas antes de rodar.
  • Se o interpretador aponta para uma linha, o erro pode às vezes estar na linha anterior (por exemplo, parênteses não fechados). Leia algumas linhas acima e abaixo.

Passo 6

Recapitulando e te animando rapidinho: o código faz uma busca linear pelo primeiro caractere igual a letra numa string palavra e retorna o índice ou -1. O erro de sintaxe é a falta dos dois-pontos (:) após o if. Dá pra consertar rapidinho e testar com exemplos. Você tá indo bem — esse tipo de erro é super comum e fácil de achar com o hábito de rodar o código e ler a mensagem do interpretador.

Resposta

Descrição breve: A função busca(palavra, letra) percorre palavra com um laço while e retorna o índice da primeira ocorrência de letra ou -1 se não encontrar.
Prompt para o ChatGPT (use este texto exato):
Escreva uma função em Python chamada busca que recebe dois parâmetros: a string `palavra` e o caractere `letra`. A função deve procurar a primeira ocorrência de `letra` em `palavra` percorrendo a string com um laço `while` (não use .find ou métodos prontos). Se encontrar, deve retornar o índice (um inteiro >= 0) da primeira ocorrência. Se não encontrar, deve retornar `-1`. Inclua uma breve docstring explicando o que a função faz e forneça 2 exemplos de uso (imprimindo os resultados).
Código com erro de sintaxe e pedido ao ChatGPT para encontrar o erro (copie e envie ao ChatGPT):
def busca(palavra, letra):
    i = 0
    while i < len(palavra):
        if palavra[i] == letra
            return i
        i += 1
    return -1
Pergunta a enviar: “Aqui está um trecho de código Python que não roda por causa de um erro de sintaxe. Por favor, encontre o erro de sintaxe, explique por que o Python reclama (mensagem típica) e mostre a correção exata do código.”

Exercícios relacionados