From b3218c112ba7658fdbc2ca9f787c6c8d03e65976 Mon Sep 17 00:00:00 2001 From: JONATHAN SOUZA DOS SANTOS <20251144030014@ifrn.local> Date: Fri, 27 Mar 2026 20:48:50 -0300 Subject: [PATCH] Primeiro commit --- .../__pycache__/utilidades.cpython-311.pyc | Bin 0 -> 682 bytes topicos_avancados/formatacao_str.py | 20 ++++++++ topicos_avancados/listas.py | 17 +++++++ topicos_avancados/ping.py | 47 ++++++++++++++++++ topicos_avancados/ping2.py | 36 ++++++++++++++ topicos_avancados/tipagem.py | 30 +++++++++++ topicos_avancados/utilidades.py | 8 +++ 7 files changed, 158 insertions(+) create mode 100644 topicos_avancados/__pycache__/utilidades.cpython-311.pyc create mode 100644 topicos_avancados/formatacao_str.py create mode 100644 topicos_avancados/listas.py create mode 100644 topicos_avancados/ping.py create mode 100644 topicos_avancados/ping2.py create mode 100644 topicos_avancados/tipagem.py create mode 100644 topicos_avancados/utilidades.py diff --git a/topicos_avancados/__pycache__/utilidades.cpython-311.pyc b/topicos_avancados/__pycache__/utilidades.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..229d06a9feb2559dcce1b379dbedb0e73b39daaf GIT binary patch literal 682 zcmZ3^%ge<81RuDMXTAW^k3k$5V1Y6|ivbza8B!Qh8B!Qi8Pix&m|9q(m{OR788lgL zF=ZCqVk=55DJ{xNW`t=4(jeW;K>T?dkeJR;!>|BIV}caMWk6l4;W}#>OF+7ypaxAg zg(({>TLiYfhS7x~R=bv|gcYWqfuV*8)w~pzY_MdpFkV%x*=GB)C2sJGbd=r@lKjBH#0nug z*zR)kb(D2l_gK#m?6U8$pPRfuZD#hI>=n+JE95Rm|!}=^aC@4yukx*{tlDR zK${r+fC0f=TvBw4B`H5Y2keZM3`GJ!nIb+Q@r%PIH$SB`C)KV<1jq%u&=AP@z|6?V Y_<@O?QDB1e2L>QD!v##?B)~=j0FlU>^#A|> literal 0 HcmV?d00001 diff --git a/topicos_avancados/formatacao_str.py b/topicos_avancados/formatacao_str.py new file mode 100644 index 0000000..914d6e7 --- /dev/null +++ b/topicos_avancados/formatacao_str.py @@ -0,0 +1,20 @@ +#Tipo de formatação 1 +nome = "Adriano" +classificacao = 1 +resultado = "Aluno aprovado: " + nome + " class " + str(classificacao) +print(resultado) + +#Tipo de formatação 2 +mensagem = "Conectando IP %s na porta %d" % ("192.168.0.1",45) +print(mensagem) + +#Tipo de formatação 3 +mensagem = "Conectando IP {} na porta {}". format("10.10.10.4",80) +print(mensagem) + +#Tipo de formatação padrao + +ip = "10.10.10.4" +porta = 458 +mensagem = f"Endereco IP: {ip}:{porta}" +print(mensagem) \ No newline at end of file diff --git a/topicos_avancados/listas.py b/topicos_avancados/listas.py new file mode 100644 index 0000000..cf772e7 --- /dev/null +++ b/topicos_avancados/listas.py @@ -0,0 +1,17 @@ +lista = [] +for i in range(100): + lista.append(i) +print(lista) + +# [operacao for i in lista] +lista = [i for i in range(1,101)] +lista = [i*2 for i in range(1,101)] +lista = [f"192.168.0.{i}" for i in range(1,101)] +print(lista) + +lista = [f"192.168.0.{i}" for i in range(1,101)] + +for ip in lista: + print(ip) + + diff --git a/topicos_avancados/ping.py b/topicos_avancados/ping.py new file mode 100644 index 0000000..7a83294 --- /dev/null +++ b/topicos_avancados/ping.py @@ -0,0 +1,47 @@ +# Execute um teste de conectividade com um único destino da rede, utilizando o comando ping do sistema operacional. +# O aluno deve solicitar ao usuário um IP ou nome de host, montar o comando com os.system() e informar se o destino respondeu ou não. + +import os +# O módulo os (Operating System) permite que o Python interaja com o sistema operacional. +# Neste script, ele será usado para enviar o comando de "ping" diretamente para o terminal do seu computador. +import platform +# Este módulo serve para obter informações sobre o hardware e o sistema operacional em que o script está rodando. +# Ele será crucial para sabermos se você está usando Windows, Linux ou macOS. +import utilidades +# Esta não é uma biblioteca padrão do Python. +# Trata-se de um módulo personalizado (provavelmente um arquivo chamado utilidades.py criado por quem fez o código original e salvo na mesma pasta). +# Ele contém funções criadas pelo usuário. +endereco = input("Digite um endereço IP: ") + +if not utilidades.validar_ip(endereco): + print("O endereço IP é inválido!") +else: + print(f"\n IP Validado! Testando conectividade para {endereco}...\n") + + parametro = '-n' if platform.system().lower() == 'windows' else '-c' + +# A segunda linha é uma jogada muito inteligente e comum em redes. +# O comando ping funciona diferente dependendo do sistema: +# No Windows, para dar apenas 1 ping, usamos o parâmetro -n 1 (number). +# No Linux/macOS, usamos -c 1 (count). +# platform.system().lower() == 'windows': Ele pergunta ao seu computador qual é o sistema. +# Se a resposta for 'windows', a variável parametro recebe -n. Se não for (seja Linux, macOS, etc.), ela recebe -c. + + comando = f"ping {parametro} 1 {endereco}" + + codigo_retorno = os.system(comando) + +# É aqui que a mágica acontece. O Python pega aquele texto e executa no terminal da sua máquina, como se você mesmo tivesse digitado. +# Quando um comando de terminal termina, ele devolve um número para o sistema, chamado de Exit Code (Código de Retorno): +# 0 (Zero): Significa "Sucesso". O comando rodou perfeitamente (ou seja, o IP respondeu ao ping). +# Qualquer número diferente de 0 (ex: 1 ou 2): Significa que houve um erro (o IP está offline ou inacessível). +# Esse número é guardado na variável codigo_retorno. + + print("\n" + "-" * 40) + + if codigo_retorno == 0: + print(f" SUCESSO: O IP '{endereco}' está ONLINE e respondeu.") + else: + print(f" FALHA: O IP '{endereco}' está OFFLINE ou não respondeu.") + + print("-" * 40) \ No newline at end of file diff --git a/topicos_avancados/ping2.py b/topicos_avancados/ping2.py new file mode 100644 index 0000000..656ea73 --- /dev/null +++ b/topicos_avancados/ping2.py @@ -0,0 +1,36 @@ +import subprocess +import platform +import utilidades + +endereco = input("Digite um endereço IP: ") + +if not utilidades.validar_ip(endereco): + print("O endereço IP é inválido!") +else: + print(f"\n IP Validado! Testando conectividade para {endereco}...\n") + + parametro = '-n' if platform.system().lower() == 'windows' else '-c' + + # MUDANÇA 1: O comando agora é uma lista de strings, não um texto único. + comando = ['ping', parametro, '1', endereco] + + try: + # MUDANÇA 2: Usamos subprocess.run() + # capture_output=True impede que o texto padrão do ping suje a tela. + # text=True garante que o resultado venha em formato de texto. + resultado = subprocess.run(comando, capture_output=True, text=True) + + print("\n" + "-" * 40) + + # MUDANÇA 3: O Exit Code agora é acessado via resultado.returncode + if resultado.returncode == 0: + print(f" SUCESSO: O IP '{endereco}' está ONLINE e respondeu.") + # Bônus: Podemos acessar o texto real da resposta do terminal! + # print(" Detalhes do teste:", resultado.stdout.strip()) + else: + print(f" FALHA: O IP '{endereco}' está OFFLINE ou não respondeu.") + + print("-" * 40) + + except Exception as e: + print(f" ERRO NO SISTEMA: Falha ao tentar executar o comando de ping. Detalhes: {e}") \ No newline at end of file diff --git a/topicos_avancados/tipagem.py b/topicos_avancados/tipagem.py new file mode 100644 index 0000000..e39e134 --- /dev/null +++ b/topicos_avancados/tipagem.py @@ -0,0 +1,30 @@ +a = 20 +A = 3.1415 +nome = "João" +total = 4596 +resultado = 45.45 +logico = True + +print(type(a)) +print(type(A)) +print(type(nome)) +print(type(total)) +print(type(resultado)) +print(type(logico)) + +# Definicao padrao de funcoes em Python +def somar(a,b): + soma = a + b + return soma + +print(somar(7,9)) + +def somarTipado(a : int, b : int) -> int: + soma = a + b + return soma + +print(somarTipado(7,9)) + +# from socket import socket + +# socket.accept() \ No newline at end of file diff --git a/topicos_avancados/utilidades.py b/topicos_avancados/utilidades.py new file mode 100644 index 0000000..c2b001e --- /dev/null +++ b/topicos_avancados/utilidades.py @@ -0,0 +1,8 @@ +def validar_ip(ip : str) -> bool: + octetos = ip.split(".") + if len(octetos) != 4: + return False + for octeto in octetos: + if int(octeto) < 0 or int(octeto) > 255: + return False + return True \ No newline at end of file