-
Posts
5 -
Cadastrado em
-
Última visita
Tópicos solucionados
-
O post de voadorcareca em Erro : invalid literal for int() with base 10: ' ' foi marcado como solução
Pense bem sobre o que essa linha está fazendo:
valor = int(input('Digite um valor inteiro (Linha em branco para parar): '))
Agora pense nesse comparativo aqui:
if valor == " ":
Você está convertendo tudo que chega através de `input` em `int` isso acaba gerando uma exceção `ValueError` ao tentar processar uma string como integer.
Outra coisa: " " é diferente de "". Se você fizer o teste lógico com " " (aspas contendo um espaço dentro) só vai ser True se o usuário pressionar espaço e apertar enter.
Experimente o exemplo abaixo:
print(" " == "")
Existem algumas formas diferentes de fazer isso funcionar. Uma delas pode ser aceitar o `input` na forma de string e tentar converter para `int` dentro de um bloco try/except:
lista = [] while True: valor = input('Digite um valor inteiro (Linha em branco para parar): ') # não converta valor para 'int' aqui. try: valor = int(valor) lista.append(valor) lista.sort() except ValueError: # Caso o usuário passe uma string vazia "" vai gerar uma exceção ValueError que nós trataremos aqui. if valor == "": print(lista) exit(0)
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais