A entrada do console não está sendo avaliada corretamente com o script python integrado em um exe com cx_freeze

StackOverflow https://stackoverflow.com//questions/10696239

  •  12-12-2019
  •  | 
  •  

Pergunta

Eu tenho um script composto por 3 arquivos e 2 pacotes.Quando executo o script no IDLE ou via linha de comando, ele é executado perfeitamente.Usei cx_freeze para converter o programa em um executável e ainda funciona bem, exceto que o texto recebido por meio do método input() está sendo avaliado incorretamente.Este código reflete o meu:

x = str(input("Continue? (y/n): "))
if x.lower() == "y" or x.lower() == "yes":
    cont = True
else:
    print("thanks for playing.")
    cont = False
input("press enter key to exit...")

Adicionei o conversor str() à função de entrada para ver se ajudaria, mas não ajudou.Não importa se eu digito “sim” ou “y”, a condicional ainda é avaliada como falsa e não tenho ideia do porquê.Também adicionei instruções de impressão a cada ramificação da condicional, e o valor impresso para x está correto, mas ainda é avaliado como falso.

Foi útil?

Solução

Às vezes, a entrada recebe um caractere de nova linha no final.Tente removê-lo:

x = input("Continue? ").strip()
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top