TransWikia.com

Preencher lista e finalizar laço python

Stack Overflow em Português Asked by oroborus_0 on February 21, 2021

Preciso de ajuda em um problema que me pede para preencher ir adicionando dados a uma lista até que seja declarado ‘fim’.

E=[]
i=0
E.append(input('Nome do elemento?'))
while (i!=fim):
  E.append(input('Nome do elemento?'))
  if i == fim:
    break

Fiz esse código, mas não consigo acionar o break para sair do laço.

2 Answers

No seu exemplo existem alguns erros:

  1. fim não está como string
  2. você está comparando fim com uma variável que contem um número inteiro
  3. while(!=fim) já indica se você digitar 'fim' no input ele vai fazer o break automaticamente sem você precisar fazer um if pra isso. Mas aqui o fim também não é uma string.
E=[]

i = input('Nome do elemento: ')
while (i != 'fim'):
    i = input('Nome do elemento: ')
    E.append(i)

print(E)

Correct answer by lmonferrari on February 21, 2021

Pelo que entendi você quer adicionar nomes dentro de uma lista até decidir parar. Para isso, você pode utilizar o seguinte algoritmo:

cont = 0
elementos = list()
while True:
    cont += 1
    elementos.append(input(f'Nome do {cont}º elemento: '))

    resp = input('Fim [S/N]? ').upper()
    while (len(resp) != 1) or (resp not in 'SN'):
        print('33[31mValor INVÁLIDO! Digite apenas "S" ou "N"!33[m')
        resp = input('Fim [S/N]? ').upper()
    if resp == 'N':
        print(f'33[32mA lista formada foi: {elementos}33[m')
        break

Observe que quando executamos o seguinte algoritmo recebemos a seguinte mensagem: Nome do 1º elemento: . Neste momento devemos digitar o nome e pressionar Enter. Em seguida, recebemos a seguinte mensagem; Fim [S/N]? . Se desejarmos continuar basta digitar S e pressionar enter. Então o algoritmo irá solicitar o próximo nome e, assim por diante.

Agora, se desejarmos encerrar, basta digitar N e pressionar enter. Neste momento o algoritmo exibirá a lista formada por todos os elementos anteriormente digitados e, em seguida, encerrará a sua execução.

Answered by Solkarped on February 21, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP