<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Aula 01
Instalando os requisitos (Debian, Ubuntu, Mint e Derivados)
sudo apt-get install python3
sudo apt-get install python3-pip
obs
Step1:  Variáveis
Dado armazenado em um local da memória, pode ser
Step2:  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
Step3:  Strings
O módulo de strings em Python provê uma série de de métodos para strings
https
Step4:  Listas
Estrutura para armazenar arrays de objetos, são heterogêneas
Step5:  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
Step6:  Estruturas Básicas
Seleção
if EXPRESSÃO BOOLEANA
Step7:  ```
while CONDICAO_BOOLEANA
Step8:  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 )
Step9:  Tratamento de Exceções
Se refere a tratar ocorrência de condições que alteram o fluxo normal do programa
Step10:  try
<ASSISTANT_TASK:>
Python Code:
print ("hello world!")
Explanation: 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!") &gt; hello.py
End of explanation
port = 22
message = "SSH Server v2"
print ("Search for {} in port {}".format(message,port))
Explanation: 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
End of explanation
message = "SSH Server v2"
type(message)
port = 22
type(port)
portlist = [22,21,80,5000]
type(portlist)
portOpen = True
type(portOpen)
Explanation: 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
End of explanation
message= "SSH Server v2"
print (message.upper())
print (message.lower())
print (message.split('r'))
print(message.replace('Server','Client'))
print (message.find('SSH'))
Explanation: 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
End of explanation
portList = []
portList.append(22)
portList.append(80)
portList.append(5000)
portList.append(25)
print (portList)
portList.sort()
print (portList)
print ("{} portas ativas encontradas!".format(len(portList)))
Explanation: Listas
Estrutura para armazenar arrays de objetos, são heterogêneas
End of explanation
services = {'ftp':21, 'ssh':22, 'smtp': 25, 'http':80, 'https':443}
services.keys()
services.items()
services.get('ssh')
services['ssh']
print (" Falha encontrada no SSH na porta {}".format(services['ssh']))
del services['ftp']
Explanation: 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
End of explanation
Falar do range
Explanation: 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
End of explanation
Falar do break e do continue
Explanation: ```
while CONDICAO_BOOLEANA: #enquanto a CONDICAO_BOOLEANA for verdadeira, 
                         # o COMANDO será executado
      COMANDO
```
End of explanation
def ip_example(ip,port):
    return 'IP : {} and PORT {}'.format(ip,port)
print (ip_example('192.168.0.1',80))
Explanation: 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
End of explanation
print (2/0)
Explanation: Tratamento de Exceções
Se refere a tratar ocorrência de condições que alteram o fluxo normal do programa
End of explanation
try:
    print (2/0)
except ZeroDivisionError:
    print ("Divisao por zero, -100 de xp")
Explanation: try:              #caso o comando nao seja executado corretamente,
    COMANDO       # a excecao sera tratada
except EXCECAO:
    COMANDO
End of explanation
<END_TASK>