Pergunta
Fabio Silva · jan 9

Testes Python

Olá pessoal,

Estou fazendo alguns testes com Python + IRIS e me deparei com uma situação de retorno de erro.

ClassMethod WhileTest() [ Language = python ]
{
venda input("Registre um produto ou vazio para sair: ")
vendas []

while venda != "":
        vendas.append(venda)
        venda input("\nRegistre um produto ou vazio para sair: ")

print("\nOs produtos cadastrados foram: {}".format(vendas))
}

Ao executar esse código, tenho o retorno de erro abaixo quando sai do while:

<THROW> *%Exception.PythonException <THROW> 230 ^^0^D ##CLASS(CursoPython.Repeticao).WhileTest() <class 'EOFError'>: EOF when reading a line -

Executando o mesmo código diretamente no Python não recebo esse erro.

 

Alguém mais está trabalhando com Python + IRIS e sabe me dizer o que pode ser esse erro?

 

Obrigado.

Product version: IRIS 2022.1
$ZV: IRIS for Windows (x86-64) 2022.1 (Build 209U) Tue May 31 2022 12:16:40 EDT
0
0 34
Discussão (2)1
Entre ou crie uma conta para continuar

Esse erro acontece devido ao seu input voltar vazio, ele entende como erro.
Isso não acontece com diretamente no Python porque o input é nativo, esse erro é comum quando você utiliza inputs que são "built-in" (IDEs).

Uma forma de resolver seria tratando o erro, fazendo que quando ele ocorra o loop acabe:

ClassMethod WhileTest() [ Language = python ]
{
venda = input("Registre um produto ou vazio para sair: ")
vendas = []

while venda != "" :
	try:
		vendas.append(venda)
		venda = input("\nRegistre um produto ou vazio para sair: ")
	except EOFError:
		break

print("\nOs produtos cadastrados foram: {}".format(vendas))
}