A linguagem de programação Python é muito popular, foi criada em 1991 por Guido van Rossum, é de uso geral, bastante fácil de programar e utilizar.
Após instalado, você roda o programa CLI (Command-Line-Interface) do Python, a partir da linha de comando do SO (Sistema-Operacional), disponibilizando uma interface de linha de comando para o programador interagir com o Python.
A linguagem Python tem uma sintaxe fácil, que usa uma série de palavras e simbolos reservados, em conjunto com diferentes tipos de operações, para executar instruções da linguagem.
Você pode criar variáveis atribuindo valores literais a elas:
a = 1
b = 2
Você pode usar o operador print para mostrar o valor das variáveis:
print("a =", a)
print("b =", b)
Você pode usar o operador + para somar os valores de variáveis com literais ou outras variáveis:
c = a + 10
d = a + b
print("c =", c)
print("d =", d)
você pode usar diversos tipos de operações aritméticas:
print("10 + 20 =", 10 + 20)
print("10 - 20 =", 10 - 20)
print("10 * 20 =", 10 * 20)
print("10 / 20 =", 10 / 20)
print("10 // 3 =", 10 // 3)
print("10 % 3 =", 10 % 3)
print("10 ** 2 =", 10 ** 2)
você pode usar diversos tipos de operações de atribuição:
a = 8; b = 3; print(f"a = {a}, b = {b}")
a += b; print(f"a += b, a = {a}")
a *= b; print(f"a *= b, a = {a}")
a -= b; print(f"a -= b, a = {a}")
a //= b; print(f"a //= b, a = {a}")
a %= b; print(f"a %= b, a = {a}")
a /= b; print(f"a /= b, a = {a}")
a **= b; print(f"a **= b, a = {a}")
Você pode criar e manipular variáveis com texto:
a = 'AbCdE'
print("a =", a, "tem tamanho =", len(a))
A variável a contém o texto AbCdE, que é um vetor de caracteres que vai do índice 0 ao 4 (correspondente a len(a)-1).
As letras nos índices são os seguintes:
i = 0
while i < len(a):
print(f"a[{i}] = {a[i]}")
i += 1
Vamos inovar e criar uma função que retorna uma mensagem com o texto de uma expressão e o resultado da sua avaliação com a função eval():
def print_eval(expressao):
print( f"{expressao} = {eval(expressao)}")
você pode usar os índices para fatiar o texto:
print_eval("a[2]")
print_eval("a[:4]")
print_eval("a[1:]")
print_eval("a[2:3]")
print_eval("a[2:4]")
print_eval("a[2:5]")
print_eval("a[0:5:2]")
print_eval("a[0:5:3]")
print_eval("a[1:5:2]")
print_eval("a[2:4:2]")
print_eval("a[::-1]")
Neste tipo de construção 'a[2:5:2]', o primeiro número é o indice inicial, o segundo o indice final, e o terceiro o passo.
você pode usar diversos tipos de métodos de texto:
b = "TíTuLo De AlGuMa CoIsA!"
print(f"b = '{b}'")
print(f"b.upper() = '{b.upper()}'")
print(f"b.lower() = '{b.lower()}'")
print(f"b.capitalize() = '{b.capitalize()}'")
print(f"b.title() = '{b.title()}'")
print(f"b.swapcase() = '{b.swapcase()}'")
print(f"b.center(30) = '{b.center(30)}'")
print(f"b.startswith('TiT') = {b.startswith('TíT')}")
print(f"b.startswith('tit') = {b.startswith('tit')}")
print(f"b.endswith('sA!') = {b.endswith('sA!')}")
print(f"b.endswith('sa!') = {b.endswith('sa!')}")
Métodos de texto que fazem a contagem e localizam ocorrências de caracteres, da esquerda para a direita e vice-versa:
c = '?01234567890123456789012$345678901234567890123456789@'
print(f"c = '{c}'")
print("c.count('5') =", c.count('5'))
print("c.count('5', 10) =", c.count('5', 10))
print("c.count('5', 10, 35) =", c.count('5', 10, 35))
print("c.find('7') =", c.find('7'))
print("c.find('@', 10) =", c.find('@', 10))
print("c.find('@', 10, 35) =", c.find('@', 10, 35))
print("c.rfind('9') =", c.rfind('9'))
print("c.rfind('$', 20) =", c.rfind('$', 10))
print("c.rfind('?', 10, 35) =", c.rfind('?', 10, 35))
Neste tipo de construção '"c.rfind('?', 10, 35)', o primeiro argumento será o texto que será procurado em c, o segundo o indice inicial, e o terceiro o indice final.
Você pode trabalhar com listas:
frutas = ['mamão', 'banana', 'cereja', 'laranja', 'kiwi', 'manga']
print(f"a lista frutas = {frutas} tem tamanho = {len(frutas)}")
print(f"'laranja' in frutas = {'laranja' in frutas}")
Você pode trabalhar com tuplas, que são listas imutáveis com poucos elementos:
numeros = (1,2,3)
print(f"a tupla numeros = {numeros} tem tamanho = {len(numeros)}")
print(f"2 in numeros = {2 in numeros}")
Você pode declarar as tuplas sem os parênteses:
numeros = 1,2,3
print(f"numeros = {numeros} tem tipo = {type(numeros)}")
Você pode declarar conjuntos como na matemática, sem repetições:
numeros = {1,2,2,3,3,3,4,4,4,4,5,5,5,5,5}
print(f"numeros = {numeros} tem tipo = {type(numeros)} e tamanho = {len(numeros)}")
Conjuntos têm métodos próprios:
a = {1,2,3,4,5}
b = {4,5,6,7,8}
print(f"A união de 12345 com 45678 = {a.union(b)}")
print(f"A interseccão de 12345 com 45678 = {a.intersection(b)}")
print(f"A diferença de 12345 com 45678 = {a.difference(b)}")
print(f"A diferença de 45678 com 12345 = {b.difference(a)}")
print(f"A diferença simétrica de 12345 com 45678 = {a.symmetric_difference(b)}")
você pode usar diversos tipos de operações de comparação:
a = 10; b = 5; print(f"a = {a}, b = {b}")
print_eval("a < b")
print_eval("a <= b")
print_eval("a > b")
print_eval("a >= b")
print_eval("a == b")
print_eval("a != b")
você pode usar diversos tipos de operações de logica:
a = 10; b = 5;
print(f"a = {a}, b = {b}")
print_eval("(a > 11 or b <= 5)")
print_eval("(a > b and b < 15)")
print_eval("(a > 11 and b < 11)")
você pode usar diversos tipos de operações bitwise:
binario = lambda x : bin(x)[2:].zfill(4)
a = 10; ba = binario(a)
print(f"a = {a} (base 10) = {ba} (base 2)")
b = 12; bb = binario(b)
print(f"b = {b} (base 10) = {bb} (base 2)")
print("----")
print(ba, "(a)")
print(bb, "(b)")
print("----")
print(binario(a & b), "(&)")
print(binario(a | b), "(|)")
print(binario(a ^ b), "(^)")
print("----")
print_eval("a & b")
print_eval("a | b")
print_eval("a ^ b")
print_eval("~a")
print_eval("a << 2")
print_eval("a >> 2")
Você pode alterar o fluxo de execução do programa com a estrutura de seleção if:
a = 10; b = 5;
print(f"a = {a}, b = {b}")
if a > b:
print("a > b")
else:
print("a <= b")
você pode usar a estrutura de seleção match para comparar os valores de variáveis com literais ou outras variáveis:
a = 2
print(f"a = {a}")
match a:
case 1:
print("a igual a 1")
case 2:
print("a igual a 2")
case _:
print("a desconhecido")
Você pode usar a estrutura de repetição while até que uma condição seja atendida:
i = 0
while i < 3:
print(i)
i += 1
Você pode usar a estrutura de repetição for para percorrer iteráveis:
for i in range(-1,-4,-1):
print(i)
Você pode usar a estrutura de excessão try... except para tratar erros:
try:
print(xyz)
except:
print("xyz não existe")
Talvez você precise de realizar uma tarefa inúmeras vezes, como por exemplo imprimir uma mensagem na tela.
Então você pode criar uma função para isso:
def imprimir_mensagem(mensagem):
print(mensagem)
imprimir_mensagem("Esta é uma mensagem")
imprimir_mensagem("Esta é outra mensagem")
imprimir_mensagem("Mensagens usando a função 'imprimir_mensagem'")
As funções podem receber e retornar valores.
def somar_numeros(a, b):
return a + b
soma = somar_numeros(1, 2)
print("soma =", soma)
Você pode criar classes para agrupar dados e comportamentos em um mesmo objeto.
class Animal:
def __init__(self, nome='indeterminado', tipo='indeterminado', patas=0, asas=0):
self.nome = nome
self.tipo = tipo
self.patas = patas
self.asas = asas
def imprimir(self):
print(f"{self.nome} é um {self.tipo}")
print(f"Tem {self.patas} patas" if self.patas > 0 else "Não tem Patas")
print(f"Tem {self.asas} asas" if self.asas > 0 else "Não tem Asas")
class Humano(Animal):
def __init__(self, nome):
super().__init__(nome, 'humano', 2)
class Gato(Animal):
def __init__(self, nome):
super().__init__(nome, 'gato', 4)
class Cachorro(Animal):
def __init__(self, nome):
super().__init__(nome, 'cachorro', 4)
class Passaro(Animal):
def __init__(self, nome):
super().__init__(nome, 'pássaro', 2, 2)
roberto = Humano("Roberto")
roberto.imprimir()
print()
felix = Gato("Felix")
felix.imprimir()
print()
scooby = Cachorro("Scooby")
scooby.imprimir()
print()
piupiu = Passaro("Piupiu")
piupiu.imprimir()
A classe Animal herda a classe object.
Os métodos das classes objects e Animal podem ser obtidos com a função dir().
metodos_object = dir(object)
print("Metodos da classe 'object'")
print(metodos_object)
print()
metodos_animal = dir(Animal)
print("Metodos da classe 'Animal'")
print(metodos_animal)
Os métodos da classe Animal que não existem na classe object podem ser obtidos com o uso da função intersection() dos conjuntos set().
an = set(dir(Animal))
ob = set(dir(object))
dif = [x for x in an.difference(ob)]
print(dif)
Os métodos da classe Animal que não existem na classe object podem ser obtidos na diferença em dif que não são métodos dunder, iniciados e terminados por "__".
dif = [x for x in dif if not (x.startswith('__') and x.endswith('__'))]
print(dif)
A linguagem Python é vasta, principalmente porque você poderá agregar dezenas ou mesmo centenas de novos pacotes aos seus aplicativos, descobrindo e assimilando os comandos de que precisará para executar cada uma das instruções necessárias à medida que for evoluindo em seus programas e sistemas, absorvendo mais instruções e recursos.
A linguagem Python é interpretada e existem diferentes Programas-Interpretadores da linguagem, como o Python Oficial (www.python.org) e o Anaconda (www.anaconda.com).
O Programa-Interpretador é arquivo-executável chamado a partir da linha de comando do CLI do SO (Sistema-Operacional) e que roda o interpretador da linguagem Python.
Os diferentes Programas-Interpretadores rodam, mantendo total compatibilidade de sintaxe e semântica da linguagem, na maioria dos SOs de computadores clientes e servidores existentes: Windows, Linux, Mac etc.
Os Programas-Interpretadores têm dois modos de funcionamento: Modo-Interativo e Modo-Lote.
Os Scripts-Python são os programas escritos em Python, geralmente disponibilizados a partir de arquivos-texto com extensão ".py". Estes scripts funcionam com todos Programas-Interpretadores de modo uniforme, sem a necessidade de adaptações específicas.
Também, existem programas GUI (Graphical User Interface, ou Interface Gráfica de Usuário) que permitem grande interatividade do programador com o Python, como o MS Visual Studio, MS VSCode, o Jupyter-Lab, o Jupyter Notebook e sites como o Kaggle.
Utilizaremos alguns termos-chave no curso a fim de facilitar a compreensão do conteúdo.
Roberto Teixeira
Betobyte
Cientista de Dados
CIEDA
cieda.com.br
roberto@cieda.com.br
Carlos Delfino
Arduino
Cientista de Dados
Basicão da Eletrônica
www.carlosdelfino.eti.br
consultoria@carlosdelfino.eti.br
O Python foi concebido no final de 1989 por Guido van Rossum no CWI - Research Institute for Mathematics and Computer Science in the Netherlands (Instituto de Pesquisa Nacional para Matemática e Ciência da Computação nos Países Baixos), como um sucessor da linguagem ABC, capaz de tratar exceções e prover interface com o sistema operacional Amoeba através de scripts.
Python foi feita com base na linguagem ABC, possui parte da sintaxe derivada do C, compreensão de listas, funções anônimas e função map de Haskell. Os iteradores foram baseados na Icon, tratamentos de exceção e módulos na Modula-3, expressões regulares na Perl.
Também da CWI, a linguagem ABC era mais produtiva que C, ainda que com o custo do desempenho em tempo de execução. Mas ela não possuía funcionalidades importantes para a interação com o sistema operacional, uma necessidade do grupo. Um dos focos primordiais de Python era aumentar a produtividade do programador.
Em fevereiro de 1991, Van Rossum publicou o código do Python, rotulado com a versão 0.9.0, para alt.sources.
Já estavam presentes neste estágio de desenvolvimento classes com herança, tratamento de exceção, funções e os principais tipos de dados (list, dict, str etc).
O sistema de módulos emprestado do Modula-3, uma linguagem-conceito da época, tornou-se uma das principais unidades de programação do Python.
Em 1994 comp.lang.python, o principal fórum de discussão de Python, foi formado, marcando um marco no crescimento da base de usuários do Python.
Python atingiu a versão 1.0 em janeiro de 1994. Foram incluídas as ferramentas de programação funcional lambda, map, filter e reduce.
A última versão lançada enquanto Van Rossum estava no CWI foi Python 1.2. Em 1995, Van Rossum continuou seu trabalho em Python na Corporation for National Research Initiatives (CNRI) em Reston, Virgínia, de onde lançou várias versões.
Na versão 1.4, o Python havia adquirido vários novos recursos. Entre eles, destacam-se os argumentos nomeados em funções e métodos e o suporte interno para números complexos.
Python 2.0, lançado em outubro de 2000, introduziu a compreensão de listas e introduziu um coletor de lixo capaz de coletar ciclos de referência.
Com o Python 2.1 sua licença foi renomeada para Python Software Foundation License e todo o código, documentação e especificações, adicionadas desde o lançamento alfa do Python 2.1 em diante, tornaram-se de propriedade da Python Software Foundation (PSF), uma organização sem fins lucrativos formada em 2001.
O lançamento incluiu uma mudança na especificação da linguagem para suportar escopos aninhados e escopos estáticos.
O Python 2.2 foi lançado em dezembro de 2001 unificando os tipos e classes do Python em uma hierarquia, tornando o modelo de classes do Python - pura e consistentemente - orientado a objetos. Também foram adicionados geradores inspirados no Icon.
O Python 2.5 foi lançado em setembro de 2006 e introduziu a instrução with, que inclui um bloco de código dentro de um gerenciador de contexto para, por exemplo, adquirir um bloqueio antes que o bloco de código seja executado e liberar o bloqueio posteriormente, ou abrir um arquivo e depois fechando-o, e também estabelecendo uma sintaxe try/finally comum.
O Python 2.6 foi lançado para coincidir com o Python 3.0 e incluiu alguns recursos dessa versão, bem como um modo de "avisos" que destacava o uso de recursos que foram removidos no Python 3.0.
O Python 2.7 coincidiu e incluiu recursos do Python 3.1, que foi lançado em 26 de junho de 2009. Os lançamentos paralelos 2.x e 3.x cessaram e o Python 2.7 foi o último lançamento na série 2.x. Em novembro de 2014, foi anunciado que o Python 2.7 seria suportado até 2020, e os usuários foram incentivados a migrar para o Python 3 o mais rápido possível.
Uma versão final, 2.7.18, ocorreu em 20 de abril de 2020 e incluiu correções para bugs críticos e bloqueadores de lançamento, e isso marcou o fim da vida útil do Python 2.
O Python 3.0 foi lançado em 3 de dezembro de 2008.
Ele foi projetado para corrigir falhas de design fundamentais na linguagem. As alterações necessárias não puderam ser implementadas mantendo total compatibilidade com versões anteriores com a série 2.x, exigindo um novo número de versão principal.
O princípio orientador do Python 3 era "reduzir a duplicação de recursos removendo formas antigas de fazer as coisas".
O Python 3.0 foi desenvolvido com a mesma filosofia das versões anteriores.
No entanto, como o Python acumulou maneiras novas e redundantes de programar a mesma tarefa, o Python 3.0 enfatizou a remoção de construções e módulos duplicados, de acordo com o Zen do Python: "Deve haver uma - e de preferência apenas uma - maneira óbvia de fazer isso".
No entanto, o Python 3.0 permaneceu uma linguagem multiparadigma.
Os programadores ainda poderiam seguir os paradigmas de programação orientada a objetos, estruturada e funcional, dentre outros paradigmas, mas com escolhas tão amplas, os detalhes deveriam ser mais óbvios no Python 3 do que no Python 2.
A linguagem de programação Python é conhecida por sua simplicidade e versatilidade, sendo amplamente utilizada tanto para desenvolvimento de aplicativos desktop quanto para aplicações em servidores-web. Este texto oferece um guia conciso sobre a instalação do Python e explora suas funcionalidades básicas, bem como as possibilidades ampliadas por meio da importação de pacotes adicionais.
O processo de instalação do Python é bastante simples e fácil, começa com o download do instalador oficial disponível no site Python.org, no endereço https://python.org/downloads. Utilizaremos o Python Oficial como base de produção. O que serve ao Python Oficial, serve a outros Programas-Interpretadores.
A instalação é direta, guiada por um conjunto de instruções claras que acompanham o instalador.
Um dos passos cruciais durante a instalação é a adição do diretório do Python ao "PATH" do sistema operacional. Esta ação é fundamental porque permite que os aplicativos sejam localizados e executados pelo sistema operacional sem a necessidade de especificar o caminho completo para o executável do Python.
Após a instalação, o usuário se depara com o Python em sua forma mais básica, que apesar de limitada em termos de interação com o usuário (suportando basicamente os comandos input para entrada de dados e print para saída), serve como um ponto de partida robusto para programação geral. Essas funcionalidades são adequadas para Scripts-Python simples e automações que não requerem interfaces gráficas complexas ou manipulação avançada de dados.
Para executar o Python inicie o Prompt-SO (operating system shell, ou concha do sistema operacional), como por exemplo o cmd do Windows.
Para aqueles que necessitam de mais recursos, o Python oferece a possibilidade de estender suas capacidades por meio da importação de pacotes. Esses pacotes podem ser facilmente adicionados e integrados ao Python, enriquecendo a linguagem com novas funcionalidades para entrada, operação e saída de dados. Com esses pacotes, desenvolvedores podem criar interfaces mais ricas e interativas, que são essenciais para aplicações mais complexas.
Além do desenvolvimento de Aplicativos-Desktop, o Python também se destaca no desenvolvimento de back-end para sistemas web. Com frameworks como Django e Flask, o Python permite o desenvolvimento de aplicativos servidores robustos, capazes de gerenciar a retaguarda de sistemas-web complexos. Esses frameworks oferecem ferramentas poderosas que facilitam o desenvolvimento rápido e seguro de aplicações web, incluindo funcionalidades como autenticação de usuários, gestão de sessões, e interação com bases de dados.
Python é uma ferramenta extremamente versátil e acessível para programadores de todos os níveis. Desde tarefas de programação básica até o desenvolvimento de sistemas complexos para a web, o Python se adapta às necessidades do usuário. A facilidade de instalação e a vasta gama de pacotes disponíveis permitem que qualquer um comece rapidamente e expanda suas habilidades conforme necessário. Graças à sua natureza aberta e sua comunidade ativa, Python continua a ser uma escolha popular entre programadores ao redor do mundo.
Python é uma linguagem interpretada e por isso você pode economizar um tempo considerável durante o desenvolvimento, uma vez que não há necessidade de compilação e vinculação (linking).
O programa principal do Python é o Programa-Interpretador, o próprio Python, presente na pasta de instalação e responsável pela executação de instruções e scripts da linguagem.
Inicie o Prompt-SO.
C:\>
Vá para o diretório de trabalho.
C:\>cd cieda [ENTRA]
Para executar o Python no Modo-Interativo, digite "Python" sem argumentos no Prompt-SO e pressione a tecla [ENTRA].
C:\cieda>Python [ENTRA]
Quando o Python é executado sem argumento entra no Modo-Interativo, disponibilizando o Prompt-Python, para entrada e execução interativa das instruções digitadas pelo programador no prompt.
>>>
O Prompt-Python funciona de modo semelhante ao Prompt-SO, você comandas as instruções e pressiona [ENTRA].
Repare nas 3 setas >>> utilizadas para navegação no prompt.
No Modo-Interativo o programador digita no Prompt-Python os comandos com instruções da linguagem e pressiona a tecla [ENTRA] para executá-los.
>>>10 + 5 [ENTRA]
15
No exemplo acima, o Prompt-Python é usado como simples calculadora, onde o programador digita a instrução de soma dos valores 10 e 5 e pressiona [ENTRA] para executá-la, apresentando o resultado de 15 logo abaixo no Console-Python.
Como o Programa-Interpretador pode ser usado interativamente, é fácil experimentar diversas características da linguagem, como o programador escrever programas “descartáveis”, ou testar funções em um desenvolvimento de baixo para cima (bottom-up). É também uma calculadora bastante útil quando você precisa realizar cálculos matemáticos, principalmente os mais complexos.
As instruções dos comandos do programador, digitadas no Prompt-Python, são interpretadas em tempo real, assim que são digitadas e executadas com a tecla [ENTRA]. O resultado é impresso no console de saída do Python, ou armazenado em uma variável para uso nas instruções seguintes.
No Modo-Lote o Programa-Interpretador é chamado e executado acompanhado com o nome de um Arquivo-Python (com extensão ".py"), que é aberto, lido e o Script-Python carregado, interpretado e executado. Ao término do Script-Python, o Programa-Interpretador é finalizado, sem que o modo interativo seja disponibilizado ao utilizador.
As instruções contidas nos Arquivos-Python são interpretadas sequencialmente, linha por linha, executadas na ordem em que estão declaradas no arquivo.
Se o programador tiver carregado o Python no Modo-Interativo, poderá executar um programa a partir do Prompt-Python, em Modo-Lote, retornando o controle ao Prompt-Python após o programa ser executado.
Python é extensível! É fácil adicionar pacotes com módulos contendo métodos e atributos para serem utilizados diretamente no Programa-Interpretador no Modo-Interativo ou no Modo-Lote, seja para desempenhar operações críticas em máxima velocidade com código C integrado, ou para vincular programas Python a bibliotecas que só estejam disponíveis em formato binário (como uma biblioteca gráfica de terceiros).
Você pode vincular o Programa-Interpretador a uma aplicação escrita em outra linguagem, como C, e utilizá-la como linguagem de comandos ou extensão para esta aplicação.
O Programa-Interpretador, presente no diretório de instalação, ao ser executado, carrega uma Máquina-Virtual que disponibiliza o Prompt-Python em Modo-Interativo, onde o programador digita seus comandos com instruções da linguagem, ou roda um Arquivo-Python em Modo-Lote.
A Máquina-Virtual é a camada de código-executável do Python com as funcionalidades básicas da linguagem, abaixo da camada do interpretador, rodando as instruções comandadas em lote em programas contidos nos Arquivos-Python, no Modo-Lote, ou com o programador digitando as instruções no Prompt-Python, no modo-interativo.
O fluxo a seguir é do Prompt-SO (prompt do sistema operacional), passando pelo inicializador do Python, que direciona para o Modo-Interativo ou Modo-Lote, e depois para o interpretador, que executa os comandos na máquina virtual.
Vamos analisar cada passo:
Se o Programa-Interpretador for executado recebendo como argumento o nome de um arquivo com Extensão-Python, irá rodar as instruções presente neste arquivo e encerrar a execução do Python.
Se não receber argumentos, a Máquina-Virtual do Programa-Interpretador irá iniciar o Modo-Interativo, disponibilizando o Prompt-Python para entrada de Instruções-Python pelo programador.
O Programa-Interpretador pode ser executado no Modo-Interativo simplesmente clicando-se no ícone presente no diretório de instalação do Python, usando a interface gráfica do SO, ou sendo iniciado a partir do prompt-SO.
Usando o cmd do Windows:
> python [ENTRA]
O símbolo > indica o Prompt-SO.
O Programa-Interpretador do Python é executado pelo SO, a Máquina-Virtual é carregada, disponibilizando o Prompt-Python para o programador digitar os comandos com Instruções-Python.
>>>
O símbolo >>> indica que o prompt-Python está disponível e pronto para entrada de comandos com as instruções da linguagem pelo programador.
O Prompt-Python, prompt de comandos do Python, permite a digitação de instruções pelo programador com o teclado e a execução de instruções sendo disparadas com a tecla [ENTRA].
Assim, o programador pode desenvolver interativamente seu aplicativo, incorporando posteriormente os comandos digitados em um Arquivo-Python, formando o Script-Python final.
Se a instrução do comando exigir mais de uma linha, por exemplo a instrução for, o interpretador solicitará passo a passo as linhas seguintes até a instrução ser completada.
Digite no Prompt-Python:
>>> for i in [1,2,3]: [ENTRA]
O interpretador apresentará 3 pontos indicando que está esperando a próxima instrução do comando:
...
Digite " print(i)". O recuo é necessário para o bloco da instrução for.
>>> print(i) [ENTRA]
O Prompt-Python apresentará novamente 3 pontos indicando que está esperando a próxima instrução do comando:
...
Não havendo mais instruções para o bloco for, pressione [ENTRA]:
... [ENTRA]
O bloco acima, com uma instrução apenas, será executado e imprimirá o resultado no console:
1
2
3
Python é uma linguagem de programação de alto nível, amplamente conhecida por sua simplicidade e legibilidade do código.
Foi projetada por Guido van Rossum e lançada pela primeira vez em 1991, e suporta múltiplos paradigmas de programação, incluindo programação imperativa, orientada a objetos e funcional.
Python é conhecida por sua filosofia de "Zen of Python", que enfatiza a importância da legibilidade do código e a simplicidade.
Com uma grande biblioteca padrão e suporte extensivo para módulos e pacotes externos, a linguagem Python é utilizada em uma ampla gama de aplicações, de scripts simples a sistemas.
Vamos explorar os principais tipos de comandos e instruções nativos que compõem a linguagem:
Em linguagens de programação, literais são notações no código fonte que representam valores fixos, nativos dos tipos primitivos da linguagem, chamados de constantes e usados para valores independentes de função.
Os literais são usados para inicializar variáveis ou constantes com valores específicos diretamente no código.
Aqui está uma explicação sobre como literais são definidos em geral e os tipos comuns de literais que você pode encontrar na maioria das linguagens de programação:
No Python os dados são objetos de diferentes tipos.
Objetos são instâncias na memória do computador, de diferentes classes.
As classes são estruturas contendo atributos e métodos.
Os tipos de dados básicos integrados ao Python são:
Python oferece coleções incorporadas aos tipos de dados nativos:
Os dados de diferentes tipos são normalmente atribuidos a variáveis.
As variáveis são identificadores que são usadas para armazenar valores de diferentes tipos de dados, criadas no momento em que valor são atribuidos a elas.
No Python são normalmente escritas com nomes significativos e descritivos, com grafia usando letras minúsculas e sem espaços, algumas vezes utilizando o caracter _ (traço baixo ou underline).
O python suporta uma variedade de operações aritméticas, de comparação, lógica e atribuição, envolvendo operandos conectados por operadores.
Os operandos são os termos unitários ou compostos de uma expressão utilizando os operadores.
Python suporta uma variedade de operadores:
Os controles de fluxo permitem que o Python execute instruções condicionais e loops:
As funções permitem que o Python execute código com diferentes argumentos e retornos:
O tratamento de exceções permite que o Python execute código para tratar erros:
As importações de pacotes permitem que o Python importe módulos e bibliotecas:
A programação orientada a objetos (POO) permite que o Python construa classes e objetos:
As compreensões permitem que o Python construa listas, dicionários e conjuntos usando-se coleções de listas, tuplas, dicionários e conjuntos:
Os iteradores permitem a criação de objetos que permitem iteração sobre sequências de itens, e geradores que possam operar sem a necessidade de armazená-los completamente na memória.
Pacotes são basicamente um conjunto de módulos com programas contidos em Arquivos-Python (arquivos arquivos-texto com extensão ".py") contendo objetos de classes com atributos e métodos próprios, provendo alguma funcionalidade comum, e que podem ser usados em outros programas. Um pacote (framework ou biblioteca) é basicamente um módulo que contém um conjunto de módulos e recursos.
Os pacotes são uma maneira de estruturar o “espaço de nomes” dos módulos Python, usando “nomes de módulo com pontos”. Por exemplo, o nome do módulo A.B designa um submódulo chamado B, em um pacote chamado A. Assim como o uso de módulos evita que os autores de módulos diferentes tenham que se preocupar com nomes de variáveis globais, o uso de nomes de módulos com pontos evita que os autores de pacotes com muitos módulos, como NumPy ou Pillow, tenham que se preocupar com os nomes dos módulos uns dos outros.
Ao sair e entrar de novo no Programa-Interpretador, as definições de funções e variáveis são perdidas e, portanto, para escrevermos um programa maior, será mais eficiente usar um editor de textos para preparar as instruções em um script e executá-lo usando o arquivo como entrada para o Programa-Interpretador.
O Interpretador, ao ser executado recebendo como argumento o nome de um Arquivo-Python, rodará as instruções contidas no script do arquivo.
Se o programa se torna ainda maior, é uma boa prática dividi-lo em arquivos menores, para facilitar a manutenção.
Também é preferível usar um arquivo separado para uma função que você escreveria em vários programas diferentes, para não copiar a definição de função em cada um deles.
Para permitir isso, o Python tem uma maneira de colocar as definições em um arquivo e então usá-las em um script ou em uma execução interativa do Interpretador.
Tal arquivo é chamado de pacote de módulos; definições de um módulo podem ser importadas para outros módulos, ou para o módulo principal (a coleção de variáveis a que você tem acesso num script executado como um programa e no modo interativo).
Um módulo é um arquivo contendo definições e instruções Python, onde o nome do arquivo é o nome do módulo acrescido do sufixo ".py".
Dentro de um módulo, o nome do módulo (como texto) está disponível como o valor da variável global __name__.
Digite no Prompt-SO:
> python nome-do-app.py [ENTRA]
onde nome-do-app.py é o nome do Arquivo-Python contendo as instruções do programa.
Existem diversos pacotes populares que estendem o Python com novos módulos.
Os pacotes são conjuntos de módulos que podem ser instalados na plataforma do Python.
Os módulos são os componenentes dos pacotes Python e disponibilizam novas propriedades e novos métodos.
Pacotes e módulos são importados nas instruções da cláusula import, assim como módulos individuais dentro dos pacotes.
Os pacotes são instalados com o programa PIP no shell do OS e são importados para utilização dos módulos pelo Interpretador.
A instalação de pacotes é feita com o comando install
A importação de pacotes e módulos é realizada com o comando import.