68

$whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

  • Upload
    doxuyen

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Page 1: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof
Page 2: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

$whoamiMaridoPai de um adolescente e 8 gatos Ok, 3 cães também...Apaixonado por programação (desde os 12)CinéfiloBacharel em Informática (Unioeste, 1999)Mestre em Ciência da Computação (UFSC, 2002)Professor na UTFPR-TD (desde 2009)

Prof. Fabio Alexandre Spanhol, M.Sc. 2

Page 3: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

3Prof. Fabio Alexandre Spanhol, M.Sc.

é uma linguagem interpretada, interativa, funcional, orientada a objetos, dinamicamentetipada e com gerenciamentoautomático de memória

Similar, em certos aspectos, a Perl, Ruby, Scheme, Smalltalk e Tcl

Page 4: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Entre todas as linguagens que aprendi, Python é a que menos interfere entre mim e o problema. É a mais efetiva para traduzir pensamentos em ações.

Eric Raymond

Prof. Fabio Alexandre Spanhol, M.Sc. 4

Page 5: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Life is Better Without Braces.

Bruce Eckel

Prof. Fabio Alexandre Spanhol, M.Sc. 5

Page 6: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Python has been an important part of Googlesince the beginning, and remains so as the system grows and evolves. Today dozens of Google engineers use Python, and we're looking for more people with skills in this language.

Peter Norvik, director of search quality at Google, Inc

Prof. Fabio Alexandre Spanhol, M.Sc. 6

Page 7: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Python is everywhere at ILM. It's used to extend the capabilities of our applications, as well as providing the glue between them. Every CG image we create has involved Pythonsomewhere in the process.

Philip Peterson, Principal Engineer, Research & Development, Industrial Light & 

Magic

Prof. Fabio Alexandre Spanhol, M.Sc. 7

Page 8: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

8Prof. Fabio Alexandre Spanhol, M.Sc.

Page 9: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

9Prof. Fabio Alexandre Spanhol, M.Sc.

Guido van Rossum é referido pela comunidade python, desde 1995, como Benevolent Dictator For Life(BDFL)

De dezembro de 2005 a 2012 Guido trabalhou na Google, dedicando 50% do seu tempo com a linguagem 7/12/2012 passou a trabalhar na

Dropbox www.python.org/~guido neopythonic.blogspot.com/

Page 10: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

10Prof. Fabio Alexandre Spanhol, M.Sc.

Não veio da cobra!"Over six years ago, in December 1989, I was looking for a "hobby" programming project that would keep me occupied during the week around Christmas. My office ... would be closed, but I had a home computer, and not much else on my hands. I decided to write an interpreter for the new scripting language I had been thinking about lately: a descendant of ABC that would appeal to Unix/C hackers. I chose Python as a working title for the project, being in a slightly irreverent mood (and a big fan of Monty Python´s Flying Circus)”.

Page 11: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Prof. Fabio Alexandre Spanhol, M.Sc. 11

Page 12: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

NADA!

Python foi desenvolvido como um projeto open source, sem fins lucrativos e gerenciado pela PSF(Python Software Foundation)

12Prof. Fabio Alexandre Spanhol, M.Sc.

Page 13: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Prof. Fabio Alexandre Spanhol, M.Sc. 13

Para obter o interpretador Python acessar http://www.python.org/download/ VersõesPython 2.7.5 foi liberada em 15 de maio de 2013Python 3.3.2* foi liberada em 15 de maio de 2013

Page 14: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

14Prof. Fabio Alexandre Spanhol, M.Sc.

http://www.python.org/about/success/GoogleNASAYahooInfoSeekMCI WorldcomIBM HigwayIndustrial Light and MagicAstraZenecaHoneywell...

Page 15: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Governo FederalPetrobrasSerproEmbratelGlobo.comStarOneConectivaCPqDAsyncHaxentUTFPR...

15Prof. Fabio Alexandre Spanhol, M.Sc.

Page 16: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

16Prof. Fabio Alexandre Spanhol, M.Sc.

Vários projetos da comunidade Software Livre

BlenderOpenOfficeZope/PloneMoinMoinMailmanBitTorrentChandlerGimpPloneDjangoOpenERPinVesalius

Page 17: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Canivete suíçoWeb e Internet DatabaseGUIsCientífico e processamento numéricoEducaçãoProgramação de rede Construção e teste de softwareDesenvolvimento de jogos e renderização3DOnde mais sua imaginação mandar!

17Prof. Fabio Alexandre Spanhol, M.Sc.

Page 18: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

18Prof. Fabio Alexandre Spanhol, M.Sc.

Page 19: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Prof. Fabio Alexandre Spanhol, M.Sc. 19

Page 20: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

20Prof. Fabio Alexandre Spanhol, M.Sc.

Unix: HP-UX, Solaris ...Linux (frequentemente pré-instalada)Mac OSX (sempre pré-instalada)Windows: 9x, ME, 2K, XP, Vista, Seven

(ctypes, win32all)Apple iPhoneGoogle Android

Page 21: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

SIM: Compilação Híbrida!

Como ficou “famoso” com Java, programas Pythonsão compilados, porém para uma linguagemintermediária, destinada a um interpretador Isola Python de muitas das excentricidades das

máquinas reais na qual ele roda

provê um nível de portabilidade

21Prof. Fabio Alexandre Spanhol, M.Sc.

Page 22: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

22Prof. Fabio Alexandre Spanhol, M.Sc.

De altíssimo nível e poderosaElegante, com sintaxe

simples e concisaFácil de aprender,

“cabe” no seu cérebro !MultiparadigmaFuncional, Procedural e Orientado a ObjetosPossui suporte nativo a

estruturas de dados complexas

Page 23: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

23Prof. Fabio Alexandre Spanhol, M.Sc.

Page 24: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Prof. Fabio Alexandre Spanhol, M.Sc. 24

Page 25: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Prof. Fabio Alexandre Spanhol, M.Sc. 25

Page 26: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Prof. Fabio Alexandre Spanhol, M.Sc. 26

Page 27: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Código é muito mais lido que escrito!

Readability importa! (muito)

Python te ajuda a escrever código mais legível!

Prof. Fabio Alexandre Spanhol, M.Sc. 27

Page 28: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Prof. Fabio Alexandre Spanhol, M.Sc. 28

Extensa biblioteca padrão

Um módulo para o que você precisar

sys, random, re, datetime, calendar, csv, os, webbrowser, string, urlib, tkinter, codecs, pickle, types, array, mutex, queue, zlib, gzip, md5, thread, socket, email, xml.dom, locale, etc.

Page 29: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

29Prof. Fabio Alexandre Spanhol, M.Sc.

Page 30: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

33 palavras reservadas Java tem 53 e C# 77 and except nonlocal False as finally not None assert for or True break from pass class global raise continue if return def import try del in while elif is with else lambda yeld

30Prof. Fabio Alexandre Spanhol, M.Sc.

Page 31: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Prazer em lhe conhecer!Cython onde existir um compilador C ISO/IEC 9899:1990Jython máquina virtual JavaPyPy Python implementado em PythonPython for .NET [Brian Lloyd], IronPython (da M$)Python for DelphiLunaticPython interoperando com LuaRuby/Python em Ruby importar módulos Python)

31Prof. Fabio Alexandre Spanhol, M.Sc.

Page 32: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Prof. Fabio Alexandre Spanhol, M.Sc. 32

Page 33: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Programas maiores codificados em arquivos (scripts)

normalmente usando um IDEextensão py

O script pode ser executado diretamente da linha de comando do SOpython oi.py

Ou carregado para o interpretador interativo>>> import oi

Prof. Fabio Alexandre Spanhol, M.Sc. 33

Page 34: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

InúmerosGeanyVimAptanaKomodoNetBeansPyCharmPyDev (Eclipse)Wing IDEPyshieldSpyderMS-Visual StudioEtc.

Prof. Fabio Alexandre Spanhol, M.Sc. 34

Page 35: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Ninja IDE (Ninja Is Not Just Another IDE)

MultiplataformaEditor de código poderosoGerenciamento de ProjetosPlugins http://ninja-ide.org/

Prof. Fabio Alexandre Spanhol, M.Sc. 35

Page 36: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Prof. Fabio Alexandre Spanhol, M.Sc. 36

Page 37: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

37Prof. Fabio Alexandre Spanhol, M.Sc.

Page 38: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Python Enhancement Proposal

São documentos padronizados da comunidade Python Uma PEP propõe um padrão, melhoria,

funcionalidade, estrutura, explicações sobre funcionalidades, etc.

Veja a PEP #0http://www.python.org/dev/peps/pep-0000/

Prof. Fabio Alexandre Spanhol, M.Sc. 38

Page 39: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Python é case-sensitive

Cada linha é delimitada por enter

Tipagem forte e dinâmicaNão há declaração de variáveis

Alguns operadoresAtribuição: =Aritméticos: +, -, *, /, **,//, %Relacionais: <, >, >=,<=, ==, !=, <>, is, inLógicos: and, or, notBitwise: |, ^, &, >>, <<, ~

39Prof. Fabio Alexandre Spanhol, M.Sc.

Page 40: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Em Python, variáveis são referências a objetos

não guardam os objetos em sinão têm tipo, mas os objetos aos quais elas se referem têm tipoSão criadas dinamicamente

Uma variável não pode ser utilizada em uma expressão sem ter sido inicializada

não existe “criação automática” de variáveis

Prof. Fabio Alexandre Spanhol, M.Sc. 40

Page 41: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Variáveis não são “caixas” com valoresVariáveis são “rótulos” colados em objetosSão criadas pela atribuiçãoOperador =

Prof. Fabio Alexandre Spanhol, M.Sc. 41

Page 42: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Atribuição não gera uma cópia do objetoUma referência (variável) pode ser liberadaUsando del Não existindo mais referências a um objeto, ele é

removido da memória (garbage collector)

Prof. Fabio Alexandre Spanhol, M.Sc. 42

Page 43: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Prof. Fabio Alexandre Spanhol, M.Sc.

Um bloco inicia com :

A estrutura dos blocos é definida pelaindentação

A PEP #8 - Style Guide for Python Code - sugere 4espaços Seja consistente Não misturar tabulações com espaços!!!

43

Page 44: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Prof. Fabio Alexandre Spanhol, M.Sc. 44

Page 45: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

A partir do caractere #, o interpretador ignora o restante do código até o final da linha

Isso não vale dentro de strings

Para várias linhas use asplas triplas (docstring)

Documentar funções, classes, módulos, etc.

Prof. Fabio Alexandre Spanhol, M.Sc. 45

Page 46: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Inteirosx = 10y = 56859898958711346465165798798715654000000000000**2z = y + x 3233048109594863662031421586618163610229539807267781773950479944647716000000000000000000000010L

Ponto flutuantef = 85.99984

BooleanosTrue e False

StringsDelimitadas por aspas ou apóstrofos = “python”s2 = ‘language’s3 = “%s %s” % (s,s2)

46Prof. Fabio Alexandre Spanhol, M.Sc.

Page 47: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Usando type

47Prof. Fabio Alexandre Spanhol, M.Sc.

Page 48: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Usando type

48Prof. Fabio Alexandre Spanhol, M.Sc.

Page 49: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

TuplasImutáveis(‘Fabio’,36, False, 89.2,186)

Listasmutáveis[‘Fabio’,36, False, 89.2,186]

DicionáriosChaves com valores associados refeicoes = {"café" : “cereal com leite e mel", "almoço" : "macarrão carbonara“,"jantar" : "sopa de champignon"} refeicoes["almoço"]

ConjuntosNão permite elementos duplicadosset([1,2,3,4,5,6,8,9,8,1,2,7,1,2,5])Retorna set([1, 2, 3, 4, 5, 6, 7, 8, 9])

49Prof. Fabio Alexandre Spanhol, M.Sc.

Page 50: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Entrada com input

Saída com print

50Prof. Fabio Alexandre Spanhol, M.Sc.

Page 51: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

ifif (expressao):

bloco[elif (expressao):

bloco][else:

bloco]

51Prof. Fabio Alexandre Spanhol, M.Sc.

Page 52: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

exemplo

52Prof. Fabio Alexandre Spanhol, M.Sc.

Page 53: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Forfor variavel in sequencia:

bloco[else:

bloco]

While

while (expressao):bloco

[else:bloco]

53Prof. Fabio Alexandre Spanhol, M.Sc.

Page 54: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Exemplo1

Exemplo2

54Prof. Fabio Alexandre Spanhol, M.Sc.

Page 55: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Modularizam o códigoComando def inicia a definição de uma funçãoComando return marca o fim da execução da função e define o resultado a ser devolvido Pode ser None

Prof. Fabio Alexandre Spanhol, M.Sc. 55

Page 56: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

56Prof. Fabio Alexandre Spanhol, M.Sc.

Exemplo

Page 57: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Prof. Fabio Alexandre Spanhol, M.Sc. 57

Page 58: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Ei, não vamos complicar!

58Prof. Fabio Alexandre Spanhol, M.Sc.

Page 59: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Estourar a pilha de execução é “fácil”

E aí, tentou fat(1000)?

Prof. Fabio Alexandre Spanhol, M.Sc. 59

Page 60: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Mudando o tamanho da pilha de ativação

Prof. Fabio Alexandre Spanhol, M.Sc. 60

Page 61: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

61Prof. Fabio Alexandre Spanhol, M.Sc.

Page 62: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

62Prof. Fabio Alexandre Spanhol, M.Sc.

Page 63: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Inverter a ordem das cartasbaralho.reverse()

Tirar a carta do topobaralho.pop()

Adicionar 4 coringasbaralho.extend([‘Coringa’]*4)

Colocar em ordembaralho.sort() Pelo número de letras: baralho.sort(key=len)

63Prof. Fabio Alexandre Spanhol, M.Sc.

Page 64: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

TCL-TK é parte integrante, via tkinterDiversos outros bindings de frameworkswxWidgetsQTGTKetc.

Prof. Fabio Alexandre Spanhol, M.Sc. 64

Page 65: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

65Prof. Fabio Alexandre Spanhol, M.Sc.

Page 66: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Prof. Fabio Alexandre Spanhol, M.Sc. 66

Também tem!Você pode fazer programação funcional sem Lost in Stupid Parenthesis (LISP)

Page 67: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

Prof. Fabio Alexandre Spanhol, M.Sc. 67

Page 68: $whoami - inf.unioeste.br · Java tem 53 e C# 77 ... Mudando o tamanho da pilha de ativação Prof. Fabio Alexandre Spanhol, M.Sc. 60. Prof. Fabio Alexandre Spanhol, M.Sc. 61. Prof

68Prof. Fabio Alexandre Spanhol, M.Sc.