Slide 1 Por que Python ? Slide 2 Slide 3 Slide 4 Slide 5

Propaganda
Slide 1
Por que Python ?
-
O Python é uma linguagem de programação dinâmica de altíssimo nível e orientada a objetos que pode ser
utilizada no desenvolvimento de qualquer tipo de aplicação, científica ou não.
O Python oferece suporte à integração com outras linguagens e ferramentas e é distribuído com uma vasta
biblioteca padrão.
Possui uma sintaxe simples e clara, podendo ser aprendida em poucos dias. O uso do Python é
frequentemente associado com grandes ganhos de produtividade e ainda, com a produção de programas de
alta qualidade e de fácil manutenção.
Slide 2
A linguagem de programação Python começou a ser desenvolvida no final dos anos 80, na Holanda, por Guido van
Rossum. Guido foi o principal autor da linguagem e continua até hoje desempenhando um papel central no
direcionamento da evolução.
Slide 3
Dentre as várias características da linguagem que a tornam interessante para computação científica, destacam-se:
Multiplataforma:
O Python pode ser instalado em qualquer plataforma computacional: desde PDAs até supercomputadores com
processamento paralelo, passando por todas as plataformas de computação pessoal.
Portabilidade:
Aplicativos desenvolvidos em Python podem ser facilmente distribuídos para várias plataformas diferentes daquela
em que foi desenvolvido, mesmo que estas não possuam o Python instalado.
Software livre: ​
O Python é software livre, não impondo qualquer limitação à distribuição gratuita ou venda de
programas.
Slide 4
Extensibilidade:
O Python pode ser extendido através de módulos,escritos em Python ou rotinas escritas em outras linguagens, tais
como C ou Fortran.
Orientação a objeto:
Tudo em Python é um objeto: funções, variáveis de todos os tipos e até módulos (programas escritos em Python) são
objetos.
Tipagem automática:
Python é uma linguagem dinamicamente tipada. Não é necessário tipar as variáveis para usá-las. O tipo de uma
variável (string, inteiro, float, etc.) é determinado durante a execução do código.
Slide 5
Código legível:
O Python, por utilizar uma sintaxe simplificada e forçar a divisão de blocos de código por meio de indentação,
torna-se bastante legível, mesmo para pessoas que não estejam familiarizadas com o programa.
Flexibilidade:
O Python já conta com módulos para diversas aplicações, científicas ou não, incluindo módulos para interação com
os protocolos mais comuns da Internet (FTP, HTTP, XMLRPC, etc.). A maior parte destes módulos já faz parte da
distribuição básica do Python.
Operação com arquivos:
A manipulação de arquivos, tais como a leitura e escrita de dados em arquivos texto e binário, é muito simplificada
no Python, facilitando a tarefa de muitos pesquisadores ao acessar dados em diversos formatos.
Slide 6
Uso interativo: evita “codifica-compila-roda”:
O Python pode ser utilizado interativamente ou invocado para a execução de scripts completos. O uso interativo
permite “experimentar” comandos antes de incluí-los em programas mais complexos, ou usar o Python
simplesmente como uma calculadora.
Quem usa
Estas e outras vantagens fizeram que grandes empresas e universidades começassem a usar Python com sucesso,
como a Philips, Industrial Light and Magic (empresa de George Lucas), que usou Python para controlar efeitos
especiais de Star Wars, a NASA, a Aliança Espacial Universal (USA), a Nokia que usa Python em seus celulares, a
Disney, os sites Google e Yahoo, entre outros.
Slide 7
The Zen of Python​
, por Tim Peters
Parte da cultura da linguagem gira ao redor de The Zen of Python, um poema que faz parte do documento "PEP 20
(The Zen of Python)"
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Readability counts.
Special cases aren't special enough to break the rules.
Errors should never pass silently.
Now is better than never.
...
Slide 8
Fundamentos da linguagem
O interpretador de Python.
O console interativo do Python possui um sistema de ajuda integrado que pode ser usado para acessar a
documentação de qualquer elemento da linguagem. O comando help() inicia a ajuda interativa.
Tipos de Objetos
Os principais tipos de objetos em Python são inteiros, floats (números reais, que o computador representa da
melhor maneira possível por meio de variações na posição do separador decimal), strings (texto), listas, tuplas e
dicionários. Pode-se transformar o tipo original de um objeto para inteiro, float ou string por meio das funções int,
float e str, respectivamente.
Delimitadores de bloco
O Python detecta os limites automaticamente pela endentação da linha - o espaço à esquerda em seu código. Todas as
instruções endentadas com a mesma distância à direita pertencem ao mesmo bolco de código. Em outras palavras, as
instruções dentro de um bolco são endentadas verticalmente.
Slide 9
Estruturas de dados
Listas
As listas formam o tipo de dados mais utilizado e versátil do Python.
Listas são definidas como uma sequência de valores separados por vírgulas e delimitada por colchetes: lista=[1,2,3].
Uma lista é uma sequência ordenada de elementos, de forma que podemos selecionar elementos de uma lista por
meio de sua posição.
Todas as contagens em Python começam em 0. Uma lista também pode possuir elementos de tipos diferentes.
Listas são mutáveis , crescem até o limite da memória.
Acesso sequencial, em fatias ou direto por índice.
Possuem diversos métodos: ​
adicionar, remover, ordenar, procurar, contar. Slide 10
Slide 11
Strings
Strings são os objetos que Python oferece para trabalhos com texto (conjuntos de caracteres). Substituem ​
char​
e
vetor de​
char. As strings em Python são seqüências imutáveis.
Os endereçamentos começam a ser contados do zero.
Crescem até o limite da memória.
Acesso sequencial, em fatias ou direto por índice Implementadas com arrays.
Principais métodos: ​
split, count, index, join, lower, upper, replace, etc. Slide 12
Slide 13
Atribuição manipula referências
Por um processo chamado “binding”, atribui-se um objeto a um nome e este nome incorpora o tipo do objeto. Assim,
para atribuirmos o valor 2, que é um inteiro, ao nome “valor1”, só precisamos fazer valor1=2, e “valor1” será
automaticamente tipado por Python como inteiro.
Para saber qual o tipo de determinado objeto, usamos a função type(x), que retorna o tipo do objeto x.
x = y​
não faz uma cópia de y.​
x = y​
faz x referenciar ao objeto que y referencia.
Para obter um novo objeto, ao invés de uma referência para um objeto existente deve-se usar o módulo c
​opy. Slide 14
Estruturas de controle
Estruturas de controle de Python incluem: estrutura de seleção (​
if, else, elif​
); estrutura de repetição (f
​
or, while​
), que itera por um container, capturando cada elemento em uma variável local dada; construção de classes
(c
​
lass​
); construção de subrotinas (d
​
ef​
); construção de escopo (w
​
ith​
), como por exemplo para adquirir um recurso.
if A instrução ​
if​
do Python é típica da maioria das linguagens procedurais. Ela ssume a forma de um teste ​
if ​
seguido
de uma ou mais testes ​
elif​
opcionais (significando ​
else​
if​
​
), e termina com um bloco e
​
lse​
opcional. A forma geral de
uma instrução i
​
f​
é a seguinte:
if <teste>:
<instruçõoes1>
elif <teste2>:
#teste if #Bloco associado <instruções2>
else:
<instruções3>
#instruções elif opcionaiis #instrução opcional Exemplo: Slide 15 while A instrução ​
while​
consiste em uma linha de cabeçalho com uma expressão de teste, um miolo com uma ou mais
instruções indentadas e uma parte ​
else​
opcional, que é executada se o controle sai do loop sem passar por uma
instrução ​
brake​
. O Python continua avaliando o teste do início e executando as instruções aninhadas na parte ​
while​
, até
que o teste retorne um valor falso:
while <teste> :
<instruções1> else:
<instruções2>
Exemplo:
#faz um loop em teste #miolo do loop #else opcional #executadas se não sai do loop com break Slide 16 for O​
loop​
for​
​
é um iterador de sequência genérico no Python: ele pode percorrer os itens de qualquer objeto sequência
ordenada. O ​
loop​
for​
​
funciona em ​
strings​
, tuplas, listas e em novos objetos que criaremos posteriormente com classes.
O​
loop​
​
f
or​
do Python começa como uma linha de cabeçalho que especifica um destino (ou destinos) de atribuição, junto
com um objeto que você queira percorrer.
O​
loop​
for​
​
também aceita um bloco ​
else​
que é executado se o ​
loop​
termina se ele encontrar uma instrução ​
break​
:
for <destino> in <objeto>
#Atribui itens do objeto ao destino <instruções> if <teste>: break
#Sai do loop, pular clausula else if <teste>: continue
#Vai para o início do loop agora else: <instruções>
#Se não atingimos uma instrução break Slide 17
Exemplos: Slide 18
Loops contadores ​
Range A função ​
range​
é independente dos ​
loops​
for​
​
. Embora seja mais frequentemente usada para gerar índices em ​
loop​
for​
​
,
você pode usá-las sempre que precisar de uma lista de inteiros.
Slide 19 FUNÇÕES
A instrução ​
def​
cria um objeto função e atribui um nome a ela. O corpo das funções geralmente contém a instrução
return​
que pode aparecer em qualquer lugar no miolo de uma função. A instrução ​
return​
é opcional; se não estiver
presente, uma função termina quando o fluxo de controle chega no final do seu miolo.
def <nome> (arg1, arg2, … , argN): <instruções> return <valor> Exemplo: Slide 20
Em Python, o significado real de uma expressão como ​
x * y ​
depende completamente dos tipos de objetos que x e y são. O Python deixa por conta
dos objetos fazer algo razoável para essa sintaxe. Esta flexibilidade, denominada ​
polimorfismo​
, é algo intencional em Python.
Se os objetos passados para uma função possuem os métodos e operadores esperados (como para X * Y), então eles são totalmente compatíveis com
a lógica da função.
Mesmo na função ​
times​
, isto significa que quaisquer dois objetos que suportem um operador * funcionarão independente do que possam ser e de
quando possam escritos. Isto revela-se uma diferença filosófica fundamental entre o Python e as linguagens tipadas estaticamente como C++ e Java.
Slide 21
Lidando com erros: Exceções
Suponhamos que você escreva um programa que realiza divisões em algum ponto, e dependendo dos dados fornecidos ao programa, o
denominador torna-se zero. Como a divisão por zero não é possível, o seu programa para, retornando uma mensagem “ZeroDivisionError: division
by zero”. Caso você queira continuar com a execução do programa apesar do erro, poderíamos solucionar o problema conforme o exposto no
exemplo:
A construção ​
try:...except​
: nos permite vericar a ocorrência de erros em partes de nossos programas e responder adequadamente a ele. o
Python reconhece um grande número de tipos de exceções, chamadas “built-in exceptions”.
Slide 22
Pacotes Úteis para Computação Cientíca​
(​
http://www.scipy.org/​
)
SciPy é um ambiente baseado em Python de software em código aberto para matemática e engenharia. Estas são algumas de seus principais pacotes:
NumPy
NumPy é o pacote fundamental para computação científica com Python. ​
Integrando o Python com rotinas numéricas escritas em uma
linguagem compilada, para obter velocidade, a extensão numPy transforma o Python em uma ferramenta de programação numérica sofisticada,
porém fácil de usar, que frequentemente pode substituir código já existente em linguagens compiladas tradicionais como FORTRAN ou C++. Ele contém entre outras funções: ●
Um poderoso objeto array N­dimensional capaz de armazenar dados de diferentes tipos em cada posição; ●
Sofisticadas funções de broadcasting que otimizam a manipulação de arrays compostos por tipos distintos de dados; ●
Otimização para álgebra linear, linear algebra, transformada de Fourier e números randômicos. Slide 23
Matplotlib
Matplotlib é uma biblioteca de diagramas e gráficos 2D que produz figuras com qualidade editorial em diversos formatos e ambientes interativos
entre plataformas. matprolib pode ser utilizado em scripts Python, MATLAB e Mathematica e aplicações para servidores web.
SciPy library
A biblioteca SciPy é um dos pacotes centrais que compoem a pilha SciPy. Ela fornece diversas rotinas amigáveis e eficazes como rotinas para
integração numérica e otimização.
Slide 24
Aplicações:
-
Modelagem matemática
Teoria de grafos
Interação com Bancos de Dados
Simulações estocásticas
Programação de sistemas
GUIs
Scripts de Internet
Jogos, imagens, IA, XML e muito mais
Slide 24
Referencias
1. ​
The Making of Python​
(em ​
inglês​
) Artima Developer. Visitado em 2007-03-22.
2. LUTZ, Mark. Aprendendo com python. 2ªed. Porto Alegre: Bookman, 2007.
https://cld.pt/dl/download/e1946c4f-499c-4961-b63a-179c2fb3526e/Livros%20Linux/Programa%C3%A7%C3%A3o/a
prendendo%20python.pdf
3. COELHO, Flávio C. Computação Científica com Python. 1ªed. Petrópolis: Edição do autor, 2007.
http://www.complex.if.uff.br/_media/python_flavio.pdf
4. ​
http://www.scipy.org/​
,​
https://www.python.org/
5. Slides de Rafael Sachetto Oliveira: ​
http://www.ufjf.br/deptocomputacao/files/2010/08/apresentacao.pdf
Download