Aula 01

Instalando os requisitos (Debian, Ubuntu, Mint e Derivados)

sudo apt-get install python3

sudo apt-get install python3-pip

obs: para instalação de bibliotecas de terceiros, usaremos o pip

Modo Script vs Modo Interativo

echo print ("hello world!") > hello.py


In [63]:
print ("hello world!")


hello world!

Variáveis

Dado armazenado em um local da memória, pode ser:

  • inteiro
  • float
  • booleano
  • string ### Ou algum tipo de dado mais complexo, como lista ou dicionário

In [7]:
port = 22

In [8]:
message = "SSH Server v2"

In [9]:
print ("Search for {} in port {}".format(message,port))


Search for SSH Server v2 in port 22

Em Python, o tipo da variável não precisa ser declarado explicitamente, o interpretador verifica qual o tipo de variável e o valor que ocupa na memória


In [ ]:
message = "SSH Server v2"
type(message)

In [ ]:
port = 22
type(port)

In [ ]:
portlist = [22,21,80,5000]
type(portlist)

In [ ]:
portOpen = True
type(portOpen)

Strings

O módulo de strings em Python provê uma série de de métodos para strings

https://docs.python.org/3.1/library/string.html


In [1]:
message= "SSH Server v2"

In [ ]:
print (message.upper())
print (message.lower())

In [ ]:
print (message.split('r'))

In [ ]:
print(message.replace('Server','Client'))

In [ ]:
print (message.find('SSH'))

Listas

Estrutura para armazenar arrays de objetos, são heterogêneas


In [34]:
portList = []
portList.append(22)
portList.append(80)
portList.append(5000)
portList.append(25)
print (portList)


[22, 80, 5000, 25]

In [ ]:
portList.sort()
print (portList)

In [ ]:
print ("{} portas ativas encontradas!".format(len(portList)))

Dicionários

Dicionários são estruturas de dados que fornecem uma tabela hash que podem armazenar qualquer tipo de objeto Python. Dicionários consistem de um par de item que contém uma chave e um valor


In [52]:
services = {'ftp':21, 'ssh':22, 'smtp': 25, 'http':80, 'https':443}

In [ ]:
services.keys()

In [ ]:
services.items()

In [ ]:
services.get('ssh')

In [ ]:
services['ssh']

In [ ]:
print (" Falha encontrada no SSH na porta {}".format(services['ssh']))

In [ ]:
del services['ftp']

Estruturas Básicas

Seleção

if EXPRESSÃO BOOLEANA:
    COMANDOS_1        # executados se condição tem valor True
else:
    COMANDOS_2        # executados se condição tem valor False

Iteração

for VARIAVEL in LISTA:  #o comando for processa cada Item em uma Lista
    COMANDO

In [ ]:
Falar do range
while CONDICAO_BOOLEANA: #enquanto a CONDICAO_BOOLEANA for verdadeira, 
                         # o COMANDO será executado
      COMANDO

In [ ]:
Falar do break e do continue

Funções

Em python, função são comandos em sequência e que possuem um nome, são utilizados para separar partes do código, deixando assim, mais legível e tornando o código reciclável

def NOME( PARÂMETROS ):
    COMANDOS

In [56]:
def ip_example(ip,port):
    return 'IP : {} and PORT {}'.format(ip,port)

In [ ]:
print (ip_example('192.168.0.1',80))

Tratamento de Exceções

Se refere a tratar ocorrência de condições que alteram o fluxo normal do programa


In [ ]:
print (2/0)
try:              #caso o comando nao seja executado corretamente,
    COMANDO       # a excecao sera tratada
except EXCECAO:
    COMANDO

In [ ]:
try:
    print (2/0)
except ZeroDivisionError:
    print ("Divisao por zero, -100 de xp")

Prática

1. Desenvolver um script para checar se um dado IP informado pelo usuário é válido, seguindo as seguintes condições:

  • deve ter o formato xxx.xxx.x.x
  • deve estar na faixa: 192.168.0.x, onde X varia de 1 a 255
  • caso IP seja válido retornar uma mensagem OK e caso contrário retornar ERRO

2. Fazer uma iteração no IP 192.168.0.1/24, ou seja na faixa de 1 a 255, e exibir na tela