Stack Overflow em Português Asked by user197613 on September 27, 2021
Meu código precisa ler vários números e colocá-los em uma lista, depois, criar duas listas extras contendo apenas os valores pares e ímpares, respectivamente, da lista anterior.
Exemplo:
Entrada = [3, 7, 8, 11, 16, 20]
Saída = Lista completa: [3, 7, 8, 11, 16, 20]
Lista de pares: [8, 16, 20]
Lista de ímpares: [3, 7, 11]
Porém os valores não estão sendo adicionados nas listas de números pares e ímpares, qual é o problema do meu código?
valores = pares = impares = list()
while True:
valores.append(int(input('Digite um valor: ')))
continuar = ' '
while continuar not in 'SN':
continuar = str(input('Continuar? [S / N] ')).upper()[0]
if continuar in 'N':
break
print(f'Lista completa: {valores}')
for num in valores:
if num % 2 == 0:
pares.append(num)
else:
impares.append(num)
print(f'Lista de pares: {pares}')
print(f'Lista de ímpares: {impares}')
O problema do seu código está em
valores = pares = impares = list()
Isso gera apenas uma lista mas com três variáveis a referenciando. Assim, o loop de verificação de par e ímpar nunca para de rodar pois elementos são sempre adicionados a cada iteração. A solução para isso é definir três listas separadas:
valores = []
pares = []
impares = []
Correct answer by Murgalha on September 27, 2021
Para resolver esta questão você deve implementar um algoritmo que monte
uma lista formada por todos os valores digitados
pelo usuário, em seguida separe
os valores ímpares
dos pares
e, posteriormente os exibam em listas separadas.
Para isso você pode implementar o seguinte algoritmo...
# Criando uma lista com todos os valores digitados:
valores = list(map(int, input('Digite todos os valores desejados: ').split()))
# Separando os valores em pares e ímpares:
impares = list()
pares = list()
for c in valores:
if c % 2 != 0:
impares.append(c)
else:
pares.append(c)
# Exibindo as listas de valores pares e ímpares:
print(f' 33[32mOs números pares são: {pares}')
print(f'Os números ímpares são: {impares}')
Veja aqui o funcionamento do programa.
Observe que quando você executa este programa você recebe a seguinte solicitação
...
Digite todos os valores desejados:
Neste momento você tem que digitar todos os valores desejados na mesma linha, separados por apenas 1 espaço, tal como exemplificado abaixo.
4 6 8 9 12 23
Depois de ter inserido todos os valores é só digitar enter
. Neste momento o programa irá separar os valores impares
e pares
e, posteriormente, exibi-los.
Observe também, que para encerrar a inserção
de valores na lista
, basta pressionar a tecla enter
.
Answered by Solkarped on September 27, 2021
É como o colega Murgalha falou, veja se assim não te atende melhor:
lista_completa = [3, 7, 8, 11, 16, 20]
lista_pares = []
lista_impares = []
for c in lista_completa:
if c % 2 == 0:
lista_pares.append(c)
else:
lista_impares.append(c)
print(lista_impares)
print(lista_pares)
Answered by Felipe Cardoso on September 27, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP