Você está na página 1de 6

Pedro Augusto Morais de Carvalho TUTORIAL DE PYTHON A Estrutura de um Programa em Python Python um exemplo de linguagem de programao de alto nvel.

. Python considerada uma linguagem interpretada, pois os programas em Python so executados por um interpretador. Existem duas maneiras de usar o interpretador: no modo de linha de comando e no modo de script. No modo de linha de comando, voc digita programas em Python e o interpretador mostra o resultado. Tambm se pode escrever um programa em um arquivo e usar o interpretador para executar o contedo desse arquivo. Um arquivo como este chamado de script. Modo interativo Quando os comandos so lidos a partir do console (tty), diz-se que o interpretador est em modo interativo. Nesse modo ele requisita por um prximo comando atravs do prompt primrio, tipicamente trs sinais de maior-que (>>> ); para linhas de continuao do comando corrente, o prompt secundrio default so trs pontos (... ). O interpretador imprime uma mensagem de boas vindas, informando seu nmero de verso e uma nota legal de copyright antes de oferecer o primeiro prompt: python Python 1.5.2b2 (#1, Feb 28 1999, 00:02:06) [GCC 2.8.1] on sunos5 Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam >>> Linhas de continuao so necessrias em construes multi-linha. Como exemplo, d uma olhada nesse comando if: >>> o_mundo_eh_plano = 1 >>> if o_mundo_eh_plano: ... print "Cuidado para no cair fora dele!" ... Cuidado para no cair fora dele! Funo help() O interpretador Python oferece um mecanismo de ajuda simples e eficiente. Ele prov uma funo help(), que permite acessar parte da documentao oficial Python e o PyDoc. Ele poder ser chamado para uma sesso interativa: >>> help() (Apresentao) help> help> o prompt do help. Tudo o que voc digitar a partir de agora, ser interpretado

pelo help. Digite quit para sair. Para visualizar a documentao docstring de um mdulo, basta digitar o nome do mdulo: help> os Help on module os: NAME os - OS routines for Mac, DOS, NT, or Posix depending on what system we're on. (...) Use as setas do teclado para ir para baixo/cima e aperte q para sair. Para saber quais so os mdulos disponveis, digite modules: help> modules Please wait a moment while I gather a list of all available modules... ArrayPrinter asyncore linuxaudiodev sgmllib BaseHTTPServer atexit locale sha Bastion audiodev logging (package) shelve CDROM audioop macpath shlex (...) Para procurar um mdulo por palavra-chave, digite module palavra e o help retornar uma lista de mdulos que correspondem quela palavra. Alm da documentao dos mdulos, o help permite que voc obtenha ajuda em determinados tpicos. Os assuntos so variados, vo desde a descrio dos tipos bsicos at como fazer o debugging de um programa. Digite topics para ver quais so os tpicos disponveis. O help tambm oferece um rpido acesso gramtica das palavras-chave, com uma breve descrio de seu uso. No help, digite `keywords' para saber quais so as palavras-chaves. E para acessar sua documentao, s digitar o nome: help> if 7.1 The if statement The if statement is used for conditional execution: if_stmt ::= "if" expression[1] ":" suite[2] ( "elif" expression[3] ":" suite[4] )* ["else" ":" suite[5]] (...) O help() pode ser chamado fora de um sesso interativa. Para obter a documentao de um mdulo ou funo, necessrio, primeiramente, import-lo: >>> import os >>> help(os.open) Help on built-in function open: open(...) open(filename, flag [, mode=0777]) -> fd Open a file (for low level IO). Para acessar a ajuda das palavras-chaves e dos tpicos, preciso chamar o help delimitando o nome do tpico ou palavra-chave com aspas:

>>> help('TRUTHVALUE') 2.2.1 Truth Value Testing Any object can be tested for truth value, for use in an if or while condition or as operand of the Boolean operations below. The following values are considered false: (...) Estruturas de Controle A instruo condicional bsica de Python o if. A sintaxe descrita a seguir (lembrando que a indentao que delimita o bloco): if condio: # bloco de cdigo elif condio: # outro bloco else: # bloco final As condies acima so comparaes feitas utilizando os operadores condicionais descritos na seo 2.4.4, possivelmente combinados por meio dos operadores lgicos descritos na seo 2.4.5. a=2 b = 12 if a < 5 and b * a > 0: print "ok" A instruo elif permite que se inclua uma exceo condicional -- algo como "... seno se isso ...". O else uma exceo absoluta8. if nome == "pedro": idade = 21 elif nome == "jos": idade = 83 else: idade = 0 Provendo nome="lvaro" para o bloco acima, ser atribudo o valor zero a idade. H apenas dois tipos de laos em Python: for e while. O primeiro tipo, mais freqentemente utilizado, percorre uma seqncia em ordem, a cada ciclo substituindo a varivel especificada por um dos elementos. Por exemplo: >>> jan_ken_pon = ["pedra", "papel", "cenoura"] >>> for item in jan_ken_pon: ... print item ... pedra

papel cenoura A cada iterao, item recebe o valor de um elemento da seqncia. Para efetuar uma lao com um nmero fixo de iteraes, costuma-se usar o for em conjunto com a funo range, que gera seqncias de nmeros: >>> for i in range(1,4): ... print "%da volta" % i ... 1a volta 2a volta 3a volta Para iterar em dicionrios, podemos usar as funes keys() ou values() para gerar uma lista: >>> dict = {"batata": 500, "abbora": 1200, ... "cebola": 800} >>> for e in dict.keys(): ... print "Item: %8s Peso: %8s" % (e, dict[e]) Item: cebola Peso: 800 Item: batata Peso: 500 Item: abbora Peso: 1200 Note que porque o dicionrio em si no possui um conceito de ordem, a lista que resulta do mtodo keys() possui ordenao arbitrria. Por este motivo, no exemplo acima, o lao no segue a declarao do dicionrio. 2.5.2.2 Controle adicional em laos Para ambos os tipos de lao, existem duas instrues de controle adicional, continue e break. A primeira reinicia uma nova iterao imediatamente, interrompendo a iterao atual; a segunda faz o lao terminar imediatamente. A forma geral do lao for : for varivel in seqncia: # bloco de cdigo else: # bloco executado na ausncia de um break Note a presena da clusula else. Esta clusula executada quando a sada do lao no for determinada por uma instruobreak. Um exemplo clarifica este mecanismo: valores = [2, 4, 5, 2, -1] for i in valores: if i < 0: print "Negativo encontrado: %d" % i break else: print "Nenhum negativo encontrado"

O segundo tipo de lao, while, utilizado quando necessitamos fazer um teste a cada iterao do lao. while condio: # bloco de cdigo else: # bloco executado na ausncia de um break Como o lao for, o while possui uma clusula else. Um exemplo do uso de while segue: >>> m = 3 * 19 >>> n = 5 * 13 >>> contador = 0 >>> while m < n: ... m = n / 0.5 ... n = m / 0.5 ... contador = contador + 1 ... >>> print "Iteramos %d vezes." % contador Iteramos 510 vezes. No h uma instruo especial para efetuar um lao com teste ao final da iterao (como o lao do ... while() em C), mas pode-se usar um while infinito -- usando uma condio verdadeira, fixa -- em combinao com um teste e break internos: >>> l = ["a", "b", "c"] >>> i = len(l) - 1 >>> while True: ... print l[i] ... i = i - 1 ... if i < 0: ... break ... c b a Com os dois tipos de laos descritos na seo anterior, todas as necessidades normais de controle de um programa podem ser implementadas. No entanto, quando algo inesperado ocorre, ou uma condio de erro conhecido atingida, Python oferece uma forma adicional de controlar o fluxo de execuo: a exceo. A exceo um recurso de linguagens de programao modernas que serve para informar que uma condio incomum ocorreu. Embora existam outras aplicaes, em geral comunicam-se atravs de excees erros ou problemas que ocorrem durante a execuo de um programa. Mdulos da linguagem Cada arquivo contendo cdigo Python denominado um mdulo. Na grande maioria das ocasies utilizamos um ou mais mdulos Python em combinao: o interpretador

interativo adequado para realizar experimentos curtos, mas no para escrever cdigo de produo. Um mdulo Python consiste de cdigo-fonte contido em um arquivo denominado com a extenso .py; como tal, pode conter variveis, funes e classes; para fins de nomenclatura, qualquer um destes elementos contidos em um mdulo considerado umatributo do mdulo. Python, atravs do mdulo, oferece excelentes mecanismos para modularizar cdigofonte. Esta modularizao pode ter diversas motivaes: o programa pode ser grande demais, ter sub-partes reusveis que devem ser separadas, ou ainda necessitar de mdulos escritos por terceiros. Esta seo introduz este conceito atravs do comando import. A instruo bsica para manipular mdulos import. O mdulo deve estar no caminho de procura de mdulos do interpretador. Exemplos: SciPy: O SciPy o pacote bsico da linguagem Python que implementa diversas tcnicas teis na computao cientfica. Utiliza como base o NumPy para lidar eficientemente com grandes quantidades de nmeros, e implementa em linguagem C diversos algoritmos numricos e simblicos para o processamento matemtico. Entre as capacidades do SciPy, temos: - Estatsticas - Otimizao - Integrao numrica - Processamento de sinais e imagens - Soluo de equaes diferenciais - Funes especiais (Bessel, etc.) - Polinmios MatPlotLib: O mdulo matplotlib (MPL) voltado para a gerao de grficos bidimensionais de vrios tipos, e se presta para utilizao tanto interativa quanto em scripts, aplicaes web ou integrada a interfaces grficas (GUIs) de vrios tipos. O MPL procura tornar simples tarefas de plotagem, simples e tarefas complexas possveis. Os grficos gerados podem ser salvos em diversos formatos: jpg, png, ps, eps e svg. Ou seja, o MPL exporta em formatos raster e vetoriais (svg) o que torna sua sada adequada para insero em diversos tipos de documentos. SimPy: SymPy uma biblioteca Python para matemtica simblica. Ele um completo sistema de lgebra computacional (CAS), mantendo o cdigo o mais simples possvel, a fim de ser compreensvel e facilmente extensvel. SymPy inteiramente escrito em Python e no requer nenhuma biblioteca externa. usado principalmente em caulos mais complexos como integrais, derivadas e sries.