Вы находитесь на странице: 1из 51

TUTORIAL PYTHON 3.

1 Portugus Instituto Federal de Educao, Cincia e Tecnologia da Paraba Campus de Campina Grande Curso: Tecnologia em Telemtica Semestre: 1 Disciplina: Algoritmos e Lgica de Programao Tutorial de python verso 3.1 Perodo Letivo: 2010.1 Python fcil de aprender, poderosa linguagem de programao. Tem eficientes estruturas de dados de alto nvel e uma abordagem simples, mas eficazes para a programao orientada a objeto. sintaxe elegante Python e tipagem dinmica, juntamente com a sua natureza interpretada, tornam uma linguagem ideal para scripting e desenvolvimento rpido de aplicaes em muitas reas, na maioria das plataformas. O interpretador Python e extensa biblioteca padro esto disponveis gratuitamente em formato binrio ou fonte para todas as principais plataformas do site Python, http://w.python.org/, e pode ser distribudo gratuitamente. O mesmo site tambm contm distribuies e referncias para muitos mdulos de terceiros Python livre, programas e ferramentas e documentao adicional. O interpretador Python pode ser facilmente estendido com novas funes e tipos de dados implementados em C ou C + + (ou outros idiomas que pode ser chamado de C). Python tambm indicado como uma linguagem de extenso para aplicaes personalizvel. Este tutorial introduz o leitor informalmente aos conceitos bsicos e as caractersticas da linguagem Python e do sistema. Ela ajuda a ter um interpretador Python til para hands-on experincia, mas todos os exemplos so auto-suficientes, de modo que o tutorial pode ser lido off-line tambm. Para obter uma descrio de objetos padro e mdulos, consulte o Python Standard Library. O Python Language Reference d uma definio mais formal da lngua. Para escrever extenses em C ou C + +, leia Extendendo e incorporao do interpretador Python e Python / C API Reference Manual. H tambm vrios livros abrangendo Python em profundidade. Este tutorial no pretende ser abrangente e cobrir todas as caractersticas individuais, ou mesmo todos os recursos usados. Em vez disso, ele introduz muitas das caractersticas mais

marcantes do Python, e lhe dar uma boa idia do sabor da linguagem e estilo. Depois de l-lo, voc ser capaz de ler e escrever mdulos Python e programas, e voc estar pronto para aprender mais sobre a biblioteca Python vrios mdulos descrita na norma Python Library. O Glossrio tambm vale a atravessar.

TUTORIAL PYTHON 3.1 Portugus * 1. Abrindo seu apetite * 2. Usando o interpretador Python o 2.1. Invocando o Interpretador + 2.1.1. Argumento passando + 2.1.2. Interactive Mode o 2.2. O Intrprete e Seu Ambiente + 2.2.1. Tratamento de erro + 2.2.2. Executvel Scripts Python + 2.2.3. O cdigo-fonte Encoding + 2.2.4. O arquivo de inicializao Interactive * 3. Uma Introduo Informal a Python o 3.1. Usando Python como uma calculadora + 3.1.1. Nmeros + 3.1.4. Listas o 3.2. Primeiros passos rumo a programao * 4. Mais Ferramentas de Controle de Fluxo o 4.1. if o 4.2. para instrues o 4.3. A funo range () o 4.4. break e continue, e mais clusulas de Loops o 4.5. passar Demonstraes o 4.6. Definindo Funes o 4.7. Mais sobre Definio de Funes + 4.7.1. Argumento Valores Default + 4.7.2. Argumentos palavra-chave + 4.7.3. Arbitrrio listas de argumento + 4.7.4. Descompactando listas de argumento + 4.7.6. Documentao Strings o 4.8. Intermezzo: Estilo de Codificao * 5. Estruturas de Dados o 5.1. Mais informaes sobre listas + 5.1.1. Usando Listas como pilhas + 5.1.2. Usando listas de filas + 5.1.3. Lista de compreenses + 5.1.4. Compreenses lista aninhada o 5.2. A declarao del o 5.3. Tuplas e Sequncias o 5.4. Sets o 5.5. Dicionrios o 5.6. Looping Tcnicas o 5.7. Mais informaes sobre as Condies

TUTORIAL PYTHON 3.1 Portugus o 5.8. Comparando Sequncias e Outros Tipos * 6. Mdulos o 6.1. Mais informaes sobre os mdulos + 6.1.1. Execuo de mdulos de scripts + 6.1.2. O Caminho Mdulo Pesquisa + 6.1.3. "Elaborao" Python arquivos o 6.2. Standard Mdulos o 6.3. A funo Dir () o 6.4. Pacotes + 6.4.1. * Importao de um pacote + 6.4.2. Referncias pacote intra+ 6.4.3. Pacotes em vrios diretrios * 7. Entrada e Sada o 7.1. Criadores de formatao de sada + 7.1.1. Old seqncia de formatao o 7.2. Leitura e escrita de arquivos + 7.2.1. Mtodos de objetos File + 7.2.2. O mdulo pickle * 8. Erros e Excees o 8.1. Erros de sintaxe o 8.2. Excees o 8.3. Tratamento de Excees o 8.4. Levantando Excees o 8.5. Excees definidas pelo usurio o 8.6. Definindo Aes de Limpeza o 8.7. Predefinidos Clean-up Aes * 9. Classes o 9.1. Uma palavra sobre nomes e objetos o 9.2. Scopes e Python Namespaces + 9.2.1. Exemplo Escopos e Espaos o 9.3. Um primeiro olhar em Classes + 9.3.1. Classe A sintaxe de definio + 9.3.3. Instncia Objects + 9.3.4. Mtodo Objects o 9.4. Random Observaes o 9.5. Herana + 9.5.1. Herana mltipla o 9.6. Private Variveis o 9.7. Miudezas o 9.8. Excees so classes Too o 9.9. Iterators o 9.10. Geradores o 9.1. Generator Expressions * 10. Breve Passeio da biblioteca padro

TUTORIAL PYTHON 3.1 Portugus o 10.1. Interface do sistema operacional o 10.2. Arquivo Wildcards o 10.3. Argumentos da Linha de Comando o 10.4. Erro de redirecionamento de sada e trmino do programa o 10.5. String Pattern Matching o 10.6. Matemtica o 10.7. Acesso Internet o 10.8. Datas e horrios o 10.9. Compresso de dados o 10h10. Medio de Desempenho o 10,1. Controle de Qualidade o 10.12. Baterias Includas * 1. Breve Passeio da Biblioteca Padro - Parte I o 1.1. Sada de formatao o 1.2. Templating o 1.3. Trabalhando com dados binrios Record Layouts o 1.4. Multi-threading o 1.5. Logging o 1.6. Referncias Weak o 1.7. Ferramentas para trabalhar com listas o 1.8. Decimal Floating Point Arithmetic * 12. E agora? * 13. Interactive Edio de entrada e de substituio Histria o 13.1. Line Edio o 13.2. Histria de substituio o 13.3. Teclas o 13.4. Alternativas para o interpretador interativo * 14. Questes aritmticas em ponto flutuante: Limitaes e o 14.1. Representao de erro . 1. Abrindo seu apetite

Se voc faz muito trabalho em computadores, eventualmente voc achar que h alguma tarefa que voc gostaria de automatizar. Por exemplo, talvez voc queira realizar uma pesquisa e substituir por um grande nmero de arquivos de texto, ou renomear e reorganizar um monte de arquivos de fotos em um caminho complicado. Talvez voc gostaria de escrever um pequeno banco de dados personalizado, ou um aplicativo GUI especializado, ou um simples jogo. Se voc for um desenvolvedor de software profissional, voc pode ter que trabalhar com vrios C / C bibliotecas / Java, mas encontrar a usual escrever / compile / teste / re-compile ciclo muito lento. Talvez voc est escrevendo um conjunto de testes para tal uma biblioteca e encontrar escrever o cdigo de teste uma tarefa tediosa. Ou talvez voc tenha escrito um

TUTORIAL PYTHON 3.1 Portugus programa que poderia usar uma linguagem de extenso, e voc no quer para conceber e implementar uma nova linguagem para sua aplicao. Python apenas a lngua para voc. Voc pode escrever um script shell Unix ou Windows arquivos em lote para algumas dessas tarefas, mas scripts shell so melhores movendo arquivos e alterar dados de texto, no bem adequado para aplicaes grficas e jogos. Voc pode escrever um C / C / programa em Java, mas pode levar muito tempo de desenvolvimento para obter ainda um projecto de programa de primeira. Python simples de usar, disponvel para Windows, Mac OS X e sistemas operacionais Unix, e vai ajud-lo a comear o trabalho feito mais rapidamente. Python simples de usar, mas uma linguagem de programao, oferecendo muito mais estrutura e apoio a grandes programas de shell scripts ou arquivos em lote pode oferecer. Por outro lado, Python tambm oferece a verificao de erros muito mais do que C, e sendo uma linguagem de muito alto nvel, tem tipos de dados de alto nvel, integrada, tais como matrizes flexveis e dicionrios. Devido ao seu carcter mais geral de tipos de dados Python aplicvel a um domnio de problema muito maior do que Awk ou at mesmo Perl, mas muitas coisas so, pelo menos, to fcil em Python como em outras lnguas. Python permite dividir seu programa em mdulos que podem ser reutilizados em outros programas Python. Ele vem com uma grande coleo de mdulos-padro que voc pode usar como base de seus programas - ou como exemplos para comear a aprender a programar em Python. Alguns destes mdulos oferecem coisas como arquivo I / O chamadas de sistema, sockets, e at mesmo interfaces de toolkits de interface grfica do usurio como Tk. Python uma linguagem interpretada, que voc pode economizar tempo considervel durante o desenvolvimento do programa porque no compilao e ligao necessria. O intrprete pode ser usado interativamente, o que torna a experincia mais fcil com as caractersticas da linguagem, escrever programas usar e deitar fora, ou para testar as funes durante o desenvolvimento do programa de baixo para cima. tambm uma calculadora de mesa mo.

Python permite que os programas a serem gravados e lidos de forma compacta. Programas escritos em Python so tipicamente muito menor do que equivalente C, C, ou de programas Java, por vrias razes: * Os tipos de alto nvel, os dados permitem que voc expresse operaes complexas em uma nica instruo; * Agrupamento declarao feita por identao ao invs de incio e trmino entre parnteses; * As declaraes nenhuma varivel ou argumento so necessrias. Python extensvel: se voc sabe programar em C fcil adicionar uma nova funo interna ou mdulo para o intrprete, seja para desempenhar operaes crticas em mxima velocidade, ou para vincular programas Python a bibliotecas que s poder ser em formato

TUTORIAL PYTHON 3.1 Portugus binrio (como uma biblioteca de grficos especficos do fornecedor). Uma vez que voc est realmente viciado, voc pode vincular o interpretador Python em um aplicativo escrito em C e utiliz-lo como uma extenso ou uma linguagem de comando para o aplicativo. By the way, a linguagem nomeado aps o show da BBC "Monty Python's Flying Circus" e no tem nada a ver com rpteis. Fazendo referncias a esquetes de Monty Python na documentao no apenas permitido, encorajado! Agora que voc est todo animado sobre Python, voc vai querer examin-lo em alguns detalhes. Desde que a melhor maneira de aprender uma lngua us-lo, o tutorial convida-o a brincar com o interpretador Python que voc l. No prximo captulo, a mecnica de usar o interpretador explicada. Esta informao bastante mundano, mas essencial para experimentar os exemplos mostrados posteriormente. O resto do tutorial introduz vrias caractersticas da linguagem Python e do sistema atravs de exemplos, comeando com simples expresses, declaraes e tipos de dados, atravs de funes e mdulos e, finalmente, tocar em cima de conceitos avanados como excees e classes definidas pelo usurio. 2. Usando o interpretador Python 2.1. Invocando o Interpreter O interpretador Python geralmente instalado em / usr/local/bin/python3.1 sobre aquelas mquinas onde se encontra disponvel, colocando / usr / local / bin no caminho de seu shell do Unix pesquisa torna possvel para inici-lo, digitando o comando python3.1 para o shell. [1] Desde a escolha do diretrio onde vive o intrprete uma opo de instalao, outros locais so possveis, verifique com seu guru local de Python ou administrador do sistema. (Ex.: / usr / local / python uma localizao alternativa popular.)

Em mquinas Windows, a instalao do Python normalmente colocado em C: \ Python31, mas voc pode alterar isso quando voc estiver executando o instalador. Para adicionar esse diretrio ao seu caminho, voc pode digitar o seguinte comando no prompt de comando em uma caixa de DOS: % Path set path =%; C: \ python31 Digitar um caractere de fim-de-arquivo (Control-D em Unix, Control-Z em Windows) para as causas primrias prompt do interpretador a sair com um status de sada zero. Se isso no funcionar, voc pode sair do interpretador, digitando o seguinte comando: quit ().

TUTORIAL PYTHON 3.1 Portugus O intrprete de recursos de edio de linha geralmente no so muito sofisticados. Em Unix, quem instalou o intrprete pode ter habilitado o suporte para a biblioteca readline GNU, que adiciona mais elaborado edio interactiva e histrico. Talvez o mais rpido verificar se a edio de linha de comando suportado est digitando Control-P para o Python primeiro prompt que voc comea. Se ele apita, tem edio de linha de comando, ver apndice Interactive Input Editando Histria e substituio de uma introduo para as chaves. Se nada parece acontecer, ou se P ecoado, edio de linha de comando no est disponvel, voc s vai poder usar backspace para remover caracteres da linha atual. O intrprete atua tanto como o shell do Unix: quando chamado com entrada padro conectado a um dispositivo tty, ele l e executa comandos interativamente; quando chamado com um argumento de nome de arquivo ou com um arquivo como entrada padro, ele l e executa um script que arquivo. , que executa a

Uma segunda maneira de comear o intrprete de comando python-c [arg]

instruo (s) no comando, anloga opo c do shell. Uma vez que geralmente contm declaraes Python espaos ou outros caracteres que so especiais para o shell, que geralmente aconselhada para citar comando em sua totalidade com aspas simples. , que executa o arquivo de origem para o mdulo como se voc

mdulo python-m [arg]

Alguns mdulos Python so tambm teis como scripts. Estes podem ser chamados usando o tivesse escrito o seu nome completo na linha de comando. Observe que h uma diferena entre o arquivo python e <python arquivo. Neste ltimo caso, as solicitaes de entrada do programa, como chamar sys.stdin.read (), so cumpridos de arquivo. Uma vez que este arquivo j foi lido at o fim pelo analisador antes de o programa inicia a execuo, o programa vai encontrar fim-de-arquivo imediatamente. No primeiro caso (que

geralmente o que voc quiser) esto satisfeitos a partir de qualquer arquivo ou dispositivo est conectado entrada padro do interpretador Python. Quando um arquivo de script utilizado, s vezes til para ser capaz de executar o script e depois entrar em modo interativo. Isso pode ser feito passando-i antes do script. (Isso no funciona se o script lida da entrada padro, pela mesma razo, como explicado no pargrafo anterior). 2.1.1. Argumento passando Quando conhecido o intrprete, o nome do script e depois argumentos adicionais so passados para o script no sys.argv varivel, que uma lista de strings. Seu comprimento pelo menos um, quando nenhum script e nenhum argumento dado, sys.argv [0] uma seqncia vazia. Quando o nome do script dada como '-' (significando entrada padro), sys.argv [0] definido como '-'. Quando o comando-c usado, sys.argv [0] definido como 'c'. Quando o mdulo-M usado, sys.argv [0] definido como o nome completo do mdulo localizado. Opes encontradas aps o comando-c ou-m mdulo no so consumidos pelo processamento do interpretador Python opo, mas deixou em sys.argv para o comando ou

TUTORIAL PYTHON 3.1 Portugus mdulo de manusear. 2.1.2. Interactive Mode Quando os comandos so lidos a partir de um terminal, o intrprete est a ser dito em modo interativo. Neste modo, ela pede para o prximo comando do prompt primrio, geralmente trs maior do que sinais (>>>); para linhas de continuao pede com o prompt secundrio, por padro, trs pontos (...). O interpretador imprime uma mensagem de boas vindas informando seu nmero de verso e um aviso de direitos autorais antes de imprimir o primeiro prompt: Linhas de continuao so necessrias quando entrar em um multi-line construir. Como exemplo, d uma olhada nesta declarao quando: print ("Tenha cuidado para no cair!") >> The_world_is_flat> = 1 >>> The_world_is_flat se: Tenha cuidado para no cair! 2.2. The Interpreter e Seu Ambiente 2.2.1. Tratamento de erro Quando ocorre um erro, o interpretador imprime uma mensagem de erro e um rastreamento de pilha. No modo interativo, em seguida, retorna ao prompt primrio, quando a entrada vem de um arquivo, ele sai com um status de sada diferente de zero aps imprimir o stack trace.

(Excees tratadas por um salvo clusula em uma declarao tentar no so erros neste contexto.) Alguns erros so incondicionalmente fatais e causam a sada com uma sada diferente de zero, isto aplica-se a inconsistncias internas e alguns casos de falta de memria. Todas as mensagens de erro so escritas para o fluxo de erro padro; sada normal de comandos executados escrito na sada padro. Digitando o carter de interrupo (normalmente Control-C ou DEL) cancela primria ou secundria prompt de entrada e retorna ao prompt primrio. [2] Escrever uma interrupo enquanto um comando est sendo executado levanta a exceo KeyboardInterrupt, que pode ser manipulado por um try. 2.2.2. Scripts Python executveis Em sistemas Unix BSD'ish, scripts Python podem ser feitas diretamente executveis, como shell scripts, colocando a linha

TUTORIAL PYTHON 3.1 Portugus #! / Usr / bin / env python3.1 (Assumindo que o intrprete est no PATH do usurio) no incio do script e dar o arquivo de um modo executvel. O #! devem ser os dois primeiros caracteres do arquivo. Em algumas plataformas, essa primeira linha deve terminar com uma linha no estilo Unix final ('\ n'), e no um Windows ('\ n \ r') que termina linha. Observe que o hash, ou a libra, o carter, "#", usado para iniciar um comentrio em Python. O script pode ser dado um modo executvel, ou permisso, usando o comando chmod: $ Chmod + x myscript.py Em sistemas Windows, no h noo de um modo "executvel". O instalador do Python associa automaticamente arquivos. Py com python.exe de modo que um clique duplo sobre um arquivo Python ir execut-lo como um script. A extenso tambm pode ser. Pyw, nesse caso, a janela do console, que normalmente aparece suprimida. 2.2.3. O cdigo-fonte Encoding Por padro, os arquivos-fonte em Python so tratados como codificados em UTF-8. Em que a codificao, os caracteres da maioria das lnguas do mundo podem ser usados simultaneamente em strings literais, os identificadores e comentrios - apesar de a biblioteca padro usa apenas caracteres ASCII para identificadores, uma conveno que qualquer cdigo porttil deve seguir. Para exibir todos esses caracteres corretamente, seu editor deve reconhecer que o arquivo UTF-8, e deve usar uma fonte que suporta todos os caracteres no arquivo.

Tambm possvel especificar uma codificao diferente para os arquivos fonte. Para fazer isso, coloque mais uma linha de comentrio especial direita aps o #! linha para definir o arquivo de origem de codificao: # -*- Coding: -*- encoding Com essa declarao, tudo no arquivo de origem ser tratado como tendo a codificao em vez de codificao UTF-8. A lista de codificaes possveis pode ser encontrada na Biblioteca de Referncia Python, na seo codecs. Por exemplo, se o seu editor de escolha no suporta UTF-8 arquivos codificados e insiste em usar alguma outra codificao, por exemplo, Windows 1252, voc pode escrever: e ainda utilizar todos os caracteres da personagem Windows-1252 em conjunto os arquivos de origem. O comentrio de codificao especial deve ser na primeira ou segunda linha dentro do arquivo. 2.2.4. O arquivo de inicializao Interactive

TUTORIAL PYTHON 3.1 Portugus Quando voc usa Python interativamente, frequentemente til para ter um padro comandos executados toda vez que o intrprete iniciado. Voc pode fazer isso definindo uma varivel de ambiente denominada PYTHONSTARTUP com o nome de um arquivo contendo os comandos de start-up. Isso semelhante ao. Caracterstica do perfil do shell do Unix. Este arquivo somente leitura em sesses interativas, e no quando Python l comandos de um script, e no quando o / dev / tty dado como a fonte explcita de comandos (que de outra forma se comporta como uma sesso interativa). Ele executado no mesmo namespace onde comandos interativos so executadas, de modo que os objetos que ele define ou importao podem ser usados sem qualificao na sesso interativa. Voc tambm pode alterar as instrues sys.ps1 e sys.ps2 neste arquivo. Se voc quiser ler um arquivo adicional start-up do diretrio atual, voc pode programar isso no global start-up de arquivos usando o cdigo como se os.path.isfile ('. Pythonrc.py): exec (open (' . pythonrc.py). read ()). Se voc quiser usar o arquivo de inicializao em um script, voc deve fazer isso de forma explcita no script: OS importao filename = os.environ.get ('PYTHONSTARTUP) se filename e os.path.isfile (filename): exec (open (filename). read ()) Notas de Rodap [1] Em Unix, o interpretador Python 3.x instalado por padro, no com o python executvel nomeado, para que no entre em conflito com o Python 2.x instalado simultaneamente executvel. [2] Um problema com o pacote GNU Readline pode impedir isso.

3. Uma Introduo Informal a Python ): a repetir o exemplo, voc deve digitar tudo aps o prompt linhas, quando aparece o

(>>> e

Nos exemplos a seguir, a entrada e sada so distinguidos pela presena ou ausncia de avisos prompt; que no comeam esto com uma sada rpida do interpretador. Observe que um prompt secundrio em uma linha por si s em um exemplo significa que voc deve digitar uma linha em branco, o que usado para terminar um comando multi-linha. Muitos dos exemplos neste manual, inclusive aqueles inscritos no prompt interativo inclui, comenta. Comentrios em Python comear com o cardinal, #, e se estendem at o final da linha fsica. Um comentrio pode aparecer no incio de uma linha ou na sequncia de espaos em branco ou cdigo, mas no dentro de uma seqncia literal. Um personagem hash dentro de uma seqncia literal apenas um personagem de hash. Desde que os comentrios so para esclarecer cdigo e no so interpretados pelo Python, que pode ser omitido quando se digita em exemplos.

TUTORIAL PYTHON 3.1 Portugus Alguns exemplos: e agora uma terceira!

# Este o primeiro comentrio SPAM = 1 # e esse o segundo comentrio STRING = "# Isto no um comentrio." 3.1. Usando Python como uma calculadora Vamos tentar alguns comandos simples em Python. Inicie o interpretador e aguarde o prompt primrio,>>>. (No deve demorar muito.) 3.1.1. Nmeros O interpretador atua como uma calculadora simples: voc pode digitar uma expresso para ele e ele ir escrever o valor. A sintaxe da expresso simples: os operadores +, -, * e / funcionam como na maioria dos outros idiomas (por exemplo, Pascal ou C); parnteses podem ser usados para o agrupamento. Por exemplo: 2 2 >>> 2 +2 4 >>> # Este um comentrio 4 >>> 2 +2 # e comentrio sobre a mesma linha de cdigo 4 >>> (50-5 * 6) / 4 5,0 Fraes>>> 05/08 # no so perdidos quando dividindo inteiros 1,6

Nota: Voc no pode ver exatamente o mesmo resultado; resultados de ponto flutuante podem diferir de uma mquina para outra. Falaremos mais tarde sobre como controlar a aparncia da sada de ponto flutuante. Veja tambm Floating Point Arithmetic: Problemas e limitaes para uma ampla discusso de algumas das sutilezas de nmeros de ponto flutuante e suas representaes. Para fazer uma diviso inteira e obter um resultado inteiro, descartando qualquer resultado fracionrio, no h outro operador, / /: 7// 3 >>> # Integer retorna a diviso do piso: 2 >>> 7 / -3 -3

TUTORIAL PYTHON 3.1 Portugus O ('=') sinal de igual usado para atribuir um valor a uma varivel. Depois disso, nenhum resultado exibido antes do prximo prompt interativo: >> Largura> = 20 >> Altura> = 5 * 9 >>> Width * height 900 Um valor pode ser atribudo a diversas variveis simultaneamente: >>> X = y = z = 0 # Zero x, y e z >>> X 0 >>> Y 0 >>> Z 0 Variveis devem ser "definidos" (atribudo um valor) antes que eles possam ser usados, ou um erro ocorrer: n >>> # Tentar acessar uma varivel indefinida Traceback (chamada mais recente passada): Arquivo "<stdin>", line 1, <module> n NameError: 'nome' no est definido

No h suporte completo para ponto flutuante, os operadores com operandos de tipo misto converter o inteiro operando em ponto flutuante: Nmeros complexos tambm so suportados; nmeros imaginrios so escritas com um sufixo de j ou nmeros de J. Complexo com um componente diferente de zero real so escritos como (real + imagj), ou pode ser criado com o complexo (real, imag funo).

TUTORIAL PYTHON 3.1 Portugus Nmeros complexos so sempre representados por dois nmeros de ponto flutuante, a parte real e imaginria. Para extrair estas peas de um nmero complexo z, z.real uso e z.imag. As funes de converso para ponto flutuante e inteiro (float (), (int)) no funcionam para nmeros complexos - no existe uma maneira correta de converter um nmero complexo para um nmero real. Use abs (z) para obter sua magnitude (como um float) ou z.real para obter sua parte real: >>> A = 3,0 4,0 j >>> Float (a) Traceback (chamada mais recente passada): Arquivo "<stdin>", line 1, in? TypeError: no possvel converter complexo flutuar; abs utilizao (z) >> A.real> 3,0 >>> A.imag 4,0 >> Abs> (a) # sqrt (a.real a.imag ** ** 2 + 2) 5,0 Isto significa que

No modo interativo, a ltima expresso impressa atribudo varivel

quando voc estiver usando o Python como uma calculadora de mesa, um pouco mais fcil para continuar os clculos, por exemplo:

TUTORIAL PYTHON 3.1 Portugus Esta varivel deve ser tratado como somente leitura pelo usurio. No explicitamente atribuir um valor a ela - voc deve criar uma varivel independente local com o mesmo nome mascarando o built-in varivel com seu comportamento mgico. 3.1.2. Strings Alm dos nmeros, Python tambm pode manipular strings, que pode ser expresso de vrias maneiras. Eles podem ser colocados entre aspas simples ou aspas duplas: spam>>> 'ovos' Ovos spam ' t \>>> 'no' " "No" >>> "No" "No" >>> "Sim", disse ele. "Sim", disse ele. >>> "\" Sim \ ", disse ele." "Sim", disse ele. ">>> 'T Isn \'", disse ela. "Isn t \ '", disse ela. O interpretador imprime o resultado das operaes de string da mesma forma como eles so digitados para a entrada: aspas dentro, e com aspas e outros caracteres estranhos escapou por barras invertidas, para mostrar o valor exacto. A corda colocada entre aspas duplas se a cadeia contm uma aspa simples e no aspas duplas, ento entre aspas simples. Mais uma vez, a funo print () produz a sada mais legvel. literais String pode abranger vrias linhas de vrias maneiras. Continuao linhas podem ser utilizadas, com uma barra invertida como o ltimo caracter da linha, indicando que a prxima linha uma continuao lgica da linha: Ol = "Esta uma cadeia bastante longa contendo \ n \ vrias linhas de texto exatamente como voc faria em C. \ n \ Note-se que os espaos em branco no incio da linha \ significativa. " print (Ol) Note-se que novas linhas ainda precisam ser embutidos na string usando \ n; a nova linha aps a barra invertida descartado. Esse exemplo imprime o seguinte: Esta uma cadeia bastante longa contendo vrias linhas de texto exatamente como voc faria em C. Note-se que os espaos em branco no incio da linha significativo.

TUTORIAL PYTHON 3.1 Portugus Ou, strings podem ser cercados em um par de correspondncia triple-aspas: "" ou'''. Fim de linhas no precisam ser escapados ao usar triple-aspas, mas elas sero includas na seqncia. print ("" " Uso: thingy [OPTIONS]

H-Apresentao de mensagem de esse uso -H Hostname hostname para conectar-se "" ") produz o seguinte resultado: Uso: thingy [OPTIONS] H-Apresentao de mensagem de esse uso -H Hostname hostname para conectar-se Se fizermos uma seqncia literal "string" crua, seqncias \ n no so convertidas em novas linhas, mas a barra invertida ao final da linha, eo caractere de nova linha na fonte, so includos na string como dados. Assim, o exemplo: Ol = r "Esta uma cadeia bastante longa contendo \ n \ vrias linhas de texto quanto voc faria em C. " print (Ol) seria de impresso: Esta uma cadeia bastante longa contendo \ n \ vrias linhas de texto quanto voc faria em C. Strings podem ser concatenadas (coladas) com o operador +, e repetidas com *: >> Palavra => 'Ajuda' + 'A' >> Palavra> "HelpA ' palavra>>> '<' + * 5 + '>' "<HelpAHelpAHelpAHelpAHelpA> ' Dois literais string prximas umas das outras so automaticamente concatenadas; a primeira linha acima tambm poderia ter sido escrito palavra Help = '' A ', o que s funciona com dois literais, no com expresses de seqncia arbitrria: ing str>>> '' # <- Esta ok 'String' str>>> '. strip () ing +' # <- Esta ok 'String'

TUTORIAL PYTHON 3.1 Portugus str>>> '. strip ()' ing '# <- Esta invlido Arquivo "<stdin>", line 1, in? 'Str'. Strip () 'ing' SyntaxError: invalid syntax Strings podem ser subscritos (indexado); como no C, o primeiro caractere de uma string tem ndice (index) 0. No h nenhum tipo de carter independente, um personagem simplesmente uma seqncia de caracteres de tamanho nico. Como na linguagem de programao cone, substrings podem ser especificadas com a notao de slice: dois ndices separados por dois pontos.

Slice ndices tm padres til; uma omitido assume primeiro ndice a zero, uma omitido assume segundo ndice para o tamanho da string a ser cortado. >>> [Palavra: 2] # Os dois primeiros caracteres 'Ele' >> Palavra> [2: Tudo #], exceto os dois primeiros caracteres "LpA ' Ao contrrio de uma string C, strings Python no pode ser mudado. Atribuir para uma posio indexados nos resultados da seqncia de caracteres em uma mensagem de erro: >> Palavra> [0] = 'x' Traceback (chamada mais recente passada): Arquivo "<stdin>", line 1, in? objeto str TypeError: 'no d suporte a atribuio item >>> [Palavra: 1] = "Splat" Traceback (chamada mais recente passada): Arquivo "<stdin>", line 1, in? objeto str TypeError: 'no d suporte a atribuio fatia No entanto, a criao de uma nova seqncia com o contedo combinado fcil e eficiente: >>> 'X' + palavra [1]: "XelpA ' palavra>> "Splat '+ [4] "SplatA '

TUTORIAL PYTHON 3.1 Portugus Aqui est uma invariante til de operaes fatia: s [: i] + s [i:] igual a s. >>> [Palavra: 2] + word [2:] "HelpA ' >>> [Palavra: 3] + palavra [3]: "HelpA ' ndices slice degenerados so tratados normalmente: um ndice que muito grande passa a ter o tamanho da corda, um limite superior menor que o limite inferior retorna uma string vazia. ndices podem ser nmeros negativos, para iniciar a contagem a partir da direita. Por exemplo: >> Palavra> [-1] # O ltimo personagem 'A' >> Palavra> [-2] # O passado-mas-um carter 'P' >> Palavra> [-2:] # Os dois ltimos caracteres 'Pa' >>> [Palavra: -2] # Tudo exceto os dois ltimos caracteres "Hel" Mas observe que -0 realmente o mesmo que 0, por isso ele no contar da direita! >> Palavra> [-0] # (uma vez que igual a 0 -0) 'H'

Out-of-range fatia ndices negativos so truncados, mas no tente fazer isso em um nico elemento (fatia ou no) os ndices: >>> Palavra [-100:] "HelpA ' >> Palavra> [-10] erro # Traceback (chamada mais recente passada): Arquivo "<stdin>", line 1, in? IndexError: ndice seqncia fora de alcance

TUTORIAL PYTHON 3.1 Portugus Uma maneira de lembrar como slices trabalho pensar como os ndices que apontam entre os personagens, com a extremidade esquerda do primeiro caractere numerado 0. Ento, a margem direita do ltimo caractere de uma string de n caracteres tem ndice n, por exemplo: 5 ndices na seqncia, a segunda linha

A primeira linha de nmeros d a posio do 0

apresenta os ndices negativos correspondentes. A fatia de i at j consiste em todos os caracteres entre as arestas rotuladas I e J, respectivamente. Para ndices no-negativo, o comprimento de uma fatia a diferena entre os ndices, se ambos esto dentro dos limites. Por exemplo, o comprimento da palavra [1:3] 2. A built-in funo len () retorna o comprimento de uma string: >>> S = "supercalifragilisticexpialidocious ' >> Len> (s) 34 Veja tambm Seqncia Tipos - str, bytes, ByteArray, lista, tupla, intervalo Strings so exemplos de tipos de seqncia, e apoiar as operaes comuns suportados por esses tipos. String Mtodos Strings suportam um grande nmero de mtodos de transformaes de base e busca. Seqncia de formatao Informaes sobre string de formatao com str.format () descrito aqui.

String Old operaes de formatao As operaes de formatao de idade chamado quando cordas e cadeias de caracteres Unicode so o operando esquerda do operador% so descritas em mais detalhes aqui. Comeando com Python 3.0 todas as strings Unicode apoio (ver http://w.unicode.org/). Unicode tem a vantagem de fornecer um nmero ordinal para cada personagem em cada script usado em textos antigos e modernos. Anteriormente, havia apenas 256 caracteres ordinais possvel para script. Textos eram tipicamente vinculados a uma pgina de cdigo que mapeou os ordinais para caracteres script. Isso levou confuso muito especialmente no que diz respeito internacionalizao (geralmente escrito como i18n - 'i' + 18 caracteres n '+') do

TUTORIAL PYTHON 3.1 Portugus software. Unicode resolve esses problemas ao definir uma pgina de cdigo para todos os scripts. Se voc desejar incluir caracteres especiais em uma string, voc pode fazer isso usando a codificao Python Unicode-Escape. O exemplo a seguir mostra como: >>> "Ol \ u0020World! "Ol Mundo!" A seqncia de escape \ u0020 indica a insero de caracteres Unicode com valor ordinal 0x0020 (o espao) na posio determinada. Outros personagens so interpretados por meio de seus respectivos valores ordinais diretamente como ordinais em Unicode. Se voc possui strings literais na codificao padro Latin-1 que usado em muitos pases ocidentais, voc vai achar conveniente que a menor de 256 caracteres Unicode so os mesmos que os 256 caracteres Latin-1. Para alm destas codificaes padro, Python oferece um conjunto de outras formas de criao de cadeias de caracteres Unicode com base em uma codificao conhecido.

Para converter uma string em uma seqncia de bytes utilizando uma codificao especfica, objetos string fornecer um encode (), mtodo que leva um argumento, o nome da codificao. nomes em minsculas para codificaes so preferidos. Python sabe que um nmero de tipos de dados compostos, utilizadas para agrupar outros valores. O mais verstil a lista, que pode ser escrita como uma lista de valores separados por vrgula (itens) entre colchetes. Os itens da lista no precisa ter todos o mesmo tipo. Como os ndices de string, ndices lista comea em 0, e as listas podem ser cortados, concatenadas e assim por diante:

TUTORIAL PYTHON 3.1 Portugus Ao contrrio de cordas, que so imutveis, possvel mudar elementos individuais da lista: Atribuio de fatias tambm possvel, e isso pode at mesmo alterar o tamanho da lista ou limp-la inteiramente: um [0:02] = [1, 12] a] [0:02 = [] a] [1:1 = Bletch [',' xyzzy '] >>> # Substituir alguns itens: >>> A [1, 12, 123, 1234] >>> # Remova alguns: >>> A [123, 1234] >>> # Inserir alguns: >>> A [123, "Bletch ',' xyzzy ', 1234] >>> # Inserir (uma cpia) de si mesmo no incio >>> A [: 0] = a

>>> A [123, "Bletch ',' xyzzy ', 1234, 123, Bletch', xyzzy ', 1234] >>> # Limpar a lista: substituir todos os itens de uma lista vazia A built-in funo len () tambm se aplica s listas:

TUTORIAL PYTHON 3.1 Portugus possvel aninhar listas (criar listas contendo outras listas), por exemplo: Voc pode acrescentar algo ao final da lista: Note-se que no ltimo exemplo, p [1] e q realmente se referem ao mesmo objeto! Voltaremos ao objeto semntica mais tarde. 3.2. Primeiros passos rumo a programao Naturalmente, ns podemos utilizar Python para tarefas mais complicadas do que somar dois e dois juntos. Por exemplo, podemos escrever uma primeira sub-seqncia da srie de Fibonacci da seguinte forma: # A soma de dois elementos define o prximo a, b = 0, 1 print (b) a, b = b, a + b >>> # Srie de Fibonacci: >>> While b <10: 1 1 2 3 5 8 Este exemplo introduz diversas novas funcionalidades. *

TUTORIAL PYTHON 3.1 Portugus A primeira linha contm uma atribuio mltipla: as variveis a e b simultaneamente recebem os novos valores 0 e 1. Na ltima linha deste usado novamente, demonstrando que as expresses do lado direito so avaliadas antes de qualquer das atribuies lugar. As expresses do lado direito so avaliadas da esquerda para a direita. * O lao while executado enquanto a condio (aqui: b <10) continua a ser verdade. Em Python, como em C, qualquer valor diferente de zero inteiro verdade; zero falso. A condio tambm pode ser uma string ou lista de valores, na verdade qualquer sequncia nada, com um comprimento de zero verdadeiro, seqncias vazias so falsas. O teste utilizado no exemplo uma comparao simples. Os operadores de comparao padro so escritos da mesma forma como no C: <(menor que),> (maior que), == (igual), <= (menor ou igual),> = (maior ou igual a) e! = (no igual). * O corpo do loop recuado: recuo Python a maneira de agrupar comandos. Python no (ainda!) Fornecer uma facilidade de edio inteligente de entrada de linha, ento voc tem que digitar um separador ou espao (s) para cada linha recuada. Na prtica, voc vai preparar a entrada mais complicado para Python com um editor de texto, a maioria dos editores de texto tm uma facilidade de auto-travesso. Quando uma instruo composta inserida de forma interactiva, que deve ser seguido por uma linha em branco para indicar a concluso (uma vez que o analisador no possvel adivinhar quando voc digitou a ltima linha). Note que cada linha dentro de um bloco de base deve ser recuado no mesmo montante. * A funo print () escreve o valor da expresso (s) dado. Ela difere de apenas escrever a expresso que voc quer escrever (como fizemos nos exemplos anteriores calculadora) na forma como ele lida com vrias expresses, quantidades ponto flutuante e strings. Strings so impressas sem aspas, e um espao inserido entre itens, para que voc possa formatar as coisas bem, como este: >>> I = 256 * 256 >>> Print ('O valor de i , i) O valor de i 65.536 O fim-chave pode ser usada para evitar a quebra de linha aps a sada ou a sada final com uma seqncia diferente: print (b, end = ')

a, b = b, a + b

TUTORIAL PYTHON 3.1 Portugus 4. Mais Ferramentas de Controle de Fluxo Alm da afirmao, enquanto apenas introduziu, Python sabe as demonstraes usuais de controle de fluxo conhecido de outras lnguas, com algumas reviravoltas. 4.1. if Talvez o tipo de instruo mais conhecida a declarao. Por exemplo: x=0 print ('Negativo mudou para zero') elif x == 0: print ('Zero') elif x == 1: print ('Single') else: print ('Mais') >>> X = int (input ("Por favor insira um nmero inteiro:")) Introduza um nmero inteiro: 42 >>> If x <0: Mais elif ... elif ... seqncia

abreviao de 'else if', e til para evitar identao excessiva. Uma se

Pode haver zero ou mais partes elif, e outra parte opcional. elif A palavra-chave " a um substituto para o switch ou caso as declaraes encontradas em outras lnguas. 4.2. Instrues For A instruo em Python difere um pouco do que poder ser usado em C ou Pascal. Ao invs de sempre interagindo atravs de uma progresso aritmtica de nmeros (como em Pascal), ou dando ao usurio a capacidade de definir tanto o passo de iterao e condio de parada (como C), Python para declarao itera sobre os itens de uma sequncia (uma lista ou uma seqncia de caracteres), na ordem em que aparecem na seqncia. Por exemplo (sem trocadilhos): ] A = [gato ',' janela ', defenestrate' print (x, len (x)) >>> Medida algumas seqncias: >>> For x in a: Cat 3 janela do 6 defenestrate 12

TUTORIAL PYTHON 3.1 Portugus

No seguro para modificar a seqncia que est sendo iterada no loop (isso s pode acontecer para os tipos de seqncia mutveis, como listas). Se voc precisar modificar a lista que voc est iterando (por exemplo, para duplicar itens selecionados), voc deve iterar sobre uma cpia. A notao de slice faz presente particularmente conveniente:
if len (x)> 6: a.insert (0, x) >>> For x in a [:]: # faz uma cpia fatia de toda a lista >>> A ] Defenestrate [',' gato ',' janela ',' defenestrate ' 4.3. A funo range () Se voc precisa fazer para iterar sobre uma seqncia de nmeros, o built-in funo gama () vem a calhar. Ele gera progresses aritmticas: print (i) >>> For i in range (5): 0 1 2 3 4 O ponto final dado no faz parte da lista gerada; intervalo (10) gera 10 valores, os ndices legais para os itens de uma seqncia de comprimento 10. possvel deixar iniciar o intervalo em outro nmero, ou para especificar um incremento diferente (mesmo negativa, s vezes isso chamado de passo "): Para iterar sobre os ndices de uma seqncia, voc pode combinar range () e len () como segue: >>>] A = ['Maria', 'tinha', 'a', 'pouco', cordeiro ' >>> For i in range (len (a)): print (i, a [i]) TUTORIAL PYTHON 3.1 Portugus 0 Mary 1 teve 2-A 3 pequenas 4 cordeiro

Na maioria dos casos, no entanto, conveniente usar a enumerar () funo, consulte Looping Tcnicas. Uma coisa estranha que acontece se voc acabou de imprimir um intervalo: >>> Print (intervalo) (10) intervalo (0, 10) Em muitas maneiras o objeto retornado por range () se comporta como se fosse uma lista, mas na verdade no . um objeto que retorna os itens sucessivos da seqncia desejada quando voc iterar sobre ele, mas ele realmente no fazer a lista, economizando espao. Dizemos que um objeto iterveis, ou seja, como um destino adequado para as funes e as construes que esperam algo de que eles podem obter itens sucessivos at que a oferta est esgotada. Vimos que a instruo for como um iterador. A lista () funo outra, que cria listas de iterables:

Mais tarde veremos mais funes que iterables retorno e tomar iterables como argumento. 4.4. break e continue, e mais clusulas de Loops A instruo break, como no C, irrompe do menor para que encerram ou while. A instruo continue, tambm emprestado do C, continua com a prxima iterao do loop. Declaraes Loop pode ter uma clusula else, que executado quando o lao se encerra por exausto da lista (com a) ou quando a condio se torne falsa (com tempo), mas no quando o lao encerrado por um comando break. Isto exemplificado pelo ciclo seguinte, que procura por nmeros primos:

para x no intervalo (2, n): se n% x == 0: print (n, ' igual', x, * ', / n / x) else: # Loop caiu completamente sem encontrar um factor print (n, ' um nmero primo ")

TUTORIAL PYTHON 3.1 Portugus 2 um nmero primo 3 um nmero primo 4 * 2 igual a 2 5 um nmero primo 6 igual a 2 * 3 7 um nmero primo 8 igual a 2 * 4 9 igual a 3 * 3 4.5. Demonstraes passar A declarao de passar no faz nada. Pode ser utilizado quando necessria uma declarao sintaticamente, mas o programa no requer nenhuma ao. Por exemplo: pass # Busy esperar para interrupo de teclado (Ctrl + C) >>> While True: Isto comumente usado para a criao de classes mnimas: passa r >>> Class MyEmptyClass: Outra passagem lugar pode ser usado como um lugar detentor de uma funo ou rgo subordinado quando voc est trabalhando no novo cdigo, permitindo-lhe manter-se pensar em um nvel mais abstracto. O passe ignorado: pass # Lembre-se de implementar isso! >> Initlog def> (* args): 4.6. Definindo Funes Podemos criar uma funo que escreve a srie de Fibonacci para um limite arbitrrio: "" "Mostra uma srie de Fibonacci at n." "" a, b = 0, 1 enquanto o n <: >> Def fib> (n): # escrever srie de Fibonacci at n ... print (a, fim = ')

a, b = b, a +

b print () FIB (2000) A palavra-chave def introduz uma definio de funo. Deve ser seguido do nome da funo eo parntesis lista de parmetros formais. Os depoimentos que formam o corpo do incio da funo na linha seguinte, e deve ser recuado. A primeira instruo do corpo da funo pode ser opcionalmente uma seqncia literal, esta string literal string a funo de documentao, ou docstring. (Mais sobre docstrings podem ser encontradas na seo Documentao Strings.) Existem ferramentas que utilizam docstrings para produzir automaticamente online ou a documentao impressa, ou para permitir que o usurio navegar interativamente por meio de cdigo, boa prtica incluir docstrings no cdigo que voc escreve, ento faa disso um hbito.

A execuo de uma funo de introduzir uma nova tabela de smbolos utilizados para as variveis locais da funo. Mais precisamente, olhar todas as atribuies de variveis em uma loja de funo o valor na tabela de smbolos local, referncias Considerando primeira varivel na tabela de smbolos local, em seguida, nas tabelas de smbolo do local que encerram funes e, em seguida na tabela de smbolos global e, finalmente, no tabela de built-in nomes. Assim, as variveis globais no podem ser diretamente atribudo um valor dentro de uma funo (a no ser chamado em uma declarao global), embora possam ser referenciadas. Os parmetros reais (argumentos) para uma chamada de funo so introduzidos na tabela de smbolos local da funo chamada quando chamado, portanto, argumentos so passados usando a chamada por valor (onde o valor sempre uma referncia de objeto, e no o valor da objeto). [1] Quando uma funo chama outra funo, a tabela de smbolos do novo local criado para esse convite. A definio da funo introduz o nome da funo na tabela de smbolos corrente. O valor do nome da funo tem um tipo que reconhecido pelo interpretador como uma funo definida pelo usurio. Este valor pode ser atribudo a outro nome que tambm pode ser usado como uma funo. Isto serve como um mecanismo geral renomear: >> Fib> fib <funo em 10042ed0> >>> F = fib Vindo de outras lnguas, voc pode fib objeto que no uma funo, mas um processo, uma vez que no retorna um valor. Na verdade, at mesmo funes sem uma declarao de

TUTORIAL PYTHON 3.1 Portugus retorno no retornar um valor, embora um pouco aborrecido. Esse valor chamado None ( um embutido no nome). Escrevendo o valor None normalmente suprimido pelo intrprete, se no seria o nico valor por escrito. Voc pode ver se voc realmente quer usar print (): >> Fib> (0) >>> Print (fib (0)) Nenhum muito simples escrever uma funo que retorna uma lista dos nmeros da srie de Fibonacci, ao invs de imprimi-lo: "" "Retorna uma lista contendo a srie de Fibonacci at n." "" resultado = [] a, b = 0, 1 enquanto o n <: result.append (a) # veja abaixo

a, b = b, a + b resultado de retorno >> Def> fib2 (n): # retorno da srie de Fibonacci at n >>> = F100 fib2 (100) # cham-lo Este exemplo, como de costume, demonstra algumas caractersticas novas: * O retorno instruo retorna com um valor de uma funo. retornar sem expresso Nenhum argumento retorna. Cair no final de uma funo tambm retorna None. * A declarao result.append (a) chama um mtodo do objeto da lista de resultado. Um mtodo uma funo que "pertence" a um objeto e chamada obj.methodname, onde obj um objeto (pode ser uma expresso), e methodname o nome de um mtodo que definido pelo tipo do objeto. Diferentes tipos definir mtodos diferentes. Mtodos de tipos diferentes podem ter o mesmo nome sem causar ambigidade. ( possvel definir os tipos de objeto e mtodos prprios, utilizando-se classes, consulte Classes) O mtodo append () mostrado no exemplo est definido para objetos de lista, que acrescenta um novo elemento no final da lista. Neste exemplo, equivalente ao resultado = + resultado [a], mas mais eficiente. 4.7. Mais sobre Definio de Funes Tambm possvel definir funes com um nmero varivel de argumentos. Existem trs formas, que podem ser combinados. 4.7.1. Valores padro de argumentos A forma mais til para especificar um valor padro para um ou mais argumentos. Isso cria uma funo que pode ser chamado com menos argumentos do que definido para permitir.

TUTORIAL PYTHON 3.1 Portugus Por exemplo: ask_ok def (prompt, tentativas = 4, queixa = 'Sim ou no, por favor! "): enquanto True: entrada ok = (prompt) ok se em ('y', vs ',' yes '): retornar True ok se em ('n', 'no', nop ',' No '): retornar False tentativas = tentativas - 1 se tentativas 0 <: levantar IOError ('user refusenik ") denncia print () Esta funo pode ser chamado de vrias maneiras: * Dando apenas o argumento obrigatrio: ask_ok ('Voc realmente deseja sair? ") * Dando um dos argumentos opcionais: ask_ok ('OK para substituir o arquivo? ", 2)

* Ou at mesmo dando a todos os argumentos: ask_ok ('OK para substituir o arquivo? ", 2,' Come on, apenas sim ou no!) Este exemplo tambm introduz a palavra-chave no. Isso testa se uma seqncia contm um certo valor. Os valores default so avaliados no momento da definio de funo no mbito definindo, de modo que i = 5 def f (arg = i): print (arg) i = 6 (F) ser impresso 5. AVISO IMPORTANTE: O valor padro avaliada apenas uma vez. Isso faz uma diferena quando o padro um objeto mutvel como uma lista de dicionrios, ou mais instncias de classes. Por exemplo, a seguinte funo acumula os argumentos passados em chamadas subsequentes: def f (a =[]):, L L.append (a) retorno L

TUTORIAL PYTHON 3.1 Portugus print (f) (1) print (f) (2) print (f) (3) Isto ir imprimir Se voc no quer que o padro a ser compartilhada entre as chamadas subseqentes, voc pode escrever a funo assim: def f (a, L = None): se L : Nenhum L = [] L.append (a) retorno L 4.7.2. Argumentos Palavra Funes tambm podem ser chamados usando argumentos-chave da chave = valor formulrio. Por exemplo, a funo do seguinte: papagaio def (tenso, estado = 'a duras', a ao voom = ', type = "Blue noruegus"): print ("Este papagaio no ao", end = ') print ("se voc colocar" tenso ", volts por ele.") print ("Lovely plumagem, o", tipo) print ("- ", "Estado"! ") poderia ser chamado em qualquer uma das seguintes maneiras:

papagaio (1000) papagaio (action = "VOOOOOM, tenso = 1000000) parrot ('a' mil, estado = 'empurrando para cima as margaridas ") parrot ('a' milhes ', desprovida de vida "," salto ") mas as chamadas seguinte tudo seria invlido: papagaio () # exigido argumento ausente Papagaio (tenso = 5.0 a seguir, 'morto') # argumento no-palavra-chave palavra-chave papagaio (110, tenso = 220) # valor duplicado para o argumento parrot (actor = 'John Cleese palavra-chave') # desconhecido

TUTORIAL PYTHON 3.1 Portugus Em geral, uma lista de argumentos deve ter argumentos posicionais seguido por todos os argumentos-chave, onde as palavras devem ser escolhidos de entre os nomes de parmetro formal. No importante se um parmetro formal tem um valor padro ou no. Nenhum argumento pode receber um valor mais de uma vez - os nomes dos parmetros formais correspondendo a argumentos posicionais no podem ser usados como palavras-chave na mesma chama. Aqui est um exemplo que falhar devido a esta restrio: passa r >> Funo def> (a): >>> Funo (0, a = 0) Traceback (chamada mais recente passada): Arquivo "<stdin>", line 1, in? TypeError: () funo tem vrios valores para o argumento-chave "a" Quando um parmetro formal final do formulrio ** denominao est presente, ele recebe um dicionrio (veja Mapeamento de Tipos - dict) contendo todos os argumentos-chave, exceto para aqueles que corresponde a um parmetro formal. Isto pode ser combinado com um parmetro formal do nome * formulrio (descrito na prxima subseo), que recebe uma tupla contendo os argumentos posicionais alm da lista de parmetro formal. (* Nome deve ocorrer antes ** nome.) Por exemplo, se definir uma funo como esta: cheeseshop def (tipo, os argumentos *, ** palavras-chave): print ("- Voc tem algum" tipo "?") print ("- Eu sinto muito, todos ns estamos fora", tipo) por arg em argumentos: print (arg) print ("-" * 40) Teclas ordenadas = (keywords.keys ()) por kw em chaves: print (kw, "", palavraschave [kW]) Poderia ser chamado assim: cheeseshop ("Limburger", " muito corrimento, senhor." " realmente muito, muito corrimento, senhor." lojista = "Michael Palin", client = "John Cleese", sketch = "Cheese Shop Sketch") e claro que iria imprimir:

- Voc tem algum Limburger? - Sinto muito, estamos todos de Limburger muito corrimento, senhor. realmente muito, muito corrimento, senhor. ----------------------------------------

TUTORIAL PYTHON 3.1 Portugus cliente: John Cleese lojista: Michael Palin sketch: Cheese Shop Sketch Note que a lista de nomes de argumento-chave criado por ordenar o resultado das palavraschave dicionrio de teclas () mtodo antes de imprimir o seu contedo, se isso no for feito, a ordem na qual os argumentos so impressos indefinido. 4.7.3. Listas de argumentos arbitrrios Finalmente, menos freqentemente usado opo para especificar que uma funo pode ser chamada com um nmero arbitrrio de argumentos. Esses argumentos sero embrulhados em uma tupla (ver Tuples e seqncias). Antes do nmero varivel de argumentos, zero ou mais argumentos normais podem ocorrer. write_multiple_items def (arquivo, separador, * args): file.write (separator.join (args)) Normalmente, esses argumentos varidicas sero os ltimos na lista de parmetros formais, at porque colher todos os argumentos de entrada restantes que so passados para a funo. Todos os parmetros formais que ocorrem aps o parmetro args * so argumentos por palavra-chave apenas, o que significa que eles s podem ser utilizados como palavras-chave em vez de argumentos posicionais. sep.join retorno (args) >> Concat def> (* args, ="/"): setembro >> Concat> ("terra", "Marte", "Venus") Terra / Marte / Vnus ' >> Concat> ("terra", "Marte", "Vnus", =".") setembro "Earth.mars.venus ' 4.7.4. Argumento Desembalar Lista A situao inversa ocorre quando os argumentos j esto numa lista ou tupla, mas precisa ser descompactado para uma chamada de funo que exige separar argumentos posicionais. Por exemplo, o built-in range () funo espera comear a separar e parar de argumentos. Se eles no esto disponveis separadamente, escreva a chamada de funo com o operador *- para descompactar os argumentos de uma lista ou tupla: > Lista> (gama (3, 6)) # chamada normal com argumentos distintos [3, 4, 5] >>> Args = [3, 6] > Lista> (intervalo (* args)) # chamada com argumentos descompactado a partir de uma lista [3, 4, 5]

TUTORIAL PYTHON 3.1 Portugus Da mesma forma, os dicionrios podem entregar chave argumentos com o operador **-: print ("- Este papagaio no ao", end = ') print ("se voc colocar" tenso ", volts por ele." end = ') print ("E", estado! ") >> Papagaio def> (tenso, estado = 'a duras ", action =" voom "): >>> D = (tenso ":" quatro milhes "," Estado ":" sangrando "arrendado", "ao": "VOOM") >> Papagaio> (** d) - Este papagaio no VOOM se voc colocar quatro milhes de volts por ele. demised sangrando E ! Por demanda popular, algumas caractersticas comumente encontradas em linguagens de programao funcional como Lisp foram adicionados ao Python. Com a palavra-chave lambda, funes annimas pequenas podem ser criados. Aqui est uma funo que retorna a soma dos seus dois argumentos: lambda a, b: a + b. formas de Lambda pode ser usado sempre que a funo objetos so obrigatrios. Eles so sintaticamente restrita a uma nica expresso. Semanticamente, so apenas acar sinttico para a definio de funo normal. Como definies de funo aninhada, formas lambda pode variveis de referncia a partir do mbito contendo: lambda retornar x: x + n >> Make_incrementor def> (n): >>> F = make_incrementor (42) >>> F (0) 42 >>> F (1) 43 4.7.6. Strings de Documentao Aqui esto algumas convenes sobre o contedo ea formatao de seqncias de documentao. A primeira linha deve ser sempre um resumo curto e conciso da finalidade do objeto. Para resumir, no deveria explicitar o nome do objeto ou do tipo, uma vez que estes esto disponveis por outros meios (exceto se o nome passa a ser um verbo que descreve a operao de uma funo). Esta linha deve comear com uma letra maiscula e termina com um ponto.

Se houver mais linhas na string de documentao, a segunda linha deve ser branco, visualmente separar o resumo do resto da descrio. As linhas a seguir devem ser um ou mais pargrafos descrevendo as convenes de chamada do objeto, seus efeitos colaterais, etc

TUTORIAL PYTHON 3.1 Portugus O interpretador Python no tira recuo da linha multi-literais string em Python, assim ferramentas que documentao do processo que tira o recuo se desejado. Isso feito usando a seguinte conveno. A primeira linha no-branco aps a primeira linha da seqncia determina a quantidade de recuo para a cadeia toda documentao. (Ns no podemos usar a primeira linha, uma vez que geralmente adjacente abertura da string entre aspas para que seu recuo no aparente na seqncia literal). Whitespace "equivalente" a este recuo , ento, retirados do incio de todas as linhas da string . Linhas que so recuadas menos no deveria ocorrer, mas se ocorrer todos os espaos a sua liderana devem ser retirados. Equivalncia de branco deve ser testada aps a expanso de guias (de 8 espaos, normalmente). Aqui est um exemplo de um docstring multi-linha: "" No fazer nada, mas documentla. No, realmente, ele no faz nada. "" " passar >> Minha_funcao def> (): >>> Print (my_function.__doc__) No fazer nada, mas document-la. No, realmente, ele no faz nada. 4.8. Intermezzo: Codificao Estilo Agora que voc est prestes a escrever mais, as partes mais complexas do Python, um bom momento para falar sobre o estilo de codificao. A maioria das lnguas pode ser escrito (ou mais concisa, formatado), em estilos diferentes, alguns so mais legveis do que outras. Tornar mais fcil para os outros a ler o seu cdigo sempre uma boa idia, e adotando um estilo agradvel de codificao ajuda tremendamente para isso. Para Python, PEP 8 emergiu como o guia de estilo que mais aderem a projectos, que promove uma leitura muito agradvel e olhos estilo de codificao. Todo desenvolvedor Python deve llo em algum momento, aqui esto os pontos mais importantes extrados para voc: Use indentao de 4 espaos, e sem abas.

4 espaos so um bom compromisso entre o recuo pequeno (permite uma maior profundidade de assentamento) e recuo de grande porte (mais fcil de ler). Tabs introduzir confuso, e melhor ficar de fora.

TUTORIAL PYTHON 3.1 Portugus Quebrar linhas de modo que no excedam 79 caracteres. Isso ajuda os usurios com telas pequenas e torna possvel ter vrios arquivos de cdigo lado a lado em telas maiores. * Use linhas em branco para separar as funes e classes, e grandes blocos de cdigo dentro de funes. * Quando possvel, colocar os comentrios em uma linha prpria. * Use docstrings. * Use espaos em torno de operadores e aps uma vrgula, mas no diretamente dentro bracketing construes: a = f (1, 2) + g (3, 4). * Nome suas classes e funes de forma consistente, a conveno usar CamelCase para aulas e lower_case_with_underscores para funes e mtodos. Sempre use "eu" como o nome para o argumento primeiro mtodo (ver Um primeiro olhar em classes para mais informaes sobre classes e mtodos). * No use fantasia codificaes se o seu cdigo feito para ser usado em ambientes internacionais. padro do Python, UTF-8, ou mesmo em ASCII melhor trabalho em qualquer caso. * Da mesma forma, no utilizar caracteres no-ASCII em identificadores se houver apenas a menor chance de pessoas falando uma lngua diferente vai ler ou manter o cdigo. Notas de Rodap [1] Na verdade, chamada por referncia de objeto seria uma melhor descrio, pois, se um objeto mutvel passado, o chamador vai ver todas as mudanas o receptor faz para ele (itens inseridos em uma lista). 5. Estruturas de Dados Este captulo descreve algumas coisas que voc j aprendeu em mais detalhes, e adiciona algumas coisas novas tambm.

TUTORIAL PYTHON 3.1 Portugus 5.1. Mais informaes sobre listas A lista de tipo de dados tem alguns mtodos mais. Aqui esto todos os mtodos de objetos da lista: list.append (x) Adicionar um item ao fim da lista, equivalente a uma len [(a): [] = x]. list.extend (L) Estender a lista anexando todos os itens da lista fornecida, equivalente a uma len [(a):] = L. list.insert (i, x) Inserir um item em uma determinada posio. O primeiro argumento o ndice do elemento que antes de inserir, de forma a.insert (0, x) insere na frente da lista, e a.insert (len (a), x) equivalente a a.append ( x). list.remove (x) Remove o primeiro item da lista cujo valor x. um erro se no houver esse item. list.pop ([i]) Remove o item na posio dada na lista, e devolv-lo. Se nenhum ndice especificado, a.pop () remove e retorna o ltimo item na lista. (Os colchetes em torno do eu na assinatura do mtodo indicam que o parmetro opcional, e no que voc deve digitar colchetes nessa posio. Voc ver essa notao com frequncia na Referncia da Biblioteca Python.) list.index (x) Retornar ao ndice na lista do primeiro item cujo valor x. um erro se no houver esse item. list.count (x) Retorna o nmero de vezes que x aparece na lista. list.sort () Ordenar os itens da lista, no lugar. list.reverse () Reverter os elementos da lista, no lugar. Um exemplo que utiliza a maior parte da lista de mtodos:

TUTORIAL PYTHON 3.1 Portugus 5.1.1. Usando Listas como pilhas A lista de mtodos de faz-lo muito fcil de usar uma lista como uma pilha, onde o ltimo elemento adicionado o primeiro elemento recuperado ("last-in, first-out"). Para adicionar um item ao topo da pilha, use append (). Para recuperar um item do topo da pilha use pop () sem um ndice explcito. Por exemplo: >>> Pilha = [3, 4, 5] >>> Stack.append (6) >>> Stack.append (7) >>> Pilha [3, 4, 5, 6, 7] >>> Stack.pop () 7 >>> Pilha [3, 4, 5, 6] >>> Stack.pop () 6 >>> Stack.pop () 5 >>> Pilha [3, 4] 5.1.2. Usando listas de filas Tambm possvel usar uma lista como uma fila, onde o primeiro elemento adicionado o primeiro elemento recuperado ("first-in, first-out"), no entanto, as listas no so eficientes para essa finalidade. Enquanto acrescenta e aparece a partir do final da lista so rpidos, fazendo inseres ou aparece desde o incio de uma lista lenta (porque todos os outros elementos tm de ser desviado por um).

TUTORIAL PYTHON 3.1 Portugus collections.deque usar para implementar uma fila, que foi projetado para ter acrescenta rpido e pops de ambas as extremidades. Por exemplo: >>> A partir de coleces deque de importao >> Fila> = deque (["Eric", "John", "Michael"]) >>> Queue.append ("Terry") # Terry chega >>> Queue.append ("Graham") # Graham chega >> Queue.popleft> () # O primeiro a chegar agora sai 'Eric' >> Queue.popleft> () # O segundo a chegar agora sai 'Joo' >> Fila> fila # restante por ordem de chegada deque (["Michael", "Terry", "] Graham) 5.1.3. Compreenses Lista compreenses Lista fornecem uma maneira concisa para criar listas de seqncias. As aplicaes comuns esto a fazer listas, onde cada elemento o resultado de algumas operaes aplicadas a cada membro da seqncia, ou criar uma subsequncia dos elementos que satisfazem uma certa condio. A compreenso lista constituda de suportes que contm uma expresso seguida de uma clusula para, em seguida, zero ou mais para se ou clusulas. O resultado ser uma lista resultante da avaliao da expresso no contexto da e para as clusulas que se seguem. Se a expresso para se avaliar uma tupla, ele deve estar entre parnteses. Aqui vamos dar uma lista de nmeros e retornar uma lista de trs vezes cada nmero: Agora ns temos um pouco mais extravagante: Aqui ns aplicamos uma chamada de mtodo para cada item em uma seqncia: Fruta]>> freshfruit> = banana [',' loganberry ',' paixo ' >>> Weapon.strip [() para a arma em freshfruit] ] Banana [',' loganberry ',' paixo ' Usando a clusula que se pode filtrar o fluxo:

TUTORIAL PYTHON 3.1 Portugus >>> [3 * x para x no vec se x> 3] [12, 18] >>> [3 * x para x no vec if x <2] [] Tuplas podem muitas vezes ser criado sem a sua parnteses, mas no aqui: >>> [X, x ** 2 de x em vec] Erro # - parnteses necessrios para tuplas Arquivo "<stdin>", line 1, in? [X, x ** 2 for x in vec] Aqui esto alguns nested loops e comportamento extravagante outros: compreenses lista pode ser aplicada a expresses complexas e funes aninhadas: 5.1.4. Compreenses lista aninhada Se voc tem estmago para isso, compreenses lista podem ser aninhados. Eles so uma ferramenta poderosa, mas - como todos os instrumentos poderosos - eles precisam ser usados com cuidado, se em tudo. Considere o seguinte exemplo de uma matriz 3x3 realizada como uma lista contendo trs listas, uma lista por linha: [1, 2, 3] [4, 5, 6] [7, 8, 9] >> Esteira> = [ ... ]

TUTORIAL PYTHON 3.1 Portugus Agora, se quiser trocar as linhas e colunas, voc pode usar uma lista de compreenso: Especial cuidado deve ser tomado para a compreenso lista aninhada: Para evitar a apreenso quando compreenses lista de nidificao, lido da direita para a esquerda. Uma verso mais detalhada desse trecho mostra o fluxo explicitamente: for i in [0, 1, 2]: para a linha em esteira: print (linha [i], final = "") print () No mundo real, voc deve preferir funes embutidas para demonstraes de fluxo de complexos. O zip () funo seria fazer um grande trabalho para este caso de uso: Veja Desembalar argumento listas para obter detalhes sobre o asterisco nesta linha. 5.2. A declarao del Existe uma maneira de remover um item de uma lista dada o seu ndice ao invs de seu valor: o comando del. Isso difere da pop () mtodo que retorna um valor. A declarao del tambm pode ser utilizado para remover fatias de uma lista ou limpar a lista inteira (o que fizemos anteriormente pela atribuio de uma lista vazia para a fatia). Por exemplo: del tambm pode ser usado para apagar as variveis inteiras:

TUTORIAL PYTHON 3.1 Portugus >>> Del a Referenciando o nome de um futuro um erro (pelo menos at que outro valor atribudo a ele). Ns vamos encontrar outros usos para del mais tarde. 5.3. Tuplas e Sequncias Ns vimos que listas e strings possuem muitas propriedades comuns, tais como indexao e operaes de slicing. Eles so dois exemplos de tipos de dados sequencial (ver seqncia Tipos - str, bytes, ByteArray, lista, tupla, intervalo). Desde que Python uma linguagem em evoluo, tipos de dados de seqncia de outros podem ser adicionados. Existe tambm um outro padro de seqncia tipo de dados: a tupla. Uma tupla consiste em uma srie de valores separados por vrgulas, por exemplo: u = t (1, 2, 3, 4, 5) Como voc v, em tuplas de sada so sempre colocados entre parnteses, a fim de que tuplas aninhados so interpretados corretamente, elas podem ser de entrada, com ou sem parnteses, embora muitas vezes parnteses so necessrios de qualquer forma (se a tupla parte de uma expresso maior). Tuplas tm muitos usos. Por exemplo: (x, y) pares de coordenadas, registros de funcionrios de um banco de dados, etc Tuples, como strings, so imutveis: no possvel atribuir valores a itens individuais de uma tupla (voc pode simular o mesmo efeito com corte e concatenao, embora). Tambm possvel criar tuplas que contm objetos mutveis, como listas. Um problema especial a construo de tuplas contendo 0 ou 1 itens: a sintaxe tem certos truques para acomodar esses. tuplas vazias so construdas por um par de parnteses vazios; uma tupla com um item construdo seguindo um valor com uma vrgula (que no suficiente para colocar um nico valor entre parnteses). Feio, mas eficaz. Por exemplo: >>> Vazio = () >> Singleton => 'Ol', # <- note trailing comma >>> Len (vazio) 0 >> Len> (singleton) 1

TUTORIAL PYTHON 3.1 Portugus >> Singleton> ('Ol',) A declarao t = 12345, 54321, 'Ol!' um exemplo de embalagem tupla: os valores 12345, 54321 e "Ol!" so empacotados juntos em uma tupla. A operao inversa tambm possvel:

>>> X, y, z = t Isso se chama, apropriadamente, o desempacotamento de sequncia e trabalha para qualquer seqncia no lado direito. Seqncia descompactar requer que h tantas variveis no lado esquerdo do sinal de igual como h elementos na seqncia. Note-se que a atribuio mltipla realmente apenas uma combinao de embalagem e desembalagem tupla seqncia. 5.4. Define Python tambm inclui um tipo de dados para conjuntos. Um conjunto uma coleo no ordenada, sem elementos duplicados. utilizaes bsicas incluem a adeso de ensaio e eliminar entradas duplicadas. Definir os objetos tambm apoiar as operaes matemticas como unio, interseco, diferena e diferena simtrica. Chaves ou o set () funo pode ser usada para criar jogos. Nota: Para criar um conjunto vazio que voc tem que usar set (), no (), o ltimo cria um dicionrio vazio, uma estrutura de dados que vamos discutir na prxima seo. Aqui est uma breve demonstrao: >> Cesto> = (ma ',' laranja ', a ma', 'pra', laranja ',' banana ') >>> Print (cesta) (Laranja ', banana', 'pera, ma') ]>> Fruta => Apple [',' laranja ', a ma', 'pra', laranja ',' banana ' >> Fruta => set (cesta) # criar um jogo sem duplicatas >> Fruto> (Laranja ', pra', 'ma', banana ') >> Fruto> = (laranja ',' ma ') # sintaxe () equivalente a [] para listas >> Fruto> (Laranja ', a ma') laranja>>> 'no sector das frutas # teste rpido adeso Verdadeiro crabgrass>>> 'no sector das frutas Falso

>>> # Demonstrar conjunto de operaes sobre as cartas originais de duas palavras >>> Um jogo = ("Abracadabra") >>> B = set ('alacazam) >>> A # letras originais em um

TUTORIAL PYTHON 3.1 Portugus Tal como para as listas, h uma compreenso de conjunto sintaxe: >>> A = (x em x de "abracadabra" se x no em 'ABC') >>> A (R ',' d ') 5.5. Dicionrios Outro tipo de dados til construda em Python o dicionrio (veja Mapeamento de Tipos - dict). Os dicionrios so encontrados s vezes em outras lnguas como "memrias associativas" ou "arrays associativos". Ao contrrio de seqncias, que so indexados por uma srie de nmeros, dicionrios so indexados por chaves, que pode ser de qualquer tipo imutvel; strings e nmeros sempre podem ser as chaves. Tuplas podem ser usadas como chaves se contiverem apenas strings, nmeros ou tuplas, se uma tupla contm um objeto mutvel, directa ou indirectamente, no pode ser usado como uma chave. Voc no pode usar as listas como chaves, uma vez que as listas podem ser modificadas no local usando as atribuies do ndice, as atribuies fatia, ou mtodos como append () e estender (). melhor pensar em um dicionrio como um conjunto desordenado de-chave: valor pares, com a exigncia de que as chaves so nicas (dentro de um dicionrio). Um par de chaves cria um dicionrio vazia: (). Colocar uma lista separada por vrgulas de chaves: pares de valor dentro das chaves acrescenta chave inicial: valor pares para o dicionrio, este tambm o caminho dicionrios so escritos na sada. As principais operaes em um dicionrio so armazenar um valor com alguns dos principais e extrair o valor dado a chave. Tambm possvel apagar uma chave: valor par com del. Se voc armazenar usando uma chave que j est em uso, o antigo valor associado com essa chave esquecido. um erro para extrair um valor usando uma chave inexistente. lista Performing (d.keys ()) em um dicionrio retorna uma lista de todas as teclas usadas no dicionrio, em ordem arbitrria (se voc quiser classificados, basta usar classificado (d.keys ()) em vez). [1] Para verificar se uma nica chave est no dicionrio, use a palavra-chave no. Aqui est um pequeno exemplo usando um dicionrio:

TUTORIAL PYTHON 3.1 Portugus ]>>> Tel ['Irv' = 4,127 >> Tel> (Guido ': 4127 ", Irv': 4127, 'jack': 4098) >>> Lista (tel.keys ()) ] Irv [',' guido 'jack' >>> Classificado (tel.keys ()) ] Guido [',' Irv 'jack' guido>>> 'no tel Verdadeiro jack>>> 'no' no tel Falso O dict () construtor constri dicionrios diretamente a partir de seqncias de pares chavevalor: Alm disso, compreenses dict pode ser usado para criar dicionrios de chave arbitrria e expresses de valor: Quando as chaves so strings simples, s vezes mais fcil especificar os pares usando argumentos-chave: 5.6. Looping Tcnicas Quando o loop dicionrios, o valor da chave e podem ser recuperados correspondentes ao mesmo tempo usando os itens () mtodo. >>> Cavaleiros = ("Gallahad": "o 'puro' robin ':' bravos ') >>> Para k v, em knights.items (): ... print (k, v)

TUTORIAL PYTHON 3.1 Portugus Gallahad pura robin o bravo Quando o loop atravs de uma seqncia, o ndice de posio eo valor correspondente pode ser recuperada, ao mesmo tempo usando a funo () enumerar. print (i, v)

]>>> For i, v em enumerar toe (['tic' tac ','): 0 tic 1 tac Dois dedos Para loop por duas ou mais seqncias ao mesmo tempo, as entradas podem ser emparelhado com o zip () funo. ]>>> Perguntas = [nome ',' busca 'de cor' favorito ' >>> Respostas = Lancelot [',' o Santo Graal ','] 'azul print ('Qual a sua (0)? (1).. formato (q, a)) >>> Para q, em um zip (perguntas, respostas): Qual seu nome? Lancelot. Qual a sua misso? o Santo Graal. Qual a sua cor favorita? Ela azul. Para loop em uma seqncia no sentido inverso, em primeiro lugar especificar a seqncia para a frente e depois chamar a funo () invertidas. print (i) >>> For i in invertida (range (1, 10, 2)): 9 7 5 3 1 Para loop em uma seqncia na ordem de classificao, use o classificado () funo que retorna uma nova lista de classificados, deixando inalterada a fonte. print (f) ]>> Cesto> = ma [',' laranja ', a ma', 'pra', laranja ',' banana ' >>> For f in classificado (conjunto (cesta)): ...

TUTORIAL PYTHON 3.1 Portugus ma banana laranja pera 5.7. Mais informaes sobre as Condies As condies utilizadas no tempo e if podem conter quaisquer operadores, no s as comparaes. Os operadores de comparao in e no em verificar se um valor ocorre (no ocorre) em uma seqncia. Os operadores e no comparar se dois objetos so realmente o mesmo objeto,

o que importa apenas para objetos mutveis como listas. Todos os operadores de comparao possuem a mesma prioridade, que menor que a de todos os operadores numricos. Comparaes podem ser encadeadas. Por exemplo, a <b == c testa se uma menor que b e b resto igual a c. Comparaes podem ser combinadas usando os operadores booleanos AND e OR, e os resultados de uma comparao (ou de qualquer outra expresso Boolean) pode ser anulado com no. Estes possuem menor prioridade que os operadores de comparao, entre eles, no tem a prioridade mais alta ou mais baixa e, de modo que A e no B ou C equivalente a (A e no (B)) ou C. Como sempre, os parnteses podem ser usados para expressar a composio desejada. Os operadores booleanos AND e OR so chamados operadores de curto-circuito: os seus argumentos so avaliados da esquerda para a direita, ea avaliao pra logo que o resultado determinado. Por exemplo, se A e C so verdadeiros mas B falsa, A e B e C no avalia a expresso C. Quando utilizado como um valor geral e no como um valor booleano, o valor de retorno de um operador de um curto-circuito a ltima argumento avaliados. possvel atribuir o resultado de uma comparao ou outra expresso booleana a uma varivel. Por exemplo, >>> String1, string2, string3 =''', Trondheim', 'Hammer Dance' >> Non_null> = string1 ou string2 ou string3 >> Non_null> Trondheim Observe que em Python, diferentemente de C, a atribuio no pode ocorrer dentro de expresses. Programadores C podem resmungar sobre isso, mas evita uma classe comum de problemas encontrados em programas C: digitar = numa expresso quando == se destina. 5.8. Comparando Sequncias e Outros Tipos Sequncia de objetos podem ser comparados a outros objetos com o tipo de seqncia. A

TUTORIAL PYTHON 3.1 Portugus comparao lexicogrfica utiliza ordenao: em primeiro lugar os dois primeiros itens so comparados, e se diferem, este determina o resultado da

comparao, se eles forem iguais, nos prximos dois itens so comparados, e assim por diante, at que uma seqncia est esgotado. Se dois itens a serem comparados so prprias seqncias do mesmo tipo, a comparao lexicogrfica realizada de forma recursiva. Se todos os itens de comparar duas seqncias iguais, as seqncias so consideradas iguais. Se uma seqncia inicial uma subseqncia da outra, a menor seqncia menor (menos) um. Lexicogrfica encomendas de strings usa o nmero codepoint Unicode para a ordem de caracteres individuais. Alguns exemplos de comparaes entre sequncias do mesmo tipo: Note que os objetos comparao de diferentes tipos com <e> legal, desde que os objetos tm mtodos de comparao apropriada. Por exemplo, os tipos numricos mistos so comparados de acordo com seu valor numrico, de modo 0 igual a 0,0, etc Caso contrrio, ao invs de fornecer uma ordenao arbitrria, o intrprete ir levantar uma exceo TypeError. Notas de Rodap [1] d.keys Calling () ir retornar um objeto de exibio dicionrio. Ele suporta operaes como teste de adeso e de iterao, mas seu contedo no independente do dicionrio original - apenas uma exibio. 7. Entrada e Sada Existem vrias maneiras de apresentar o resultado de um programa, os dados podem ser impressos em forma legvel, ou escritos em um arquivo para uso futuro. Este captulo vai discutir algumas das possibilidades. 7.1. Criadores de sada formatao At agora ns encontramos duas maneiras de gravar valores: declaraes expresso ea funo print (). (A terceira maneira utilizar o mtodo write () de objetos de arquivo, o arquivo de sada padro pode ser referenciado como sys.stdout. Consulte a Biblioteca de Referncia para obter mais informaes sobre este assunto.) Muitas vezes voc quer mais controle sobre a formatao de sua sada do que simplesmente imprimindo valores separados por espaos. Existem duas maneiras de formatar a sua sada, a primeira maneira fazer tudo a seqncia de tratar-se, usando cordas de corte e concatenao voc pode criar qualquer layout que voc pode imaginar. A seqncia padro mdulo contm algumas operaes teis para cordas estofo para uma largura determinada

TUTORIAL PYTHON 3.1 Portugus coluna, que sero discutidos em breve. A segunda maneira usar o str.format () mtodo. O mdulo string contm uma classe de modelo que oferece ainda uma outra maneira para substituir valores em strings. Uma questo permanece, naturalmente: como voc converter valores para strings? Por sorte, Python possui maneiras de converter qualquer valor em uma string: pass-lo para o repr () ou str () funes. A funo STR () destina-se a devolver as representaes de valores que so bastante legvel, enquanto repr () utilizado para gerar representaes que podem ser lidos pelo interpretador (ou ser uma fora SyntaxError se no a sintaxe equivalente). Para objetos que no tm uma representao especfica para o consumo humano, str () ir retornar o mesmo valor que repr (). Muitos valores, tais como nmeros ou estruturas como listas e dicionrios, tm a mesma representao usando a funo. Strings e nmeros de ponto flutuante, em particular, tem duas representaes distintas. Alguns exemplos: >>> S = "O valor de x " + repr (x) + ', e Y ' + repr (y) +'...' O valor de x 32.5, e Y 40 mil Ol = "Ol, \ n mundo >>> Print (s) >>> # O repr () de uma string string adiciona aspas e barras invertidas: >>> Ois = repr (Ol) repr ((x, y, spam (',' ovos '))) >>> Print (hellos) "Ol, \ n mundo >>> # O argumento para repr () pode ser qualquer objeto Python: "(32.5, 40000, ('spam', 'ovos'))"

Aqui esto duas maneiras de escrever uma tabela de quadrados e cubos: >>> For x in range (1, 1):
print (repr (x) rjust. (2), repr (x * x) rjust. (3), end = ') # Note o uso de 'final' na linha anterior print (repr (x * x * x) rjust (4).) print ('(d) (0:02 01:03 02:04 d) (d). formato (x, x * x, x * x * x))

(Note que no primeiro exemplo, um espao entre cada coluna foi acrescentada pelo modo de impresso () funciona: ele sempre adiciona espao entre seus argumentos.)

Este exemplo demonstra o rjust () de objetos String, que direito justifica uma string em um campo de largura dada por preenchimento com espaos esquerda. H ljust mtodos semelhantes () e (centro). Esses mtodos no escrever nada, basta retornar uma nova seqncia. Se a seqncia de entrada muito longo, no truncar, mas devolv-lo inalterado, o que vai bagunar a sua coluna lay-out, mas isso geralmente melhor do que a alternativa, que seria mentir sobre um valor. (Se voc realmente quiser truncamento voc sempre pode adicionar uma operao de corte, como x.ljust em (n) []: n). H um outro mtodo, zfill (), que pastilhas de uma seqncia numrica na esquerda com zeros. Ela compreende cerca de mais e menos sinais:

TUTORIAL PYTHON 3.1 Portugus Basic uso do str.format () mtodo parecido com este: >>> Print ("Ns somos o que dizer) (formato "{}!"'. ('cavaleiros', 'Ni')) Ns somos os cavaleiros que dizem "Ni!" Os suportes e os personagens dentro deles (campos formato chamado) so substitudos por objetos que so passados para o mtodo format (). Um nmero entre parnteses pode ser usada para se referir posio do objeto passado para o mtodo format (). >>> Print ('(0) e (1)'. Formato ('spam', 'ovos')) spam e os ovos >>> Print ('(1) e (0)'. Formato ('spam', 'ovos')) ovos e spam Se os argumentos de palavras-chave so usadas no mtodo format (), seus valores so referidos usando o nome do argumento. alimentos = 'spam', adjetivo = "absolutamente horrvel")) >>> Print ("Este alimento (()) adjetivo.. (Formato Este spam absolutamente horrvel. argumentos posicionais e podem ser combinadas arbitrariamente: >>> Print ("A histria de (0), (1), e (outra).. Formato (" Bill "," Manfred ", outros = "Georg ')) A histria de Bill, Manfred e Georg.

! Um "(aplicar ascii ()), '!' S (aplicar str ()) e '! R" (aplicar repr ()) pode ser usado para converter o valor antes de ser formatado: >> Matemtica> Importar >>> Print ('O valor de PI aproximadamente formato {}.'. (math.pi)) O valor de PI aproximadamente 3,14159265359. >>> Print ('O valor de PI aproximadamente (!) R.. Formato (math.pi)) O valor de PI de aproximadamente 3,141592653589793. Um opcional ': especificador e formato pode acompanhar o nome do campo. Isto permite um maior controle sobre como o valor formatado. O exemplo a seguir trunca Pi trs casas depois da vrgula.