Dicas para alguns exercícios: você pode converter uma string em um inteiro e vice-versa (int(), e str()).
  1. Implemente uma função que retorne uma string de números pares no intervalo de 0 a n , separados por um ponto ‘.’. Por exemplo, str_numeros(10) retorna ‘0.2.4.6.8.10’. A definição de sua função deve ser:
    def str_numeros(n):

Passo 1

O enunciado pede: implementar uma função que retorne uma string contendo os números pares no intervalo de 0 até n (inclusive), separados por um ponto '.'. A assinatura exigida é:
def str_numeros(n):
Exemplo dado: str_numeros( 10) deve retornar '0.2.4.6.8.10'.
Informações relevantes fornecidas:
  • Queremos todos os números pares de 0 a n (incluindo n se ele for par).
  • O separador entre os números deve ser o caractere '.'.
  • Dica: podemos converter entre strings e inteiros usando str() e int().

Passo 2

Entendendo o que são números pares (a pequena teoria necessária, mastigada):
Um número inteiro x é par se existe um inteiro k tal que x = 2k. Ou seja, os pares começam em 0 e seguem 0, 2, 4, 6, \dots. Na prática, para listar pares de 0 até n, a ideia é gerar a sequência 0, 2, 4, \dots até um valor que não ultrapasse n.

Passo 3

Como gerar essa sequência em Python (conceito prático):
Em Python usamos a função range(start, stop, step) para gerar uma sequência aritmética. Ela produz valores começando em start, somando step repetidamente, até atingir um valor >= stop (ou seja, stop é exclusivo).
Para incluir n (caso n seja par) devemos usar stop = n + 1, pois range não inclui o limite superior. Então, para pares do 0 ao n devemos usar range(0, n+1, 2).

Passo 4

Converter números para texto: por que precisamos disso?
A saída final tem de ser uma única string com pontos separando os números. Para juntar números com '.' precisamos transformar cada número em sua representação textual usando str(). Exemplo: str(10) produz a string '10'.

Passo 5

Juntar as strings com um separador: o método join
Em Python, '.'.join(lista_de_strings) pega cada elemento de lista_de_strings (que devem ser strings) e concatena tudo usando '.' como separador. Por isso montamos primeiro uma sequência de strings como ['0', '2', '4', ...] e depois fazemos '.'.join(...) para obter '0.2.4...'.

Passo 6

Montando tudo junto com compreensão de lista ou gerador (passo a passo):
  • Geramos os números pares com range(0, n+1, 2).
  • Para cada i dessa sequência convertimos para string com str(i).
  • Usamos '.'.join(...) para juntar.
    Em código isso fica natural e compacto: '.'.join(str(i) for i in range(0, n+1, 2)). Aqui eu usei uma expressão geradora dentro de join — funciona como lista, mas evita criar uma lista temporária completa (mais eficiente para muitos números).

Passo 7

Tratar casos de borda (coisa importante na prova):
  • Se n for 0, o resultado deve ser '0'. A expressão acima já produz isso.
  • Se n for ímpar (por exemplo n=9), a sequência vai até o maior par menor que n, ou seja 8 — também correto.
  • Se, por segurança, n for negativo (não pedido explicitamente), faz sentido retornar uma string vazia '' porque não há pares no intervalo 0 a n. Podemos adicionar um pequeno teste if n < 0: return '' para cuidar deste caso sem complicar.

Passo 8

Exemplos rápidos para conferir mentalmente:
  • str_numeros( 10) → '0.2.4.6.8.10'
  • str_numeros( 9) → '0.2.4.6.8'
  • str_numeros( 0) → '0'
  • str_numeros( 1) → '0'

Passo 9

Implementação final bem direta e adequada para a prova (fácil de lembrar e digitar):

Resposta

def str_numeros(n):
if n < 0:
return ‘’
return ‘.’.join(str(i) for i in range(0, n+1, 2))

Exercícios relacionados