(1 ponto) Faça um programa que receba entradas numéricas do usuário enquanto ele não digitar
, sem aspas, e as adicione em uma lista. Ao final, imprima a lista.
EXEMPLO
Entrada
Saída
5
1
8
s
EXEMPLO
| Entrada | Saída |
| 5 |
|
| 1 | |
| 8 | |
| s |
Passo 1
O enunciado pede um programa que:
- receba entradas do usuário repetidamente;
- pare de receber quando o usuário digitar exatamente
(sem aspas); - adicione cada entrada numérica recebida a uma lista;
- ao final (quando o usuário digitou
), imprima a lista com todas as entradas coletadas.
Informações relevantes dadas:
- O terminador é a string
. - As entradas antes de
são numéricas (o enunciado supõe esse comportamento do usuário). - A saída deve ser a lista contendo as entradas coletadas, no mesmo ordem em que foram digitadas.
Passo 2
Ideia geral (em linguagem simples):
- Repetir: perguntar ao usuário por uma entrada.
- Se a entrada for
, sair do loop. - Caso contrário, guardar a entrada em uma lista e continuar pedindo outra entrada.
- Quando o loop terminar, imprimir a lista.
Isso corresponde a um loop de repetição com checagem no começo ou no fim; o jeito mais direto em Python é usar um loop infinito controlado por .
break quando a entrada for
Passo 3
Noções úteis (explicadas passo a passo):
- Em Python, a função
input()lê uma linha do usuário e retorna uma string. Ex.: se o usuário digitar5e apertar Enter,input()retorna a string"5". - Para comparar com
de forma robusta (evitando espaços extras), é comum usar entrada = input().strip(). O métodostrip()remove espaços em branco no início e no fim da string. Assim, se o usuário digitarscom espaços,strip()transforma isso ems. - Para guardar valores em ordem, usa-se uma lista: crie
lista = []e, a cada entrada válida, façalista.append(entrada). - Se quiser tratar as entradas como números (por exemplo inteiros) em vez de strings, é preciso converter:
valor = int(entrada)ouvalor = float(entrada). Essa conversão pode falhar se a entrada não for um número — então usa-setry/exceptpara capturar erros. No enunciado não há necessidade explícita de validar entradas inválidas, pois diz que receberá entradas numéricas atés; ainda assim, é bom saber dessa opção.
Passo 4
Algoritmo detalhado que dá para seguir na prova (passo a passo, sem programar ainda):
- Criar uma lista vazia chamada, por exemplo,
lista. - Começar um loop infinito:
while True:. - Ler a entrada do usuário e aplicar
strip():entrada = input().strip(). - Verificar se
entrada == 's'.- Se for, usar
breakpara sair do loop. - Se não for, acrescentar
entradaà lista comlista.append(entrada).
- Se for, usar
- Repetir o loop até o usuário digitar
s. - Após o loop, imprimir a lista com
print(lista).
Observações práticas:
- Usar
strip()evita que espaços adicionais estraguem a comparação coms. - Guardar as entradas como strings reproduz fielmente o que o usuário digitou (útil quando se quer manter formatação).
- Se a prova pedir explicitamente para armazenar números (por exemplo, para fazer cálculos depois), converta para
intoufloatdentro do passo em que se fazappend, usandotry/exceptpara segurança.
Passo 5
Exemplo manual de execução seguindo o algoritmo (para ficar visual na hora da prova):
- Estado inicial:
lista = []. - Usuário digita
5→entrada = '5'→ não é's'→lista.append('5')→ agoralista = ['5']. - Usuário digita
1→entrada = '1'→lista = ['5', '1']. - Usuário digita
8→entrada = '8'→lista = ['5', '1', '8']. - Usuário digita
s→ condiçãoentrada == 's'é verdadeira → sai do loop. - Imprime-se
['5', '1', '8'], que corresponde ao exemplo do enunciado (ordem preservada).
Passo 6
Dicas rápidas para a prova (anotações de bolso):
- Lembre-se de usar
strip()ao ler entrada quando comparar com caracteres fixos comos. - Se a prova exige exatamente o formato de saída com aspas (strings), imprimir a lista de strings com
print(lista)já dá esse formato. - Se quiser números (sem aspas) converta com
int()e depois imprima:print(lista)mostrará[5, 1, 8]. - Se tiver que lidar com entradas inválidas, envolva a conversão em:
try: num = int(entrada) except ValueError: # tratar entrada inválida
Resposta
lista = []
while True:
entrada = input().strip()
if entrada == ‘s’:
break
lista.append(entrada)
print(lista)
while True:
entrada = input().strip()
if entrada == ‘s’:
break
lista.append(entrada)
print(lista)