Testes Python
Olá pessoal,
Estou fazendo alguns testes com Python + IRIS e me deparei com uma situação de retorno de erro.
{
venda = input("Registre um produto ou vazio para sair: ")
vendas = []
while 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.
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)) }
Obrigado!
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.