Maratona Python para Automação de Rede #4: Estrutura de código - if, else e elif

4 minute read

Buenas NetCode… Neste artigo iremos dar continuidade em estrutura de código com Python. Neste artigo você irá avançar no tema de estrutura de código, aprenderá a trabalhar com if, else e elif na linguagem Python, compreendendo como devem ser feitas as declarações e atribuições de valores. Pegue seu café e vamos nessa!

Tópicos

  • if e else
  • elif
  • Varredura de lista utilizando o if e for
  • .append()

if e else

Quando trabalhamo com o parâmetro if, falamos para o Python que queremos fazer algum tipo de comparação de valores armazenados dentro de alguma variável específica:

>>> nativeVlan = 1
>>> dataVlan = 100
>>> 
>>> if nativeVlan == dataVlan:
...     print("vlan é igual")
... else:
...     print("vlans não são iguais")
... 
vlans não são iguais
>>>

No exemplo acima eu atribuí duas condições ( if e else ) para que eu pudesse ter dois tipos de respostas, True ou False. Caso os dados forem ou não iguais, irá nos retornar respostas armazenadas dentro de uma das duas condições anexadas ao código.

elif

No exemplo abaixo iremos definir a condição elif, está função sempre vem antes do else, o else é o último julgamento, sempre vem como condição próxima.

No exemplo abaixo definimos uma variável e alocamos uma função input para descobrirmos qual é o número de ACL que o user quer saber, se é extended ou standard.

No primeiro if, definimos que, se o número digitado pelo user for maior que 1 e menor que 99, irá ser printado que a ACL é do tipo standard.

Já na segunda condição, se o numero representado pelo user for maior que 100 e menor que 199, irá ser printado que o valor corresponde à uma ACL extended.

Já na terceira condição, é colocada como else, essa função está sendo colocada para enviar uma mensagem caso o user digite um valor acima de 199:

aclNum = int(input("What is the IPv4 ACL number? "))
if aclNum >= 1 and aclNum <= 99:
    print("This is a standard IPv4 ACL.")
elif aclNum >=100 and aclNum <= 199:
    print("This is a extended IPv4 ACL.")
else:
    print("This is not a standard or extended IPv4 ACL.")

Ao executarmos, percebe-se o seguinte resultado:

$ python3 elif.py 
What is the IPv4 ACL number? 10
This is a standard IPv4 ACL.

Inserimos o número 10 que está dentro do range de 1 à 99, o tipo de ACL que está neste range é a ACL standard.

Dica: Podemos alocar diversos blocos atribuindo estas três condições.

Varredura de lista utilizando o if e for

No código abaixo, iremos fazer uma varredura dos elementos descritos dentro de uma lista através do for seguido do parâmetro item:

>>> devices = ["R1", "R2", "S1", "S2"]
>>> for item in devices:
...     print(item)
... 
R1
R2
S1
S2
>>>

Percebe-se que todos os elementos da lista foram varridos, agora iremos adicionar a condição if para nos retornar apenas os devices que estão descritos com o “S” na frente:

>>> for item in devices:
...     if "S" in item:
...             print(item)
... 
S1
S2
>>>

Neste exemplo acima o if filtra a letra “S” e varre os elementos que possuem a letra “S” dentro da lista.

.append()

No exemplo à seguir, usamos a função .append() para apendoar uma lista em outra lista vazia:

devices = ["R1","R2","R3","S1","S2"]
switches = []
for item in devices:
    if "S" in item:
        switches.append(item)
print(switches)

Definimos uma lista armazenada dentro da variável devices, depois definimos uma lista vazia armazenada dentro da variável switches.

ao definirmos a varredura dessa lista usando o parametro for, atribuímos uma variável item para substituir a variável devices dentro deste loop. e logo em seguida atribuímos uma condição para este loop.

A condição seria, se na lista devices que passa a ser item tiver elementos que começam com a letra “S”, irá ser varrido para a lista switches.

A função .append(item) pega os elementos iniciados pela letra “S” e os alocam dentro da lista switches e em seguida imprimimos a lista switches:

$ python3 demo_append.py
['S1', 'S2']

Segue outro exemplo abaixo usando a função .append():

devices = ["R1","R2","R3","S1","S2"]

switches = []
for item in devices:
    if "S" in item:
        switches.append(item)

num_sw = 0
for switch in switches:
    num_sw += 1
    print("item switch {} da minha lista é: {}".format(num_sw, switch))

Neste exemplo definimos outro bloco de variável e atribuímos o valor 0, pois quando varremos uma lista, o Python emula -1.

atribuímos um loop de varredura apenas usando a variável do tipo lista que seria a variável switches.

dentro do for, alocamos a variável num_sw e atribuímos +=1 para que o Python possa emular o item certo da minha lista, se eu não colocasse +=1, a mensagem ficaria “item switch 0 da minha lista é: S1”.

no processo de print, alocamos pares de chaves onde irá ser armazenados o conteúdo das variáveis. Segue o retorno deste script:

$ python3 demo_append2.py
item switch 1 da minha lista é: S1
item switch 2 da minha lista é: S2

Dica: O parâmetro for na é possível para inserir loops infinitos, seria apenas um loop de varredura de listagem de elementos dentro de uma lista. Para fazer loops infinitos dentro de uma lista, o parâmetro while é o mais indicado para este objetivo.

Bom, por hoje é só. E aí, o que achou deste artigo? Comente aqui embaixo, vai ser legal contar com sua presença por aqui.

Tags:

Categories:

Updated:

Leave a Comment