aprendendo python na prática -...

67
Aprendendo Python na Prática Dante Moreira Zaupa Mestrando em Computação Aplicada Bolsista de Pesquisa

Upload: trantuyen

Post on 18-Jan-2019

241 views

Category:

Documents


1 download

TRANSCRIPT

Aprendendo Python na PráticaDante Moreira Zaupa

Mestrando em Computação AplicadaBolsista de Pesquisa

Introduçãoou “Não pensem besteira”

Por que usar Python?produtivo

Por que usar Python?produtivo

portável

Por que usar Python?produtivo

portável

boas práticas

Por que usar Python?

fácilprodutivo

portável

boas práticas

Por que usar Python?

fácilprodutivo

portáveldivertido

boas práticas

Outras opções

IronPython

# vai em qualquer lugar

“““ Dentro do bloco, antes do primeiro comando ”””

DOCUMENTE SEU CÓDIGODOCUMENTE SEU CÓDIGODOCUMENTE SEU CÓDIGODOCUMENTE SEU CÓDIGODOCUMENTE SEU CÓDIGODOCUMENTE SEU CÓDIGODOCUMENTE SEU CÓDIGODOCUMENTE SEU CÓDIGO

dir(eggs)

help(spam)

dir(eggs)

help(spam)

A Linguagemou “Oi, meu nome é Python.”

print “This is an EX parrot!”

print “This is an EX parrot!”

Identação/Delimitador de bloco

espaços XOR tabespaços > tab

INDENTE SEU CÓDIGOINDENTE SEU CÓDIGOINDENTE SEU CÓDIGOINDENTE SEU CÓDIGOINDENTE SEU CÓDIGOINDENTE SEU CÓDIGOINDENTE SEU CÓDIGOINDENTE SEU CÓDIGO

int 42

int

float

42

3.141592653589793238462643383279502884197169399375105820

int

float

str

42

3.141592653589793238462643383279502884197169399375105820

“Johann Gambolputty de von Ausfern- schplenden- schlitter- crasscrenbon- fried- digger- dingle- dangle- dongle- dungle- burstein- von- knacker- thrasher- apple- banger...”

int

float

str

list

42

3.141592653589793238462643383279502884197169399375105820

“Johann Gambolputty de von Ausfern- schplenden- schlitter- crasscrenbon- fried- digger- dingle- dangle- dongle- dungle- burstein- von- knacker- thrasher- apple- banger...”

[“idle”, “cleese”, “gilliam”, “jones”, “chapman”, “palin”]

int

float

str

list

dict42

3.141592653589793238462643383279502884197169399375105820

“Johann Gambolputty de von Ausfern- schplenden- schlitter- crasscrenbon- fried- digger- dingle- dangle- dongle- dungle- burstein- von- knacker- thrasher- apple- banger...”

[“idle”, “cleese”, “gilliam”, “jones”, “chapman”, “palin”]

{ 'ovelha': 'voadora', 'tigre': 'framboesa', 'papagaio': 'morto'}

int

float

str

list

dict42

3.141592653589793238462643383279502884197169399375105820

“Johann Gambolputty de von Ausfern- schplenden- schlitter- crasscrenbon- fried- digger- dingle- dangle- dongle- dungle- burstein- von- knacker- thrasher- apple- banger...”

[“idle”, “cleese”, “gilliam”, “jones”, “chapman”, “palin”]

{ 'ovelha': 'voadora', 'tigre': 'framboesa', 'papagaio': 'morto'}

tuple(42, 2.3, math.pi)

+ -/** *

%notorand

spam[3:] (até)

spam[:3] (à partir de)

spam[1:3] (intervalo)

spam[-3:] spam[:-3]

v = raw_input(<string>)

Comparandoou “O que vocês já sabem,

mas ainda não sabem que sabem”

Python def spam(parrot, eggs = []): <comando 1> <comando 2> <comando 3>

Java<modificadores> <tipo> spam(Bird parrot, List<Egg> eggs) { <comando 1> <comando 2> <comando 3> }

def spam()

def _spam()

def __spam()

def spam(eggs)

def spam(eggs = 42)

def spam(self, eggs)

def spam(*eggs)

def spam(**eggs)

Tipos Imutáveis

int

floatstr

tupleSEM

efeitos colaterais

->

Python Javaif <condição>: if (<condição>) {

<comando 1> <comando 1><comando 2> <comando 2>

elif <condição>: } else if (<condição>) {<comando 3> <comando 3><comando 4> <comando 4>

else: } else {<comando 5> <comando 5><comando 6> <comando 6>

}

Exercício

No interpretador:Um programa que receba um número e o identifique como par ou ímpar.

Python Javaif <var> == <val1>: switch (<var>) {

<comando 1> case <val1>: <comando 1>elif <var> == <val2>: break;

<comando 2> case <val2>: <comando 2>else: break;

<comando 3> default: <comando 3> }

Exercício

No interpretador:Um programa que receba um número e que informe se ele édivisível por 2, por 5, ou não édivisível por nenhum dos dois.

Python Javafor spam in range(<int>): for (int spam; spam < <int>; spam++) { <comando 1> <comando 1> <comando 2> <comando 2> <comando 3> <comando 3> } for spam in <lista>: for (<Tipo> spam : listaTipo) { <comando 1> <comando 1> <comando 2> <comando 2> <comando 3> <comando 3> }

range(<começo>, <parada>,

<passo>)

Exercício

No interpretador:Escreva um programa que exibao resultado da soma dos númerosno interavalo [0..1,000,000].

Pythonwhile <condição>: <comando 1> <comando 2> <comando 3>

Javawhile (<condição>) { <comando 1> <comando 2> <comando 3>}

Exercício

No interpretador:Use um loop pra determinar o valor máximo que um inteiropode ter, em Python.

Python Javaclass Ovelha(Mamifero): public class Ovelha extends Mamifero { <atributos> private boolean fly = True; def __init__(self, f): public Ovelha(boolean f) { self.__fly = f; this.fly = f; <outros atributos> } <métodos> <métodos> }

TUDOSÃO

CLASSESE toda classe é uma lista de seus atributos e métodos

arq = open(“jcleese.txt”, “r+”) read write read + write append (só Windows) binary

arq.close()

string = arq.read(<quantidade>)string = arq.readline()lista_strings = arq.readlines()for line in arq: print line

Leu de um arquivo?

É UMASTRING!

arq.write(“Always look on the \

bright side of life”)arq.write(“A resposta é” + \

str(42))

Arquivos só aceitam strings.

SOMENTESTRINGS

import <biblioteca>

import <biblioteca> as <nome>

from <biblioteca> import <membros>

try: <comandos>

except <exceção>: <comandos>

else: <comandos>

Indo alémOu “AGORA que fica divertido”

f = lambda x: x + “ spam”

map(f, [“eggs”, “spam eggs”])

f = <func> for <var> in <list>

exec(<string com o código>)

http://dzaupa.notapipe.org/minicurso_python/arqs/monica.pyc

Perguntas?

dante.zaupa@

gmail.com

http://dzaupa.notapipe.org/