Stack Overflow em Português Asked by Rebeca Nonato on November 8, 2021
Esses comandos em Python:
lista = eval('[' + input("Digite sua lista: ") + ']')
E esse:
lista = input("Digite sua lista: ")
E esse:
lista = [int(x) for x in input().strip()]
Por que esse último dá o erro abaixo?
ValueError: invalid literal for int() with base 10: ‘,’
lista = eval('[' + input("Digite sua lista: ") + ']')
Não use eval()
se não dominar profundamente a linguagem e a computação. Em essência não precisa dele.
lista = input("Digite sua lista: ")
Está pedindo para digitar algo e guardar na variável como uma string, não uma lista.
lista = [int(x) for x in input().strip()]
Está criando uma lista (um array de tamanho dinâmico). Isto é chamado compreensão de expressão, então esse laço é executado e o resultado de toda execução do laço, ou seja, todos os passos, são guardados na lista.
Neste caso está pegando a string gerada na digitação do dado (input()
) e separando as palavras (strip()
) e em cada dado é transformado em um inteiro (int()
), esperando que o texto digitado separado por espaços sejam números.
ValueError: invalid literal for int() with base 10: ','
Foi digitado um texto que não pode ser convertido para um número. Eu não gosto dessa estratégia, mas em Python costuma-se capturar exceção quando isto ocorre para corrigir.
Answered by Maniero on November 8, 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