Escrito por

Pergunta Fabio Silva · jan 9, 2023

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

Comments

Anderson Negreli · jan 9, 2023

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:
		breakprint("\nOs produtos cadastrados foram: {}".format(vendas))
}
0
André Dienes Friedrich · Jun. 13, 2023

Alguns testes que estou realizando com o Python encontrei alguns problemas parecidos e algo que notei no seu código seria o uso do print como saída final, o print não lhe será útil para retornar para o Iris creio a substituição dele por um return será mais efetivo.

O seu print irá imprimir como uma lista tudo que foi insirido no array vendas, se for para tratar essa váriavel externamente creio que será nescessário algumas modificações, mas irá funcionar.

0