FUNDAMENTOS DE PYTHON - Um Guia para Iniciantes e o Futuro da Inteligência Artificial
- #Python
FUNDAMENTOS DE PYTHON: Um Guia para Iniciantes e o Futuro da Inteligência Artificial
Por: Claudio Di Capua, Engenheiro de Software e Especialista em IA
Introdução:
O Python se consolidou como a linguagem de programação dominante no campo da Inteligência Artificial (IA) e do desenvolvimento de software. Sua sintaxe clara, vasta comunidade e ecossistema rico o tornam uma escolha ideal para desenvolvedores iniciantes e experientes. Este artigo visa fornecer uma visão geral (overview) e uma base sólida em Python, abordando os conceitos fundamentais, boas práticas, bibliotecas essenciais e como essa linguagem pode impulsionar sua carreira. Irei ilustrar com códigos exemplos os tópicos que acredito ser relevantes para dar um gostinho do Python.
1. Primeiros Passos em Python:
- Instalação e Configuração: Comece instalando o Python a partir do site oficial (https://www.python.org/). Certifique-se de adicionar o Python ao PATH do seu sistema operacional (no caso do Windows e MacOS) no Linux normalmente nas distros LTS vem com Python 3.12 instalado e nas versões stable 25.xx com Python 3.13, porém se precisar usar uma versão específica deve se intalar o PyEnv para gerenciar versões de Python no sistema e não interferir com a versão global instalada no sistema operacional também é possível gerenciar isso usando o Poetry e o UV (este último vem ganhando a preferência dos desenvolvedores Python).
- Instalação de Gerenciador de Pacotes: No mundo dev de Python hoje temos um publio dividido entre o Poetry e o UV (que lembra muito o Cargo do Rust) nos projetos Python para gerenciar as depedências e requerimentos dos Projetos, para isso será necessário instalar o PIPX pois a instalação do Poetry e UV é realizado com maior eficiência usando o PIPX, ou podemos instalar usando o PIP porém qualquer dependência a ser instalada seria ideal estar sob os cuidados ou do Poetry ou UV.
- Ambientes Virtuais: Utilize ambientes virtuais (venv ou conda) para isolar as dependências de seus projetos. Eu aconselho usar o venv, pois o conda é muito específico para quem utiliza o Anaconda para trabalhos com data-science e que não exigiria um conhecimento de Python profundo apenas das bibliotecas mais utilizadas como o Pandas e ScikitLearn nas tarefas analíticas.
- Sintaxe Básica: Python se baseia na indentação para definir blocos de código. Familiarize-se com tipos de dados (inteiros, floats, strings, booleanos), operadores e estruturas de controle (if/else, loops for/while).
- Exercícios: A prática é fundamental. Resolva exercícios simples, como calcular a média de uma lista de números, verificar se um número é par ou ímpar, e manipular strings.
# Exemplo declarando os tipos de dados aceitos pelo Python
# exemplo de string
mensagem = "A média dos números é:"
mensagem_alternativa = 'Outra forma de escrever conteúdo para uma variável ou constante string'
# declarando a variavel como tipo string, normalmente fazemos isso em arqumentos de função pyton
def Ola(mensagem:str)
print(mensagem)
# para numero inteiro numero:int
# para numero flutuante fracao:float -> fracao = 2.5 no Python usamos ponto decimal e não vírgula
# para tipo booleano verdade:bool mentira:bool -> atribuindo verdade = True mentira = False
# Exemplo de cálculo da média de uma lista
numeros = [1, 2, 3, 4, 5]
soma = sum(numeros)
media = soma / len(numeros)
print(f"A média dos números é: {media}")
2. Boas Práticas com Python (Clean Code):
- PEP 8: Siga as diretrizes do PEP 8 (Python Enhancement Proposal 8) para manter o código legível e consistente. Isso inclui o uso de nomes descritivos, espaçamento adequado e comprimento máximo de linhas.
- Funções: Escreva funções concisas e com uma única responsabilidade. Utilize nomes claros e descritivos para as funções.
- Comentários: Use comentários para explicar o propósito do código, especialmente em áreas complexas.
- Testes Unitários: Implemente testes unitários para garantir que seu código funcione corretamente. Frameworks como
unittest
epytest
facilitam a criação e execução de testes. - Refatoração: Refatore seu código regularmente para melhorar a estrutura, legibilidade e desempenho.
3. Bibliotecas Essenciais de Python:
- NumPy: A base para computação numérica em Python. Oferece suporte a arrays multidimensionais e funções matemáticas. Essencial para IA e aprendizado de máquina.
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr)
print(np.mean(arr))
- Pandas: Uma biblioteca poderosa para análise e manipulação de dados, baseada em NumPy. Fornece estruturas de dados como DataFrames para facilitar o trabalho com dados tabulares.
import pandas as pd
data = {'Nome': ['Alice', 'Bob', 'Charlie'],
'Idade': [25, 30, 28],
'Cidade': ['São Paulo', 'Rio de Janeiro', 'Belo Horizonte']}
df = pd.DataFrame(data)
print(df)
print(df.describe())
- Scikit-learn: Uma biblioteca completa para aprendizado de máquina, oferecendo algoritmos de classificação, regressão, clustering e redução de dimensionalidade.
- TensorFlow & PyTorch: Frameworks de aprendizado profundo (Deep Learning) amplamente utilizados para construir e treinar redes neurais.
- Matplotlib & Seaborn: Bibliotecas para visualização de dados, permitindo criar gráficos e diagramas para explorar e apresentar seus resultados.
- Ollama-Python: Uma biblioteca Python que permite interagir com o modelo de linguagem Ollama, facilitando a experimentação e integração de modelos de linguagem localmente.
import ollama
# Inicializa o Ollama (pode precisar de configuração inicial)
ollama.Model.load("llama:70b") # Exemplo para carregar o modelo "llama:70b"
# Exemplo de prompt (requer configuração do modelo carregado)
response = ollama.generate("Conte uma história engraçada.")
print(response)
- Bibliotecas para Manipulação de Banco de Dados:
- SQLAlchemy: Uma biblioteca poderosa e flexível para interagir com bancos de dados relacionais. Normalmente a utilizo nos projetos que envolvem banco de dados no lado server (MySQL, ORACLE DB, IBM DB2)
- psycopg2: Um adaptador PostgreSQL para Python, facilitando a conexão e consulta a bancos de dados PostgreSQL.
- pymongo: Um driver para o MongoDB, permitindo interagir com bancos de dados NoSQL.
- sqlite: Essa biblioteca é nativa do Python muito útil quando queremos ter um banco de dados leve e não dependente de servidor em projetos mobile, ou em protótipos funcionais de apps para teste e produção em sandbox antes de colocar num banco de dados robusto para produção.
Exemplo de código usando SQLAlchemy, costumo usar muito em projetos em Flask para os formulários CRUDs (Create, Read, Update e Delete) das tabelas do banco de dados.
# Exemplo com SQLAlchemy
from sqlalchemy import create_engine, text
engine = create_engine('sqlite:///:memory:') # Conexão em memória
# engine = create_engine('postgresql://usuario:senha@host:porta/banco') # Exemplo PostgreSQL
connection = engine.connect()
result = connection.execute(text("SELECT * FROM minha_tabela"))
for row in result:
print(row)
connection.close()
4. Desenvolvimento Web com Python: Frameworks e Aplicações:
- Django: Um framework web de alto nível que oferece um ORM (Object-Relational Mapper) para interagir com bancos de dados, um sistema de templates e um sistema de administração. Ideal para aplicações web complexas.
- Flask: Um micro-framework web que oferece flexibilidade e controle total sobre a aplicação. Ótimo para aplicações web menores e protótipos.
- Streamlit: Um framework para criar aplicativos web de IA com Python de forma rápida e fácil. Ideal para criar demos e protótipos de modelos de aprendizado de máquina.
- Flet: Um framework moderno para construir aplicações web e mobile com Python. Permite criar interfaces de usuário interativas e rápidas.
- Agno: Um framework de agentes de inteligência artificial, para o desenvolvimento de agentes inteligentes para equipes, e workflows, oferecendo instrumentação automática de rastreio de todas as operações: interações do agente, coordenação de equipe, uso de ferramentas, e execução de workflows (fluxos de trabalho).
- ReactPy: É uma biblioteca para criar UI em Python sem haver necessidade de Javascript. as interfaces criadas com ReactPy são construídas a partir de componentes com o visual similar ao do ReactJS. Foi criada tendo em mente a simplicidade, pode ser usada por desenvolvedores sem experiência com desenvolvimento web, porém com poder para evoluir de acordo com os objetivos do desenvolvedor. Ideal para quem quer desenvolver em React usando Python Puro.
# instalando AGNO usando PIP
pip install agentops agno
# instalando AGNO usando UV
uv pip install agentops agno
# instalando AGNO usando Poetry
poetry pip install agentops agno
# opcionalmente para UI podemos instalar o STREAMLIT (web/desktop)
# ou o FLET caso queira direcionar para mobile/web/desktop
# vou exemplificar usando uv
uv pip install streamlit #se o projeto exigir interface web simples streamlit é adequado
uv pip install flet #se o projeto demandar algo além de web um deploy multiplataforma então considere o flet
uv pip install reactpy #se o projeto demandar usar REACT considere usar essa biblioteca
5. Impacto do Python na Carreira de um Desenvolvedor Iniciante:
- Demanda de Mercado: Python é uma das linguagens mais procuradas no mercado de trabalho, com alta demanda em áreas como IA, aprendizado de máquina, ciência de dados e desenvolvimento web.
- Versatilidade: Python é uma linguagem versátil que pode ser utilizada em uma ampla gama de aplicações, desde desenvolvimento web até ciência de dados e automação.
- Comunidade Forte: Python possui uma comunidade ativa e acolhedora, oferecendo suporte e recursos para desenvolvedores iniciantes.
- Facilidade de Aprendizado: A sintaxe clara e a vasta quantidade de recursos de aprendizagem tornam Python uma linguagem acessível para iniciantes.
6. Conselhos de um velho Dev Jedi Master para os jovens Padawans Pythoneiros:
- Por onde começar? Todo mundo começa de algum lugar, o meu sempre foram os melhores livros disponíveis e adotados pelas Universidades High Tech o berço das tendências e tecnologias (MIT, BERKELEY, STANFORD, HARVARD) quer ficar na frente fica de olhos no conteúdo que os estudantes da gringa estão consumindo, para isso faça networking no Discord e ...
- APRENDA INGLÊS!!!! Se você quer estar atualizado e na vanguarda, leia muitos livros em inglês de preferencia os melhores para isso dá uma navegada na Amazon Books leia as reviews e os comentários postados. Sem inglês você não vai a lugar algum! então aprenda e se você tem pressa e não quer perder tempo estude BUSINESS ENGLISH e com foco na área de COMPUTING & INFORMATION TECHNOLOGY, que estará dominando o jargão empresarial e ter uma conversação de alto nível com entrevistadores.
- Tenha um Portfólio de Qualidade! Quer apresentar algo real e que realmente impressione, faça a lição de casa a boa velha Análise e Desenvolvimento de Sistemas, pegue um pequeno negócio e ofereça para desenvolver todo o ERP/CRM da empresa mesmo que seja de Graça, além de te dar experiência com o mundo real será a oportunidade de você evoluir de um Junior inexperiente para um Pleno experiente e seguro, além de te dar uma visão de sistemas de informações empresariais você pode dar uma apimentada na arquitetura do seu ERP/CRM incorporando agentes de inteligência artificial não tenha medo de aprender LangChain/LangGraph/LangFlow , N8N/SIM, RAG, Supabase e caia de cabeça nessa nova bolha sem medo de ser feliz. NINGUÉM QUESTIONA QUEM TEVE CORAGEM DE DESENVOLVER FULLCYCLE UM SISTEMA ERP/CRM INTEGRALMENTE SOZINHO! ISSO É PARA OS CORAJOSOS!(aprenda a codar primeiro só use tecnologia low code e no code para construir quando dominar coding e ai essas tools vão torná-lo produtivo, vibe code é lindo porém alguém vai ter que dar manuntenção algum dia! logo já sabemos o que vai acontecer!!! controle a qualidade do vibe coding isso é QA)
- Não se Iluda com Promessas! FAÇA O TESTE DOS 12 MESES: se em 12 meses você não tiver um aumento salarial ou bônus por produtividade e assertividade, ou reconhecimento pelo seu árduo trabalho! não será em 2 ou 3 anos que isso vai acontecer! fique mais 1 ano para ter estabilidade na carteira de trabalho e já vá fazendo o seu networking para conseguir uma nova colocação. Se o chefe é um escroto total, arrume um emprego para ele no concorrente ganhando o dobro! Será uma boa forma de livrar-se do chefe escroto e ferrar com o concorrente e garantir que você seja promovido, Cuidado com ambientes tóxicos ou ambientes estagnados onde para subir na carreira você tem que rezar por uma PANDEMIA DE AIDS ZUMBI FULMINANTE PARA ELIMINAR A CONCORRÊNCIA! CUIDADO COM AS ARAPUCAS! CONSTRUA UMA CARREIRA!
- Almeje ser o Melhor! Não queira menos que isso! Mas não deixe que o sucesso lhe suba a cabeça, a soberba e a arrogância é o caminho para a queda! Lembre-se de Anakin Skywalker e Baylan Skoll. Reconheça a contribuição da equipe no seu sucesso!
- Resiliência Emocional Sempre! Espere o Melhor, Prepare-se para o Pior! Vivemos dias turbulentos não podemos ser emotivos, devemos ser lógicos, racionais e principalmente estóicos com as adversidades, principalmente com os Layoffs muito comuns em grandes corporações! Nunca fique acomodado acreditando estar em segurança, nunca baixe a guarda! E fique atento a movimentação e nos RESULTADOS DA EMPRESA (DEU PREJUÍZO, NÃO ATINGIU AS METAS) isso é sinal que a gestão não está boa, e nessas horas cabeças irão rolar, é o tal do helicóptero passando de cabeça para baixo!
- Nunca subestime um Dinossauro da TI: Os Dinossauros existem e acumulam uma visão holística de décadas atuando na indústria, discretamente nós estamos muito atualizados apesar da política de etarismo praticada em muitas Big Techs jovens, normalmente essa geração de GESTORES DE RH são uns estúpidos, adoram modinhas e hypes, e infelizmente teremos que lidar com eles, afinal são eles que selecionam os candidatos considerados no FIT CULTURALMENTE, passou por eles chegou na hora dos Gerentes e Diretores : PAPO RETO EXTREMAMENTE PROFISSIONAL E TÉCNICO pois eles tem que entender que tu é o chamado PIKACHU DAS GALÁXIAS!! E se o cara tiver aparência de uns 80 anos ESSE É O CEO DA BIG TECH não é o tiozinho aposentado! Lembrem-se da imagem desse cara Larry Ellison CTO E CEO da ORACLE (81 ANOS - BOOMER) E SEJA CONSERVADOR NÃO SEJA UM WOKE COM GERAÇÃO BABY BOOMER ELES SÃO OS DONOS DA BIG TECH, posso citar algumas DELL, IBM, MICROSOFT, CISCO, TESLA, X ! acho que não preciso desenhar!
Conclusão:
Python é uma ferramenta poderosa e versátil que pode impulsionar sua carreira no desenvolvimento de software e na área de IA. Ao dominar os conceitos fundamentais, boas práticas e bibliotecas essenciais, você estará bem posicionado para construir projetos inovadores e explorar as infinitas possibilidades da Inteligência Artificial. Lembre-se: a prática constante e a participação na comunidade são chaves para o sucesso.