16a aula

Propaganda
Física Computacional
1.
2.
3.
4.
5.
Python:
1.
2.
O que é, features
Instalação
1.
2.
“Calculadora”, “Hello World”,
Números complexos.
1.
2.
Operações básicas,
Slicing.
Operações básicas:
Exemplo com instruções de comparação.
Strings:
Listas - introdução
7-12-2009
[email protected]
Física Computacional - MEFT 2009/10 – P. Bicudo & P. Martins
1

O Python é uma linguagem de programação simples e
poderosa. Outras linguagens semelhantes são o Perl, Ruby ou
Java.

Funcionalidades interessantes em Python :
◦ A indentação é obrigatória nos programas, simplificando a leitura
de código a posteriori .
◦ É rápida e fácil de utilizar para escrever programas rápidos,
podendo funcionar como caixa de testes (sandbox) para códigos
mais complexos, mesmo em outras linguagens.
◦ “Batteries included”: a distribuição standard de Python já inclui
uma enorme variedade de bibliotecas com soluções prontas a
utilizar (web, regular expressions, I/O).
◦ Modularidade: o Python permite incorporar outras (shared)
libraries (módulos) escritas em linguagens compiladas como
C/C++.
◦ Corre em practicamente todos os sistemas operativos (Windows,
MacOS, Unix, Linux, OS/2,…).
O que é o Python
7-12-2009
Física Computacional - MEFT 2009/10 – P. Bicudo & P. Martins
2







Vários tipos de dados disponíveis: floats, inteiros de tamanho
ilimitado, complexos, strings, listas e dicionários.
Suporta OOP através da implementação de classes e herança.
Podemos agrupar o código em bibliotecas (“módulos” e
“pacotes”) , para maior flexibilidade.
Utilização de exceptions standard e personalizadas.
Os tipos de dados são “dynamically typed”. No entanto, é
impossível misturar tipos incompatíveis sem obter um erro
(excepção).
Gestão automática de memória (melhor que em Java).
A distribuição standard de Python já inclui um integrated
development environment (IDE) chamado IDLE, que iremos
utilizar nas próximas aulas.
Python - features
7-12-2009
Física Computacional - MEFT 2009/10 – P. Bicudo & P. Martins
3

Instalem o Python em http://www.python.org/download/
(versão 2.6.4 para Windows/Linux/MacOS).

Para quem já tiver o Python instalado, qualquer versão >=
2.4 será suficiente.

Em sistemas Linux, o Python já vem instalado por default.

Em practicamente todos os sistemas operativos, existe um
automatic installer, pelo que a tarefa é muito simplificada.

Para os próximos exemplos, podem começar o Python em
linha de comandos.
◦ Em Linux/Unix/MacOS, escrevam simplesmente “python”
◦ Em Windows, Menu Start -> Python 2.x -> Python (command-line)
Python - instalação
7-12-2009
Física Computacional - MEFT 2009/10 – P. Bicudo & P. Martins
4

Podem utilizar o Python como
“calculadora de bolso”:
>>> 3+5
8
>>> 3/4
0
>>> 3./4
0.75
>>> from math import sin
>>> sin(3.14)
0.0015926529164868282
>>> from math import pi
>>> pi
3.1415926535897931
>>> b = 2*pi
>>> sin(b)
-2.4492935982947064e-16
>>> b
6.2831853071795862

Tal como no ROOT, aqui
possuem uma “prompt”
onde podem introduzir os
comandos (>>>).

Podem recorrer a funções e
constantes definidas em
bibliotecas através da
keyword import.

O tipo de uma variável é
detectador durante a
atribuição de um valor à
mesma.

A utilização de funções é,
em primeira aproximação,
igual a C++.
Python – operações básicas
7-12-2009
Física Computacional - MEFT 2009/10 – P. Bicudo & P. Martins
5

A partir da shell de python:
◦ print “Hello World”

Se quisermos correr isto a partir de um ficheiro ():
#!/usr/bin/python
print "Hello, Python!"

Em Unix/Linux temos que dar permissões de execução ao
ficheiro
◦ chmod +x teste.py
A chamada ao ficheiro faz-se:
 ./test.py
 Em Windows, os ficheiros .py e pyw são
automaticamente corridos pelo Python.
◦ A partir da linha de comandos:
◦ python test.py

“Hello World”
7-12-2009
Física Computacional - MEFT 2009/10 – P. Bicudo & P. Martins
6

O Python suporta
nativamente números
complexos, onde a
parte imaginária é
representada pela
letra “j” ou “J”.

Podem ser escritos
através da notação
típica x +yj ou
através do
constructor do tipo
básico complex(x,y).

Os membros “real” e
“imag” são obtidos
directamente, o valor
absoluto é calculado
através da função
global “abs”.
>>> 3j + 2J
5j
>>> 3j*2J
(-6+0j)
>>> 3j*complex(0,2)
(-6+0j)
>>> 3+j*3
Traceback (most recent call last):
File "<pyshell#20>", line 1, in <module>
3+j*3
NameError: name 'j' is not defined
>>> 3+1j*3
(3+3j)
>>> a = 3+2j
>>> a.real
3.0
>>> a.imag
2.0
>>> abs(a)
3.6055512754639896
Números complexos
7-12-2009
Física Computacional - MEFT 2009/10 – P. Bicudo & P. Martins
7
a,b = False, 1
if a == True:
print "It's true"
elif b >0:
print 'b is ' + str(b) + """ which is ">" than 0 """
else:
print """A multiple line string
with lots of useless info and using several ' ' ' ' and "" ".
String only stops with 3 " """

A notar:
◦
◦
◦
◦
◦
Atribuição simultânea de valores a várias variáveis.
Variáveis booleanas.
Comparações com if, elif e else.
Três tipos de delimitadores para strings („,”,”””).
Conversão de um número inteiro para string, de modo
que o Python permita a sua soma com outras strings.
Pequeno exemplo
7-12-2009
Física Computacional - MEFT 2009/10 – P. Bicudo & P. Martins
8

Como foi visto no exemplo anterior, o Python permite a
declaração de strings através de três delimitadores:
◦ a = “uma string”
◦ b = „ outra string‟
◦ c = “”” multi-line string com 3 linhas \n\n\n “””

Para imprimir qualquer uma das strings anteriores, usa-se o
comando “print”.

Os caracteres especiais como “\n” (new line), “\t” (new tab),
etc., continuam a ser válidos aqui.

As operações com strings podem ser efectuadas como se de
um número se tratasse, com algumas restrições:
◦ A soma é permitida, a subtracção não está definida.
◦ A multiplicação por inteiros é permitida, a divisão não está definida.
Strings
7-12-2009
Física Computacional - MEFT 2009/10 – P. Bicudo & P. Martins
9
a = "Hello"
b = ' '
a+=b
c = a + 'World'
a = c.strip()
print a*2
print a
print a[0]
print a[-1]
print a[3:]
print a[:-2]
print a[2:-4]+' '+a[:2]+' '+a[-4:]
print type(a)
Hello WorldHello World
Hello World
H
d
lo World
Hello Wor
llo W He orld
<type 'str'>
O método “strip()” permite a remoção de caracteres indesejados
da string (“cleaning”). Por defeito, remove espaços no final e
caracteres de new-line como \n e \r.
Exemplo de slicing (a explicar mais tarde com listas).
Strings - exemplo
7-12-2009
Física Computacional - MEFT 2009/10 – P. Bicudo & P. Martins
10

Existem vários tipos de vectores em Python:
◦ lists (mutáveis).
◦ tuples (imutáveis).
◦ dicionários (keys imutáveis, dados mutáveis).
a = [4,5,3]
print a
print a[0]
print a[1:]
b = []
print b
b.append(4)
print b
b.append(a)
print b
print type(b)


[4, 5, 3]
4
[5, 3]
[]
[4]
[4, [4, 5, 3]]
<type 'list'>
A indexação e slicing
são suportadas.
Listas podem conter
listas!:

Simplifidade para
definir operações
com matrizes.
Listas
7-12-2009
Física Computacional - MEFT 2009/10 – P. Bicudo & P. Martins
11

Para saber o tamanho de uma lista ou string:
◦ len(VARIAVEL).

Para alterarmos um elemento de uma lista,
usamos o seu índice (ex: a[2] = 3).
◦ Isto não funciona com strings.

Para criarmos uma lista de inteiros começando
em 0 e terminando em len(VARIAVEL) – 1:
◦ range(len(VARIAVEL)).
a = [4,5,3]
print a
print len(a)
print range(len(a))
i = 0
while i < len(a):
print a[i]
i+=1
[4, 5, 3]
3
[0, 1, 2]
4
5
3
listas e strings - semelhanças
7-12-2009
Física Computacional - MEFT 2009/10 – P. Bicudo & P. Martins
12

O Python é case-sensitive como o C/C++.

Os comentários são feitos linha a linha com “#”.

Linhas vazias são ignoradas pelo compilador de
Python.

Em modo interactivo, podem aceder ao resultado da
última operação através da variável “_”.

Analogamente ao “system(“Pause”) utilizado em
Windows para que a janela não feche imediatamente,
podem usar:
raw_input("\nPrima uma tecla para sair.")
Python - dicas
7-12-2009
Física Computacional - MEFT 2009/10 – P. Bicudo & P. Martins
13





Mutáveis e imutáveis.
Dicionários.
Introspecção.
Funções.
Classes, OOP.

Podem trazer o laptop para a aula teórica, não
sendo obrigatório. Os exemplos serão treinados
na aula prática.
Próximas aulas
7-12-2009
Física Computacional - MEFT 2009/10 – P. Bicudo & P. Martins
14
Download