1
resposta

problema em construir um while

Boa tarde. Estou a pouco tempo trabalhando na área de programação e me perco muito as vezes. estou criando um robô de coleta com python e não consigo fazer esse loop.

vocês poderiam me ajuda a resolver queria que ele rodasse do 1 até 4 verificando o conteudo dentro de cada item

  def __init__(self, cabo='', lateral='', central='', tronco=''):
        self.cabo = cabo
        self.lateral = lateral
        self.central = central
        self.tronco = tronco
**cabo = 1
while roda or 1:
    em.fill_field(5, 28, '1', 8)
    em.exec_command('Tab')
    time.sleep(1)
**

    def (self, escritorio='', localidade='', area_telefonica='', causa_comum=''):
        self.escritorio = escritorio
        self.localidada = localidade
        self.area_telefonica = area_telefonica
        self.causa_comum = causa_comum

    em.fill_field(5, 64, '1', 8)
    em.exec_command('Tab')
    time.sleep(1)
    em.fill_field(6, 64, 'AT', 8)
    time.sleep(1)

    def __int__(self, cabo_tronco='', latera='', central='', motivo='', status_a_aberto_f_fechado_a_n_ulado='',
                perido_de_ate=''):
        self.cabo_tronco = cabo_tronco
        self.latera = latera
        self.central = central
        self.motivo = motivo
        self.status_a_aberto_f_fechado_a_n_ulado = status_a_aberto_f_fechado_a_n_ulado
        self.perido_de_ate = perido_de_ate

    time.sleep(1)
    em.move_to(16, 28, )
    em.fill_field(16, 28, 'A', 8)

    time.sleep(1)
    em.exec_command('Enter')
    time.sleep(2)


else:
1 resposta

Oi @Kennedy,

Tive muita dificuldade para entender seu código. Ele parece estar incompleto.

  • O que você está tentando fazer?
  • Pelo def __init__(self na 1ª linha, parece que você está definindo uma classe, é isso?
  • Isso é a definição de classe ou um script?
  • O que são esses métodos em.exec_command() e em.fill_field()?

Na linha 7:

while roda or 1:

Esse while vai rodar para sempre, porque 1 é interpretado como True.

Tudo abaixo da linha 7 está indentado, o que significa que todo o resto do seu código está dentro desse while. Acho que isso não é o que você quer.

Na linha 13:

def (self, escritorio='', ...

Isso parece a definição de uma função, só que faltou um nome para ela.

Na linha 25:

def __int__(self, ...

Cuidado com o nome das funções: __int__ é diferente de __init__

Não faz sentido definir funções dentro de um loop while, elas não serão executadas. Você deve primeiro definir as funções, depois chamá-las pelo nome.

Exemplo:

class NomeDaClasse():
    def __init__(self, cabo='', lateral='', central='', tronco=''):
        self.cabo = cabo
        self.lateral = lateral
        self.central = central
        self.tronco = tronco

def MinhaFuncao(itens = []):
    for i in range(1, 5):
        analizaItem(itens[i])

def analizaItem(item: NomeDaClasse):
    # código


if __name__ == "__main__":
    MinhaFuncao()