P. 1
Python

Python

|Views: 7|Likes:
Published by thesnaknet

More info:

Published by: thesnaknet on Aug 08, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

12/08/2014

pdf

text

original

Universidade Federal Fluminense Escola de Engenharia Curso de Engenharia de Telecomunica¸ oes c˜ Programa de Educa¸ ao Tutorial c˜ Grupo PET-Tele

Tutorial de Introdu¸˜o ao Python ca
(Versao: A2011M01D18) ˜ Niteroi - RJ ´ Janeiro / 2011

Sum´rio a
1 Caracter´ ısticas b´sicas da linguagem a 2 Obten¸˜o e instala¸˜o ca ca 3 Vari´veis a 4 Strings 4.1 Manipulando Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Opera¸˜es matem´ticas co a 6 Entrada de Dados 7 Listas 7.1 Inserindo um novo dado a uma lista . . 7.2 Impress˜o dos conte´dos da lista . . . a u 7.3 Determinar em que ordem um elemento 7.4 Remover um elemento de uma lista . . 7.5 Descobrir o tamanho de uma lista . . . 7.6 Range . . . . . . . . . . . . . . . . . . 8 Estruturas 8.1 If . . . 8.2 While 8.3 For . . 9 Dicion´rio a de . . . . . . 2 2 3 3 4 5 5 6 8 8 9 9 9 9

. . . . . . . . . . . . . . . . . . . . aparece na lista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

controle 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 13

10 Fun¸˜es co 14 10.1 Vari´veis em fun¸˜es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 a co 10.2 Recursividade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 11 M´dulos o 11.1 M´dulo Math . . . . . . . . . . . . . . . . o 11.2 M´dulo io - Manipula¸ao de arquivos . . . . o c˜ 11.3 PySQLite: Manipula¸ao de Bancos de Dados c˜ 11.3.1 Introdu¸ao . . . . . . . . . . . . . . . c˜ 11.3.2 Comandos b´sicos . . . . . . . . . . . a 12 Express˜es booleanas o 17 18 19 21 21 21 22

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

Introdu¸˜o ca
A id´ia de um ser humano, enquanto for apenas um pensamento, ´ algo amorfo, que existe por si e e mesma, n˜o necessitando de nada, al´m de si, para descrevˆ-la. Entretanto para compartilh´-la a e e a com outras pessoas precisamos descrever esta id´ia com palavras e frases, transformando este e pensamento em uma linguagem natural humana. Computadores e outros dispositivos eletrˆnicos program´veis possuem sua pr´pria forma de o a o “pensar”, isto ´, o c´digo bin´rio. M´quinas seguem instru¸oes determinadas pela energiza¸ao e o a a c˜ c˜ (ou n˜o) de determinadas partes em seus componentes. a Ent˜o para transmitir uma id´ia para uma m´quina devo me comunicar em zeros e uns? a e a A resposta para esta pergunta ´ um “sim” e um “n˜o”. Um “sim” pois, de fato, a “id´ia” que e a e ser´ recebida pela m´quina ser´ descrita como uma sequˆncia de zeros e uns. O “n˜o” se refere a a a e a a dizer que embora seja poss´ traduzir sua id´ia para uma linguagem natural da m´quina ıvel e a (bin´rio), este n˜o ´ o processo mais comum. A programa¸ao diretamente em bin´rio ´ algo a a e c˜ a e demasiadamente complexo para humanos, pois a forma b´sica de express˜o do ser humano s˜o a a a as palavras e n˜o sequˆncias num´ricas. a e e Para contornar este problema foram criadas as linguagens de programa¸˜o, que s˜o pontes ca a entre a linguagem natural humana e a linguagem da m´quina (bin´ria), mesclando conceitos a a das linguagens de m´quina e natural humana. As linguagens de programa¸˜o s˜o classificadas a ca a em v´rios n´ a ıveis de acordo com sua proximidade com a linguagem humana. Linguagens de baixo n´ tem a fun¸ao de descrever uma situa¸ao mais pr´xima do “ponto ıvel c˜ c˜ o de vista” de uma m´quina, ao passo que linguagens de alto n´ s˜o concebidas com o prop´sito a ıvel a o de tornar f´cil a tradu¸ao de um pensamento (algoritmo), se assemelhando com fidelidade ‘a a c˜ linguagem humana que seria necess´ria para descrever aquela id´ia. a e Neste tutorial descreveremos a linguagem de programa¸ao Python cujo objetivo ´ se aproc˜ e ximar bastante da linguagem humana, sendo assim intuitiva, f´cil e ao mesmo tempo sendo a bastante flex´ ıvel, se adequando ao uso em diversas situa¸oes. c˜

1

Caracter´ ısticas b´sicas da linguagem a

Python ´ uma linguagem de programa¸˜o interpretada, de c´digo-fonte aberto e dispon´ para e ca o ıvel v´rios sistemas operacionais. Diz-se que uma linguagem ´ interpretada se esta n˜o ser precisar a e a compilada (traduzida para uma linguagem da m´quina), mas sim “lida” por um outro programa a (chamado de interpretador) que traduzir´ para a m´quina o que seu programa quer dizer. a a O interpretador para Python ´ interativo, ou seja, ´ poss´ execut´-lo sem fornecer um e e ıvel a script (programa) para ele. Ao inv´s disso, o interpretador disponibilizar´ uma interface intee a rativa onde ´ poss´ inserir os comandos desejados um por um e ver o efeito de cada um deles. e ıvel Neste tutorial, se encontra a representa¸ao “>>>” antes da maioria dos comandos apresentados, c˜ o que quer dizer que este comando est´ sendo inserido no interpretador interativo (e sempre a abaixo, o resultado gerado).

2

Obten¸˜o e instala¸˜o ca ca

Caso o usu´rio esteja utilizando um sistema Linux ou OS X (Apple), o interpretador para a Python j´ vem instalado por padr˜o, sendo apenas necess´rio escrever o comando “python” no a a a seu programa de terminal favorito. Para usu´rios do sistema operacional Windows, o interprea tador para Python deve ser baixado atrav´s do site http://www.python.org e instalado. Neste e

2

Por outro lado.0 s˜o vari´veis de tipos a a diferentes e isto deve ser levado em conta ao se realizar certos tipos de manipula¸oes de dados.Um ponto flutuante • string . a a e se o valor a ser armazenado fosse 3. n˜o ´ necess´rio declarar as varia a e a aveis que ser˜o usadas.Uma sequˆncia de caracteres e Ao contr´rio da maioria das outras linguagens. Exemplo: >>> a = “Bom Dia” >>> print a Bom Dia Percebemos que elas s˜o delimitadas por aspas. ´ o \t que tem o objetivo de acrescentar ao texto que vem ıcio e ap´s. impresso na linha seguinte.2 que ´ um dado do tipo “ponto flutuante”. este deveria e ser expresso como A=3.ultimo sistema o usu´rio encontra um utilit´rio para fazer o papel de terminal (e editor de ´ a a python) no Windows. A pr´pria sintaxe do dado a ser armazenado ´ a o identifica o tipo da vari´vel para armazen´-lo. que est´ ap´s o \n. Observe que. nessa c˜ a o nova linha. caso deseje-se atribuir o valor 3 a a a ` vari´vel A. em Python. A=3 e B=3. quando usamos o comando print ´ e e mostrada a parte do texto que diz: “Cinquenta anos em cinco.Um n´mero inteiro u • float . tem a fun¸ao de “pular uma linha” e escrever o texto.2. a • int . denominado IDLE. o contr´rio tamb´m ´ co a e e verdadeiro. Se utilizarmos aspas duplas. como o mostrado no exemplo acima. Tanto isso ´ verdade que no mesmo exemplo. o \n. c˜ 4 Strings String ´ um tipo de objeto formado por uma sequˆncia imut´vel de caracteres que nos permite e e a trabalhar com textos. Este ıcio por sua vez. Exemplo: >>> b = ’O lema do governo JK era:\n “Cinquenta anos em cinco. podemos usar as simples para aplica¸˜es dentro do texto que estamos escrevendo. Python saber´ que A ´ um inteiro (tipo “int”). Por exemplo.”’ >>> print b O lema do governo JK era: “Cinquenta anos em cinco. basta digitar A=3. Quando analisarmos as listas veremos que a a existem outras vari´veis mais complexas. elas podem ser classificadas a a em 3 tipos b´sicos que s˜o mostradas logo abaixo. 3 Vari´veis a Vari´veis s˜o formas de se armazenar dados para uso posterior. tampouco definir seu tipo. para Python.”. o c ca H´ tamb´m outra aplica¸˜o para as aspas. que consiste na delimita¸˜o do texto por trˆs a e ca ca e aspas (duplas ou simples). Outro artif´ parecido com \n. podemos utilizar tanto aspas duplas como a as simples. um espa¸o de tabula¸˜o.” No exemplo acima utilizamos um outro artif´ para trabalharmos com strings. 3 .

Exemplo: >>> compra= ’ma¸a’ c˜ >>> tipo=’verde’ >>> quilos = 1.compra. Com ele ´ poss´ tamb´m determinar a quantidade de n´meros. • %d . c e e Existe tamb´m um recurso conhecido como operador %. e ap´s. o endere¸o da c´lula que cont´m o caractere desejado.5 >>> print ’Maria comprou %f quilos de %s %s .5 quilos de ma¸a verde. c OBS.Exemplo: >>> a = ”’ Quatro times do Rio de Janeiro: Botafogo Vasco Fluminense Flamengo”’ >>> print a Quatro times do Rio de Janeiro: Botafogo Vasco Fluminense Flamengo Nessa aplica¸ao para as aspas.serve para substituir n´meros inteiros em uma frase destinada a um print.47876749 >>> print ’%.1 Manipulando Strings Pelo fato de uma string ser uma sequˆncia imut´vel. que cont´m a string.serve para substituir string.: Como vimos acima o operador % pode ser utilizado para formata¸˜o de n´meros ca u tamb´m.serve para substituir floats (n´meros em aritm´tica de ponto flutuante). Exemplo: >>> num=245.’ %(quilos. pode ser acessado colocando o nome da vari´vel. u e OBS. e a 4.tipo) Maria comprou 1.2f’ %(num) 4 . Consideremos o exemplo abaixo: e >>> a = ’matem´tica’ a >>> a[2]+a[-5]+a[-4:] >>> ’t´tica’ a Isso nos mostra que uma string segue uma determinada indexa¸ao onde cada caractere assume c˜ um endere¸o que. u • %f . quando usamos o comando print. tudo o que estiver entre as c˜ trˆs aspas ser´ impresso exatamente da mesma forma como foi escrito.: As trˆs formata¸˜es acima relacionadas s˜o usadas normalmente para aplica¸oes em e co a c˜ uma frase destinada a um print. isso nos d´ a possibilidade de manipularmos e a a essa sequˆncia. ap´s a v´ e e ıvel e u o ırgula de um float. que serve para formatar as strings. c a e o entre os colchetes. e basicamente s˜o trˆs os tipos de formata¸ao que temos: a e c˜ • %s .

pode-se optar por resultados como n´meros inteiros (ou o inteiro mais pr´ximo) a u o ou resultado exato (um ponto flutuante).0 6 Entrada de Dados a u ıgitos Atrav´s do comando raw input podemos receber do usu´rio uma string. c˜ que possui o comando sqrt(x)). 5 Opera¸oes matem´ticas c˜ a Al´m de ser uma poderosa linguagem de programa¸ao.0) 2.66666666666666663 A opera¸ao aritim´tica de potencia¸ao tamb´m pode ser feita. e c˜ a Suas capacidades matem´ticas se extendem desde opera¸oes b´sicas at´ opera¸oes com n´meros a c˜ a e c˜ u complexos.48 Percebemos que Python fez uma aproxima¸ao do n´mero real. e 5 . Para isso. As regras para a obten¸˜o de n´meros inteiros ou pontos ca u flututante tamb´m se aplicam a este caso. ca Potencia¸˜o: ca >>> 2**3 8 N˜o existe um comando espec´ a ıfico para a radicia¸ao em Python (exceto para a raiz quadrada. O n´mero de d´ e da string dada pode ser informado atrav´s do comando len(). e Radicia¸ao: c˜ >>>8**(1. Lembre-se que c c˜ a a “>>>” significa a digita¸ao de um comando no interpretador. deve-se fornecer um inteiro (para se obter um inteiro como resultado) ou um ponto flutuante (para se obter o resultado exato). Divis˜o: a >>>2.0/3. Entretanto. possibilitando que o resultado c˜ u de uma futura opera¸˜o seja o mais preciso poss´ ca ıvel. c˜ Soma: >>>2+3 5 Subtra¸˜o: ca >>>2-3 -1 Multiplica¸˜o: ca >>>2*3 6 Divis˜o: a >>>2/3 0 Na divis˜o. para obter a raiz n-´sima de um n´mero basta elev´e u a lo por 1/n onde “n” ´ o ´ e ındice da raiz. assim como a sua inversa.0 0. a c˜ e c˜ e radicia¸˜o. Abaixo. Python sabe lidar bem com matem´tica. vamos come¸ar aprendendo as 4 opera¸oes matem´ticas b´sicas.245.0/3.

podem ser modificadas de v´rias maneiras. podemos utilizar a a a como entrada de dados o comando input(): >>> idade = input(’Digite sua idade: ’) Digite sua idade: 27 >>> altura = input(’Qual a sua altura: ’) Qual a sua altura: 1.7] O endere¸amento dos componentes come¸a no 0. listas: a len(lista): informa o tamanho da lista 6 . basta cham´-lo: lista[x]. Python as juntar´. 7 Listas Listas s˜o sequˆncias de vari´veis. a a Para definir uma lista basta digitar: lista = [9. strings.75 >>> type(idade) <type ’int’> >>> type(altura) <type ’float’> OBS. a e a o a pois s˜o mut´veis.>>> nome = raw input(’Digite seu nome: ’) Digite seu nome: Pedro >>> nome ’Pedro’ >>> len(nome) 5 >>> sobrenome = raw input(’Agora digite o sobrenome: ’) Agora digite o sobrenome: Albuquerque Opera¸˜es matem´ticas n˜o podem ser feitas com strings. Para saber como a vari´vel atribu´ foi interpretada.: O dado inserido pelo usu´rio ´ automaticamente interpretado como um dos tipos de a e var´vel. Com isso. floats ou integers. vocˆ est´ se referindo ao elemento de a e a posi¸ao x na lista. c˜ Alguns comandos referentes `. Ent˜o.8. se vocˆ deseja usar um determinado c c a e elemento da lista. basta a a ıda digitar o comando type(). co a a por´m se somarmos strings. a >>> nome + sobrenome ’PedroAlbuquerque’ >>>nome*3 ’PedroPedroPedro’ Se a priori sabemos que o dado digitado pelo usu´rio n˜o ser´ uma string. num processo chamado concatena¸ao e se mule a c˜ tiplicarmos uma string ela ser´ repetida. apenas com floats e inteiros. Ap´s definidas.

A defini¸˜o de uma ca lista ´ an´loga a de uma vari´vel qualquer. ou seja. a u a a Exemplo: teste = [’vida’.’Agosto’.append(x): adiciona o elemento x no final da sua lista lista. Entreo a a ´ tanto. ’e’. mes[mes .5. ´ nos devolvido o nome do mˆs ca e e selecionado. Vamos exa plicar a sintaxe de uma lista atrav´s das linhas de c´digo exibidas abaixo: e o >>> meses = [’Janeiro’.1] e e Ao rodar este programa obteremos a seguinte sa´ como exemplo: ıda >>> Escolha um mˆs (1-12)? 5 e O mˆs ´ Maio e e >>> Escolha um mˆs (1-12)? 12 e O mˆs ´ Dezembro e e >>> Escolha um mˆs (1-12)? e Ainda sobre o programa anterior.. mes = input(“Escolha um mˆs (1-12)?”) e if 1 <= mes <= 12: print ’O mˆs ´ ’. c ’Dezembro’] >>> while 1: . que ´ buscar um dado da ´ o e lista. 42..lista. a chamamos essas vari´veis com capacidade de armazenamento de listas ou vetores. existem outros tipos de vari´veis capazes de armazenar mais de um valor. e a se armazen´ssemos apenas um n´mero. . . 7 . Al´m de selecionar um elemento de uma lista. ’Setembro’. ’Fevereiro’.. Em Python. o comando print ´ dado pelo mˆs escolhido menos o e e um. a u Observe que na nossa linha de c´digo.. ’Outubro’. que se d´ escrevendo o nome da lista e entre colchetes o n´mero referente ao local da lista. ’Novembro’. a u onde est´ o dado requerido (lista[n´mero]). ’Mar¸o’. ’Maio’. O uso e a a e u das aspas (duplas ou simples) apenas ´ necess´rio caso estejamos inserindo na lista uma string. primeiramente criamos a nossa lista. O programa vai rodar indefinidamente at´ ser dado o comando Ctrl+D. ’Junho’. feito com a utiliza¸˜o de um comando if. temos algumas outras propriedades que e apresentaremos em seguida.extend([6. ´ definida pelo usu´rio a vari´vel “mes”. ’Julho’. 7] Depois inserimos o comando while 1: que faz com que o nosso programa entre em loop..4]) : adiciona uma lista inteira no final da sua lista lista[y]= x : insere o valor x na posi¸˜o y da lista ca N´s j´ vimos anteriormente que vari´veis comuns armazenam um unico valor. e depois de um e a a tratamento de erros. indexando as listas partindo do zero.. n˜o seria necess´rio. 6. por´m isolando o conte´do com colchetes. Na ultima linha do c´digo utilizamos uma propriedade da lista. ou at´ que o programa e e seja fechado. ’universo’. Uma vez nesse loop. ’Abril’.

’cinco’] >>>teste += soma >>>teste + [’seis’] [’zero’.2 Impress˜o dos conte´ dos da lista a u Ao chamarmos a lista teste sem referenciarmos nenhum elemento espec´ ıfico estamos lidando com todos os elementos da lista.’seis’] e e OBS.: o c´digo teste += soma ´ o mesmo que escrever teste = teste + soma.teste[0].’dois’.teste[3] e a As variav´is 0 e 3 da lista teste s˜o zero e trˆs e a e Podemos tamb´m utilizar o comando for. utilizamos um m´todo chamado .’quatro’. ou utilizar a o m´todo .1 Inserindo um novo dado a uma lista Para inserir um novo dado a uma lista qualquer.’um’.teste e a As variav´is da lista teste s˜o [’zero’.’dois’. zero um dois trˆs e quatro 8 .] e >>>soma = [’quatro’. mas se o quisermos adicionar mais dados podemos simplesmente somar listas.’trˆs’.7.’um’.’cinco’.’um’.’cinco’..’trˆs’.’quatro’.append s´ consegue adicionar um dado na lista por vez.’um’.extend: e >>>teste.’seis’] e >>>teste*2 [zero’. multiplic´-las..append: e >>>teste = [] >>>teste.’dois’.extend([’dois’.’trˆs’...’dois’.’trˆs’.’cinco’.’um’] Infelizmente o comando . e >>>for valor in teste: . necessitando para isso apenas indicar o local: >>>print ’As variav´is da lista teste s˜o: ’.’quatro’] e a e >>>print ’As variav´is 0 e 3 da lista teste s˜o ’. Podemos tamb´m imprimir somente alguns valores de dentro e da lista.zero’. print valor .append(’um’) >>>teste [’zero’.’quatro’.append(’zero’) >>>teste.’seis’.’ e ’.’trˆs’. o e 7.

len(teste) e 4 Nos dizendo que a lista “teste” possui 4 vari´veis.’dois’.teste e Agora a lista ”teste”´: [’zero’.’quatro’.’um’. onde haver´ a remo¸ao. e >>>print lista. Por´m.’um’] >>>teste.: E importante notar que a lista inicia sua contagem a partir do 0 (zero) o que explica o n´mero 4 obtido anteriormente.teste e Agora a lista ”teste”´: [’zero’.5 Descobrir o tamanho de uma lista Para descobrir o tamanho de uma lista. ou posi¸ao da lista.4 Remover um elemento de uma lista Para remover um elemento de uma lista utilizamos o comando del.index mostra a posi¸ao da e c˜ primeira ocorrˆncia do valor. o m´todo . como exemplificado no c´digo o abaixo: >>>print ’O tamanho da lista teste ´: ’.6 Range A fun¸˜o range gera um vetor contendo n´meros inteiros sequenciais.teste Antes a lista ”teste”era: [’zero’.fim) 9 .’dois’. u 7.index mostra em qual posi¸ao o item fornacido se encontra na lista. se e c˜ e o item especificado aparecer mais de uma vez na lista.teste Antes a lista ”teste”era: [’zero’.remove que procuraria a primeira e ocorrˆncia na lista para um dado valor ou string: e >>>lista + [’um’] >>>print ’Antes a lista ”teste”era: ’. referenciando o index.’um’.remove(”um”) >>>print ’Agora a lista ”teste”´: ’. obedecendo a regra de ca u escrita: range(in´ ıcio.’um’] e 7.’quatro’] e Podemos obter o mesmo efeito utilizando o m´todo . c˜ a c˜ >>>print ’Antes a lista ”teste”era: ’. usamos o comando len().index(”quatro”) 4 ´ OBS.7.’dois’.’dois’.’quatro’.’trˆs’.’um’. a 7.3 Determinar em que ordem um elemento aparece na lista O m´todo .’quatro’] e >>>del teste[3] >>>print ’Agora a lista ”teste”´: ’.

16. e • d) Calcule e mostre a quantidade de valores acima da m´dia calculada. 8. um ao lado do outro.24. 1. correspondentes a notas. 10]. ´ u e ıdo a ca A fun¸˜o range aceitar´ quaisquer n´meros inteiros desde que o n´mero inicial seja maior ca a u u que o n´mero final. o ultimo n´mero ´ exclu´ do vetor. a varia¸˜o entre um n´mero e seu e a e ca u conseguinte. Gere um terceiro vetor de 20 elementos. Fa¸a um programa que leia um vetor de 5 n´meros inteiros e mostre-os. Em outras o a ıda palavras. -25. Fa¸a um programa que leia dois vetores com 10 elementos cada. • c) Calcule e mostre a m´dia dos valores. 6. 20] >>> range(5) [0. 14. 4. Isto ´. portanto u u e ca s˜o v´lidas as constru¸˜es: a a co >>> range(1. por u a e ıdo exemplo: >>>vetor = range(1.11) >>>print vetor O c´digo acima nos dar´ como sa´ o vetor: [1. e • e) Encerre o programa com uma mensagem. 3. Fa¸a um programa que leia um n´mero indeterminado de valores. encerrando a entrada de dados c u quando for informado um valor igual a -1 (que n˜o deve ser armazenado). -20) [-32. 9. 8. portanto o 11 n˜o entra na composi¸˜o deste. 12. -27. 9. 2. 3. 8. fa¸a: a o c • a) Mostre a quantidade de valores que foram lidos. 20] Exerc´ ıcios: 1. 15. 4. 4] >>> range(21. 10 . 7. 17. 7. 13. • b) Exiba todos os valores na ordem em que foram informados. Ap´s esta entrada de dados. 10. 3. -23. 9] >>> range(-32. -31. 5. 6. 4. 16.21) [5. 5) [] No ultimo exemplo foi retornado um vetor vazio. 5. Outra caracter´ ıstica importante deste comando ´ a de se poder controlar o passo da see quˆncia adicionando uma terceira vari´vel ao range. Fa¸a um programa que leia 4 notas. -22. -26. 8. 10) [1. -21] >>> range(5.4) [0. 2. bem como quando apenas o n´mero final ´ passado para a fun¸˜o.´ E importante observar que o n´mero finalizador descrito acima n˜o ´ inclu´ no vetor. 2. 6. >>>range(0. c e 4. 18. c u 2. 12. cujos valores c dever˜o ser compostos pelos elementos intercalados dos dois outros vetores. a 3. mostre as notas e a m´dia na tela. -29. 19. -28. -24. 7. isso se deu porque o elemento inicial era ´ maior que o final. 11. -30.

. Nessa estrutura podemos utilizar quantas condi¸˜es foram necess´rias.:Se a condi¸˜o1 dada no if for verdadeira o bloco de comandos 2 ser´ executado. . #bloco de comandos 1 >>>if #condi¸˜o1: ca .(continua¸˜o do programa) ca .... Em Python.. Para que o bloco ca de comandos desta condi¸ao seja executado de maneira correta. deve ter um espa¸amento da margem a esquerda c˜ c no texto. um bloco de comandos ser´ executado. tudo que pertencer ao bloco do while.... o c ıcio 8...8 Estruturas de controle Os comandos de Python s˜o executados pelo computador. caso contr´rio o programa passar´ ca a a a direto do bloco de comandos 1 para o bloco de comandos 3. .. ... uma estrutura ´ terminada e c˜ e automaticamente quando a tag da pr´xima linha come¸a no in´ da linha. Isto ´ devido a identa¸ao do programa.2 While Esta estrutura de controle tem como objetivo executar o bloco de comandos identificado nela repetidamente. basta repertimos o co a elif seguido das condi¸oes desejadas.1 If O comando if direciona o computador a tomar uma decis˜o. >>>Insira um n´mero: u else: print ’Vocˆ acertou!’ e adv = input(’Insira um n´mero: ’) u if adv < num: ´ print ’E maior!’ elif adv > num: ´ print ’E menor!’ Como vimos... caso contr´rio. isto ajuda a deixar o c´digo leg´ e organizado. Se a condi¸ao for atendida. enquanto a condi¸˜o dada.. linha por linha e as estruturas de a controle permitem ao programador modificar a ordem em que cada comando ser´ executado a bem como se ele ser´ ou n˜o executado.. #bloco de comandos pertencentes ao while 11 . para sua validade.. for verdadeira. a a 8. baseado nas condi¸˜es determia co nadas. .. devemos manter uma organic˜ za¸ao.. . o c˜ a a computador executa outros comandos.. #bloco de comandos 2 .... . ... vejamos um programa de adivinhar c˜ um n´mero: u >>>num = 23 >>>adv = 0 >>>while adv != num: . Tendo isso em vista. .. em Python n˜o ´ necess´rio que utilizemos a tag end para terminarmos uma a e a estrutra. #bloco de comandos 3 OBS... o ıvel >>> while #condi¸˜o for verdadeira : ca .

11). ca A sa´ que ter´ ıda ıamos neste caso seria: 1 2 3 4 5 6 7 8 9 10 Ou seja. que ser´ vista na nona se¸ao.>>> #continua¸˜o do programa ca Vejamos. no caso contador. seja ela uma lista ou at´ mesmo uma string.resultado e >>> 6! ´ igual a 720 e resultado = resultado * num2 num2 = num2 .. percorrendo os n´meros definidos pelo usu´rio. pode-se usar tamb´m ca a e o comando while 1 em vez de estabelecer uma condi¸ao qualquer (isso porque segundo a l´gica c˜ o booleana.. . o seu loop ser´ ca a infinito.1 Se a condi¸˜o estabelecida no while for sempre verdadeira. como 2 < 1. >>> print num. como calcular um n´mero fatorial: u >>> resultado = 1 >>> num = input(’Entre com um n´mero inteiro: ’) u >>> Entre com um n´mero inteiro: 6 u >>> num2 = num >>> while num2 > 1: . um “print” de todos os elementos da lista. .. em Python. Caso esse seja seu desejo. 12 . com isso. a c˜ 8.. Vamos e e analisar o c´digo abaixo: o >>> for contador in range(1.. por exemplo. onde esse comando tem a finalidade de realizar uma itera¸˜o baseada numa progress˜o c˜ ca a aritm´tica. para percorrer cada elea mento da lista criada com o comando range(1. pois a condi¸˜o ser´ sempre atendida. cada repeti¸ao feita pelo loop for c˜ far´ com que a vari´vel contador aponte para um diferente valor dentro da lista formada pela a a fun¸˜o range e logo em seguida imprima esse valor. difere do que normalmente se vˆ em outras linguagens de prograe ma¸ao. ’ ! ´ igual a ’. print contador A estrutura acima utiliza uma vari´vel criada. o python interpreta o valor 1 como verdadeiro)..3 For O comando for. enquanto em Python a itera¸ao ´ e u a c˜ e feita percorrendo os itens de uma sequˆncia... 11): .

4:’terceiro periodo’ . citaremos alguns m´todos dos dicion´rios: e a 13 .print e E obteremos como sa´ ıda: O item atual ´: vida e O item atual ´: 42 e O item atual ´: o universo e O item atual ´: 6 e O item atual ´: e e O item atual ´: 7 e O item atual ´: tudo e Exerc´ ıcios: 1.. . ’tudo’] >>> for item in lista: . 6. 2:’segundo periodo’ . ’e’. como um ESC. 5. >>>calculos[4] = ’numeros complexos’ Abaixo. 8:’n´meros complexos’ } u Os valores referentes aos ´ ındices podem ser mudados. Fazer o mesmo com e u a uma s´rie de strings. escrevemos: a >>>calculos = { 1:’primeiro periodo’ . 4. • c) O terceiro elevado ao cubo. 7. ) em um loop infinito. 4:’terceiro periodo’ . ’o universo’. Exibir uma s´rie de n´meros (1. Obter uma s´rie de n´meros do teclado e orden´-las tanto em ordem ascendente como descendente. 2:’segundo periodo’ .. 3. 42. observemos o caso abaixo: ca e >>> lista = [’vida’. 2. 2:’segundo periodo’ . Para se declarar um dicion´rio e os elementos a ele pertecentes. 5. 8:’quinto periodo’ } >>>print calculos[8] ’quinto periodo’ >>>print calculos[8]=’n´meros complexos’ u >>>print calculos { 1:’primeiro periodo’ . O programa deve encerrar-se quando for pressionada e u uma tecla espec´ ıfica. 9 Dicion´rio a Um dicion´rio ´ um conjunto de elementos que possuem ´ a e ındices. Fa¸a um programa que pe¸a um n´mero inteiro e determine se ele ´ ou n˜o um n´mero primo. print ’O item atual ´:’.. Calcule e mostre: c c u u • a) O produto do dobro do primeiro com metade do segundo . ou seja. Fa¸a um programa que receba dois n´meros inteiros e gere os n´meros inteiros que est˜o no intervalo compreendido por c u u a eles. 8:’quinto periodo’ } >>>print calculos { 1:’primeiro periodo’ . dicion´rios s˜o fora a mados por chaves e seus respectivos valores. • b) A soma do triplo do primeiro com o terceiro. e 3. 4. 4:’terceiro periodo’ . Fa¸a um Programa que pe¸a 2 n´meros inteiros e um n´mero real. onde as chaves s˜o os ´ a ındices..A fun¸˜o for tamb´m pode ser aplicada em strings. Um n´mero primo ´ aquele c c u e a u u e que ´ divis´ e ıvel somente por ele mesmo e por 1. 2.

>>> if b < 0: . c a co Ap´s isso.items() . b. a. Fa¸a um dicion´rio que contenha suas refei¸˜es e um alimento que esteja contido em cada uma delas. basta entrar na fun¸˜o e modific´-la. else: . pergunte ao usu´rio um aniversariante c a e o a por mˆs e troque os valores do seu calend´rio de anivers´rio pelos do usu´rio. b = -b a = -a >>> if a == b: .has key(x) .Retorna uma lista com as chaves e seus respectivos valores. o a Se em um determinado problema.. a • . a Se houver alguma a¸ao que seja grande e utilizada com frequˆncia. Fa¸a um dicion´rio que contenha os meses do ano e um aniversariante por mˆs.. ’ n˜o s˜o iguais’ a a print ’Os valores absolutos de ’. Exerc´ ıcios: 1.Retorna uma lista com os valores do dicion´rio. print ’Os valores absolutos de ’. a • . reduzindo o espa¸o ocupado pelo nosso programa final. .• .Retorna uma lista com as chaves do dicion´rio. c˜ c al´m de deix´-lo com uma aparˆncia mais limpa. Dado que temos os valores: a = 23 e b = -23 Fun¸ao 1: c˜ >>> if a < 0: . visto que o tamanho do c´digo ir´ diminuir... visto que vocˆ n˜o co e a ´ o e a precisar´ vasculhar o c´digo atr´s do erro.Verifica se o dicion´rio possui a chave x. ou podemos simplesmente usar o c´digo 2 criando uma fun¸ao que cumpra esse objetivo o c˜ exigindo apenas que apresentemos os valores que devemos analisar. ’ e ’.. ’ e ’..keys() . precisarmos descobrir se dois valores absolutos s˜o iguais a podemos utilizar o c´digo 1 descrito abaixo todas as vezes que precisarmos realizar essa descoo berta. a • . b. o 2.. mude os alimentos pelos seus alimentos favoritos. Imprima na tela.. Ap´s. e a e o a Essas fun¸˜es tamb´m s˜o muito uteis na tarefa de debuggar o seu c´digo. temos a op¸˜o de criar c˜ e ca uma fun¸ao que cumpra o seu objetivo.. Um exemplo a o a ca a de como podemos diminuir um c´digo est´ descrito abaixo..values() . a. ’ s˜o iguais’ a 14 . e a a a 10 Fun¸oes c˜ As linguagens de programa¸˜o em geral tˆm o intuito de automatizar a¸oes tornando-as mais ca e c˜ r´pidas.

. ’ e ’... .. b. podemos passar a esta alguns parˆmetros (valores ou strings): c˜ a funcao(1234. enquanto a fun¸ao estiver rodando. Por´m em algumas fun¸oes ao colocarmos nosso e c˜ c´digo na se¸ao bloco de comandos. a = 17 print ’in print func a = ’... . ao t´rmino desta fun¸ao a vari´vel ca a e c˜ a ser´ destru´ a ıda. ... Um pouco confuso? a a c˜ Ent˜o confira o exemplo abaixo: a >>>a = 4 >>>def print func(): ... se houver uma fun¸ao que fa¸a c´lculos matem´ticos.variavelN): ..”UFF-1234”). Neste caso. ’ n˜ s˜o iguais’ a a if b < 0: b = -b if a == b: print ’Os valores absolutos de ’..1 Vari´veis em fun¸˜es a co Em geral... devolvendo um resultado c˜ c a a num´rico.b): ..... .. . as vari´veis podem ter tratamentos difea o a rentes em fun¸˜o de onde se encontram.. o c˜ c˜ a a a Por exemplo. a 15 . podemos recuperar um valor da vari´vel utilizada emF uma fun¸ao? Para a a c˜ isto usamos o comando return seguido de algum valor ou uma vari´vel. de forma que caso o programador determine uma a ca fun¸˜o e armazene um certo dado em uma vari´vel local.. ’ e ’. Estas c˜ a a a vari´veis existem apenas dentro da fun¸˜o...”pet-tele”.. else: print ’Os valores absolutos de ’. a vari´vel a a local “esconder´” a vari´vel global.. a ıvel Mas como ent˜o. a fun¸ao automaticamente definir´ os parˆmetros necess´rios. ser´ necess´rio que todas as vari´veis chamadas pela fun¸ao sejam inteiros ou floats.variavel2. . e a a a c˜ 10.Fun¸ao 2: c˜ >>>def compara absolutos(a. n˜o sendo poss´ recuperar seu valor. quando estamos eliminando c´digo repetitivo por meio de fun¸oes tamb´m temos o c˜ e algumas vari´veis repetidas neste c´digo.. >>>def funcao(variavel1. . Todas as vari´veis que vimos at´ agora s˜o chamadas ca a e a de vari´veis globais. Em Python. a. . em qualquer momento ou em qualquer parte do c´digo do seu a o programa. . ou seja.. e a a u Fun¸oes tem um tipo especial de vari´veis que s˜o chamadas de vari´veis locais.. ’ s˜o iguais’ a “Essa fun¸ao retorna se os valores absolutos das vari´veis requeridas s˜o iguais” c˜ a a if a < 0: a = -a Abaixo apresentamos a sintaxe necess´ria para cria¸˜o de fun¸oes utilizando a linguagem a ca c˜ Python. ... b. .. a... .. vocˆ poder´ utiliz´-las (seja para ler seu conte´do ou atribuir valores). bloco de comandos return ´ E que ao chamar uma fun¸ao.

a c˜ a n˜o afetam as vari´veis que est˜o fora dela (vari´veis globais).. O comando if testa se n ´ menor ou igual a 1.6 >>>print ’4! = ’. c˜ a 2. podemos concluir que vari´veis criadas dentro de uma fun¸ao (vari´veis locais). .. utilizando o comando fatorial(n).1) Um passo-a-passo de como a fun¸ao ´ executada. . . ou seja.fatorial(5) 5! = 120 if n <= 1: return 1 return n * fatorial(n . c˜ >>>def fatorial(n): . a fun¸ao continua. para c˜ e n = 3: 1. a fun¸ao chama a si mesma mais uma vez para a c˜ calcul´-lo. seu ca c resultado deve ser este: >>>print func() in print func a = 17 >>>print ’a = ’. Como ainda n˜o temos fatorial(1).fatorial(3) 3! . nem afetar c c˜ a nada fora deste espa¸o. As vari´veis locais existem a a a a a apenas dentro do espa¸o limitado pela fun¸ao. a fun¸ao fatorial ´ a c˜ e novamente chamada com n = 2.. >>>print ’2! = ’. 4. 3*fatorial(2). fornecemos c˜ ‘a fun¸ao o valor 3 para o parˆmetro de entrada n. n˜o podendo assim nem ser usada. a a=4 Com isto. Para isso. retornando o valor 2*fatorial(1).. como este n˜o ´.fatorial(4) 4! = 24:: >>>print ’5! = ’. c 10.. c˜ Entretanto. ela ainda n˜o possui o valor de fatorial(2).fatorial(2) 2! = 2 >>>print ’3! = ’. a 16 . Abaixo temos um exemplo de e c˜ ıda uma fun¸˜o respons´vel por calcular o fatorial de n´meros positivos inteiros e demonstra como ca a u uma fun¸ao pode chamar a ela mesma utilizando a propriedade recurssiva.2 Recursividade A recursividade ´ um tipo de itera¸˜o (repeti¸˜o) na qual uma fun¸˜o chama a si mesma e ca ca ca repetidamente at´ que uma condi¸ao de sa´ seja satisfeita..Agora chame a fun¸˜o print func() e pe¸a o valor “a” utilizando o comando print.. e a e c˜ 3. Nesta parte a fun¸ao pretende retornar o valor n*fatorial(n-1). Quando chamamos a fun¸ao fatorial(3)..

Para isso. Fa¸a um programa que receba a matr´ c ıcula do usu´rio e informe o per´ a ıodo que ele est´ e em quanto tempo ele ir´ se formar. e e o o co vocˆ salva o seu m´dulo com a extens˜o .py def indice(altura. utilizamos o comando ıvel o ca from nome do m´dulo import fun¸˜o. Fa¸a um programa. A fun¸ao retorna o valor de caractere ’P’. 11 M´dulos o Pensando na reutiliza¸˜o de c´digo. com uma fun¸˜o que necessite de um argumento. Fa¸a um programa. a a 3.5. c ca e c e 2.9 < imc < 40: print ’LIGEIRA OBESIDADE’ elif imc > 40: 17 . e que forne¸a a soma desses trˆs argumentos. se seu argumento for zero ou negativo. qualquer fun¸˜o pertencente a ele pode ser utilizada atrav´s o o ca e o ca do comando nome do m´dulo. Com isto. e ’N’.9: print ’NORMAL’ elif 24. se seu c ca c˜ argumento for positivo. ´ E poss´ importar do m´dulo apenas a fun¸˜o desejada. e Vamos fazer uma retrospectiva do que aconteceu ao se executar esta fun¸ao: c˜ fatorial(3) 3 * fatorial(2) 3 * 2 * fatorial(1) 3*2*1=6 Exerc´ ıcios: 1. Exemplo: e o a Digite em um editor de texto simples: #IMC. e a fun¸ao estar´ dispon´ para utiliza¸˜o.py . atingimos a condi¸ao de sa´ do if que est´ na fun¸˜o fatorial e ent˜o o valor c˜ ıda a ca a retornado ´ 1.peso): imc = peso/(altura**2) return imc def estado(imc): if imc < 24. a linguagem Python j´ possui um conjunto de fun¸˜es ca o a co prontas para serem usadas ou agregadas em seus programas. o ca c˜ a ıvel ca Vocˆ tamb´m pode definir o seu pr´prio m´dulo. Para a utiliza¸˜o desses m´dulos ´ preciso utilizar o o ca o e o comando import nome do m´dulo.9: print ’PESO A MAIS’ elif 29. Defini-se as fun¸˜es desejadas e ao final. Ap´s ter importado o m´dulo. com uma fun¸˜o que necessite de trˆs argumentos.fun¸˜o(argumento).9 < imc < 29. Essas fun¸oes est˜o agrupadas c˜ a em estruturas denominadas m´du los.

Caso x seja negativo.Retorna a raiz quadrada de x. Existe um m´dulo o co a u a o equivalente para n´meros complexos: cmath.exp(x) . logaritimicas. Apresentaremos a seguir 3 m´dulos interessantes e de grande uso para a maioria dos usu´rios o a de Python: 11. a a Este m´dulo cont´m fun¸oes de representa¸ao num´rica.y) . retorna um erro.x) . exponenciais. salve o seu arquivo como IMC. a As fun¸oes trigonom´tricas sin(x). a • math.Retorna o valor de x tutorial.Retorna a norma euclidiana entre x e y.9*(altura**2) print ’Seu peso ideal se encontra entre %f e %f’ %(a.Retorna o log natural de x.base) .b) Agora. De agora em diante. est˜o listadas algumas fun¸oes desse m´dulo: a c˜ o • math. tan(x) e suas inversas tamb´m est˜o contidas c˜ e e a nesse m´dulo. • math. al´m das fun¸˜es a seguir: o e co • math.log(x. o e Abaixo. 18 . • math. a a • math.Retorna o log de x na base pedida. As constantes pi e e tem valores definidos nesse m´dulo. • math.Retorna o valor do arco tangente de y/x. a • math.modf(x) .Converte o ˆngulo x de graus para radianos. ou seja.radians(x) .py .1 M´dulo Math o O m´dulo math possui fun¸˜es matem´ticas para n´meros n˜o complexos. hipero e c˜ c˜ e b´licas. trigonom´tricas e convers˜es angulares e os valores retornados por este m´dulo s˜o o e o o a pontos flutuantes.Retorna e exponencial de x.print ’OBESIDADE’ else: print ’MAGRO DEMAIS’ def pesoideal(peso. a partir do momento que o m´dulo ´ importado. podendo ser usadas diretamente o pelo nome. o m´dulo j´ pode ser utio a lizado por qualquer programa em Python.factorial(x) .atan2(y.degrees(x) .altura): a = 20*(altura**2) b = 24.Retorna o valor inteiro e o valor fracion´rio de x. cos(x). • math.log1p(x) .Converte o ˆngulo x de radianos para graus. • math.sqrt(x) . A distin¸ao destes m´dulos deve-se ao fato da u c˜ o maioria dos usu´rios n˜o querer aprender a fundo a teoria dos complexos. a hipotenusa do triˆngulo retˆngulo de catetos x e y.hypot(x.

fecha o arquivo. • b) Os valores dos senos e cossenos dos 3 ˆngulos do triˆngulo. Desse m´dulo o comando principal ´ o comando “open”.’modo de abertura’) c a Se estiver utilizando um sistema UNIX e o arquivo estiver na mesma pasta em que foi executado o interpretador n˜o ´ necess´rio colocar o endere¸o do arquivo. a ca OBS.txt”.“w”) >>> abrir. co o Exerc´ ıcios: 1. Fazer uma calculadora que execute opera¸oes de adi¸ao. retorne a ´rea e per´ c a ımetro do c´ ırculo. E os modos de abertura a e a c s˜o mostrados abaixo: a r (read). a (append). Se o arquivo n˜o for fechado.: Antes de escrever esse comando verifique se n˜o existe um arquivo com o mesmo a nome. c˜ e a Para uma lista completa de fun¸˜es neste m´dulo.close() >>> editar = open(“teste.Os valores retornados das fun¸oes trigonom´tricas est˜o em radiano. basta pedir um help(math). 3. nesse modo o texto ´ substituido e A fun¸˜o open possui v´rios m´todos os mais importantes ser˜o mostrados abaixo e depois ca a e a demonstrados: close() .Manipula¸˜o de arquivos o ca Em algumas situa¸˜es ser´ necess´rio que se armazene dados ou ent˜o que se colete dados de co a a a algum arquivo.2 M´dulo io . Fa¸a um programa que receba 2 valores de catetos e retorne: c • a) A hipotenusa. Vamos demonstrar agora como criar um arquivo com extens˜o txt.Abrir o arquivo somente para escrita. ele continu´ como um objeto e n˜o a a a poder´ ser modificado fora do interpretador.Abrir o arquivo somente para leitura.extens˜o’. subtra¸˜o. nesse modo o texto ´ somado ao arquivo.Abrir o arquivo somente para escrita. divis˜o. multiplica¸ao. a >>> abrir = open(“teste. pois se houver esse comando substituir´ o arquivo por um novo. fatorial.Responde com valores booleanos se a conex˜o foi fechada ou n˜o. tangente. o 2. cubo.txt”. a a • c) Todos os valores dever˜o ser mostrados em radiano e em graus. e w (write). quadrado. declaramos uma vari´vel que recebe a fun¸˜o open. a closed . inverso e m´dulo. c˜ c˜ ca c˜ a seno. raiz quadrada. como todos os m´todos desse m´dulo utilizam a sintaxe mostrada a e o acima. Fa¸a um programa que ao receber um valor de raio.“a”) 19 . a a Para criar um novo arquivo se usa o modo write (w). a 11. cosseno. para isso existe um m´dulo em python que se comunica com o sistema operao cional chamado “io” (input/output). a o e sintaxe do programa est´ demonstrado abaixo: a >>> open(’endere¸o/nome do arquivo.

Com isso criamos um arquivo.txt”. e >>>editar.txt”. atribu´ ımos a ele a ` vari´vel “abrir” e o fechamos com o m´todo “.close() >>> #Depois criamos uma fun¸˜o para ler os nomes na lista ca >>> def aluno presente(): >>> >>> >>> >>> ”Deve ser declarado um inteiro correspondente ` linha em que o aluno est´ ” a a #Criamos uma vari´vel de para ler o arquivo a leitura = open(”presenca.”w”) >>> criar. e e OBS.”a”) escrever.readline() >>>ler.”r”) >>>ler. utilizando o modo w. depois utilizamos o m´todo “. no caso a vari´vel “ler”. Depois criamos outra vari´vel que possui a e a a qualidade de editar o arquivo sem escrever por cima. que serve para adicionar uma string ao nosso arquivo.readline()” que lˆ o arquivo linha a linha. a Com esses comandos foi adicionado a string “Hello World!” ao arquivo. Primeiramente utie lizaremos o m´todo “. cada elemento desta lista ´ uma linha do arquivo e >>> >>> ler = leitura. Agora vamos explorar os m´todos existentes quando utilizamos o modo “append”.readlines() print ler[1:5] 20 . para voltar a ler o c arquivo depois disso ´ necess´rio que vocˆ abra outra conex˜o com o arquivo.: Depois de alcan¸ar o final do texto ele devolve uma string vazia.colse() Novamente.close() >>> #Agora vamos escrever as fun¸oes respons´veis pela escrita e leitura da nossa lista de presen¸a c˜ a c >>> #Criamos uma fun¸˜o para adicionar o nome dos alunos ` lista ca a >>> def adicionar aluno(): >>> >>> >>> >>> >>> >>> ”O nome do aluno presente deve estar entre parˆnteses ” e #Criamos uma vari´vel para editar o arquivo a aluno = raw input(”Qual o nome do aluno? \n”) escrever = open(”presenca.write”. editar e ler um arquivo vamos criar uma lista de presen¸a. ou seja. dessa forma a vari´vel ser´ uma lista.write(”Hello World!”) >>>editar. criamos uma vari´vel. a c >>> #Come¸aremos criando o arquivo c >>> criar = open(”presenca.close() >>>editar. que utiliza o modo a. chamado “teste.”r”) #Nesse caso vamos usar o m´todo readlines() e atribu´ a uma vari´vel. e a e a Agora que j´ sabemos criar. em e ı-la a a a que.close”.txt”.: o comando “closed” confirma se a conex˜o entre o python e o arquivo foi interrompida.open(”teste.txt”. a >>>ler.closed OBS.txt”.write(aluno+”\n”) escrever. s´ que desta vez atribu´ a a o ımos a ela o modo de leitura. podemos confirmar isto abrindo o arquivo e lendo ou ent˜o podemos usar o modo de leitura “r”.

n˜o atrav´s de uma aplica¸ao servidora espec´ c˜ e a e c˜ ıfica para este fim. mas sim manipulando diretamente o arquivo de banco de dados. Esta biblioteca.2 import sqlite Comandos b´sicos a O PySQLite ´ provido pelo m´dulo sqlite. Para isto. Abaixo temos a e ` 21 .3.: Caso se necessite do banco de dados apenas temporariamente. Oracle. deve-se criar um objeto cursor. como seria feito em um banco de dados tradicional. c˜ n˜o necessitando de um servidor (ou um programa-servidor) que intermedie a manipula¸ao do a c˜ mesmo.db ’) OBS. ao contr´rio a dos bancos de dados tradicionais.cursor(’:memory:’) Usando o cursor podemos inserir instru¸oes em SQL para a manipula¸˜o do banco de dac˜ ca dos. Isto pode ser feito chamando-se o m´todo cursor(). removendo e modificando entradas.1 PySQLite: Manipula¸˜o de Bancos de Dados ca Introdu¸˜o ca O PySQLite ´ um m´dulo de Python que utiliza uma biblioteca em C chamada SQLite capaz de e o operar um banco de dados usando uma variante da linguagem SQL. Isto faz com que este m´dulo seja o ideal para a manipula¸ao de pequenos banco o c˜ de dados. pode-se cri´-lo na mem´ria. a o conexao = sqlite3. Tamb´m ´ c˜ e e possivel fazer o prot´tipo de um aplicativo usando o SQLite e em seguida migrar o c´digo para o o o uso em um banco de dados de maior capacidade como MySQL. deve ser criado um objeto connect que funciona representando o banco de dados que est´ sendo a manipulado: conexao = sqlite3.3 11. realiza a manipula¸ao direta do arquivo de banco de dados. co e cur = conexao. digite s ou n” 11. a o de forma que este ser´ descartado ap´s o encerramento do programa. As instru¸oes em SQL devem ser fornecidas c˜ como um parˆmetro ao m´todo execute() que deve ser aplicado a variavel cursor. etc. ou em aplica¸oes que necessitem de armazenamento interno de dados. portanto este deve ser importado antes de ser usado.3. inserindo. localizando. criando novas tabelas. 11. que ser´ a vari´vel que nos permitir´ efetuar a a a opera¸˜es sobre a base de dados.>>> >>> >>> >>> >>> >>> >>> >>> >>> aluno = raw input(”Deseja saber todos os presentes? s/n \n”) if aluno == ”s”: for nomes in ler: print nomes elif aluno == ”n”: ˜ qual aluno = input(”Qual o nAo mero do aluno? \n”) print ler[qual aluno-1] else: print ”ERRO. PostgreSQL.connect(’:memory:’) Em seguida. e o A manipula¸ao do banco de dados ´ feita.connect(’ /caminho/para/banco de dados.

utio e u a lizando o valor 0 para definir uma opera¸ao FALSA e o valor 1 para definir uma opera¸˜o c˜ ca VERDADEIRA. c˜ Em Python os seguintes valores s˜o interpretados como falso: a False None 0 () [] Ou seja. ao oposto do decimal.?.. remover e exibir a as entradas registradas. ¨ print ¨¨11 ..... insidade = raw input(’Digite a idade do contato:’) .contato[2]) Id: Ap´s efetuar-se cada opera¸˜o deve-se utilizar o m´todo commit() para que as altera¸˜es sejam o ca e co gravadas no banco de dados.execute(’INSERT INTO contatos VALUES (?. interpretando esses valores atrav´s de n´meros bin´rios... print ¨ ? Nome: ? Idade: ??(contato[0]. result = cur. a ´ Como na maioria das linguagens de programa¸ao. connection. podendo ser verdadeiros ou falsos.execute (sql) . A Algebra Booleana trabalha com valores o l´gicos. entre outros. o valor num´rico 0 e as sequˆncias vazias s˜o denominadas e e a falsas enquantos todos os outros valores poss´ ıveis s˜o interpretados como verdadeiro.?)’. fone VARCHAR)¨ cur.. Com esses testes o podemos conferir a veracidade de opera¸oes.(ind. temos a possibilidade de utilizar a Algec˜ bra Booleana para realizar testes l´gicos usados em estruturas de controle.fetchall() .. um nome (string) e um telefone (string). nome VARCHAR... Observemos o exemplo abaixo: >>> a = 6 >>> b = 7 22 . for contato in result: . 12 Express˜es booleanas o Ao leitor que n˜o estiver acostumado com o t´ a ıtulo acima. cur. . sql = SELECT * FROM contatos¨ cur. c˜ e co la¸os de repeti¸ao while e for. sendo que cada um desses elementos ´ tratado como uma e situa¸ao...commit() Removendo um item no banco de dados: def removerdados(): . al´m de podermos montar fun¸˜es condicionais if.. Exerc´ ıcio: • Desenvolva um programa que funcione como uma lista telefˆnica. insnome.. Este programa dever´ ter a habilidade de inserir. insidade)) .commit() Imprimindo os itens de um banco de dados: ¨ def recuperadados(): . os valores False e None. connection.execute(sql) .. idrem = raw input(’Digite o indice:’) .....contato[1].... sql = CREATE TABLE contatos(id INTEGER.execute(’DELETE FROM contatos WHERE id=?’..(idrem)) . Express˜es Booleanas s˜o senten¸as o a c ´ ´ l´gicas que seguem as leis da Algebra de Boole. cur.... Inserindo um item no banco de dados: def inseredados(): . insnome = raw input(’Digite o nome do contato:’) .. As opera¸oes entre valores l´gicos s˜o feitas de forma an´loga `s opera¸˜es c˜ o a a a co feitas entre conjuntos de elementos..exemplos de algumas a¸oes: c˜ Criando uma nova tabela no banco de dados: ¨ def criatabela(): .. que podem ser inseridos em qualquer lugar de seu c c˜ programa. A tabela do banco de dados dever´ conter um n´mero o a u ´ ındice (inteiro).

ent˜o toda a express˜o tamb´m o ser´. a == 6 >>> print 2. a == 6 and b == 7 >>> print 4. caso contr´rio a express˜o ´ falsa. se torna falso. a == 7 or b == 7 >>> print 7. As tabelas abaixo podem ajudar a clarificar alguns desses conceitos: Expression Result true and true true true and false false false and true false false and false false not true not false true or true true or false false or true false or false false true true true true false 23 . o e a a o a que era verdadeiro. e viceversa. devemos relembrar alguns conceitos de Algebra o Booleana. a == 7 or b == 6 >>> print 8. not a == 7 and b == 7 >>> print 6. a == 7 >>> print 3. not (a == 7 and b == 6) >>> print 9. a == 7 and b == 7 >>> print 5. Abaixo temos uma breve descri¸ao sobre os operadores l´gicos: c˜ o • Operador “and ”: (em portugˆs “e”) significa que ambas as afirma¸oes devem ser vere c˜ dadeiras. not a == 7 and b == 6 Ter´ ıamos como sa´ o seguinte resultado: ıda 1 True 2 False 3 True 4 False 5 True 6 True 7 False 8 True 9 False ´ Para entender a l´gica do que foi feito acima. a a e • Operador “or ”: (em portuguˆs “ou”) significa que se ao menos uma das afirma¸˜es for e co verdadeira. a a e a • Operador “not”: (em portuguˆs “n˜o”) significa uma invers˜o l´gica em uma express˜o.>>> c = 42 >>> print 1.

’Suzana’...9.. ..’Robson’... ca • Se o aluno obtiver nota menor que quatro.. ele passa direto. . .0 and nota[contador] < 6.0: print ’Aluno: ”..aluno print “Nota final: ’.aluno print “Nota final: ’.aluno print “Nota final: ”.aluno print “Nota final: ’........8.. Vamos dizer ca o que precisamos de um programa que indique a situa¸˜o de um aluno ao final do ano. ... j´ que precisamos fazer a o a verifica¸ao de duas situa¸oes.. .. ele repete direto.faltas[contador] print “Resultado: Recupera¸˜o por falta’ ca elif nota[contador] >= 4.nota[contador] print “Faltas: ”.... .. .faltas[contador] print “Resultado: Recupera¸˜o por nota’ ca elif nota[contador] >= 4. 9.. .0 and faltas[contador] > 10: print “Aluno: ”. temos que verificar se o aluno tem nota e se ele tem presen¸a..aluno print “Nota final: ’. .’Puga’.’Claudio’. 2.. 15. .4.. a Para montar esse programa utilizamos as Express˜es Booleanas. 12] >>> contador = 0 >>> for aluno in alunos: . 5.. .. 6.9... if nota[contador] >= 6. .nota[contador] print “Faltas: ”..O programa abaixo mostra um exemplo de aplica¸˜o de Express˜es Booleanas.... ... 7. .faltas[contador] print “Resultado: Repetiu direto por n˜o obter nota e por excesso de faltas’ a elif nota[contador] < 4. . a • Se o aluno obtiver nota maior ou igual e seis e tiver mais de 10 faltas.nota[contador] print “Faltas: ”. .0 and nota[contador] < 6... . 2.nota[contador] print “Faltas: ”.faltas[contador] print “Resultado: Repetiu direto por nota” 24 .9] >>> faltas = [9. ... 4.. 11. . • Se o aluno obtiver nota maior que quatro e menor que seis e tiver mais de 10 faltas..0 and faltas[contador] > 10: print “Aluno: ”..0 and faltas[contador] <= 10: print “Aluno: ”.. ele fica de recupera¸˜o por falta.faltas[contador] print “Resultado: Passou de ano’ elif nota[contador] >= 6.. sendo que ca elas s˜o assim: a • Se o aluno obtiver nota maior ou igual e seis e n˜o tiver mais de 10 faltas. .nota[contador] print “Faltas: ”..0 and faltas[contador] <= 10: print “Aluno: ”.. ..’Gustavo’] >>> nota = [5. c˜ c˜ c >>> alunos = [’Fred’.2. ele repete por n˜o obter nota e por excesso de faltas. . ca • Se o aluno obtiver nota maior que quatro e menor que seis e n˜o tiver mais de 10 faltas. . . a ele fica de recupera¸˜o por nota.

basta digitar o comando c˜ o help(nome do modulo).M´dulos e o Existem outros m´dulos que podem ser anexados a sua biblioteca. o ` Caso o leitor queira saber quais fun¸oes cada m´dulo desse possui. abc aepack (Mac) aetools (Mac) aetypes (Mac) aifc al (IRIX) AL (IRIX) anydbm applesingle (Mac) array ast asynchat asyncore atexit audioop autoGIL (Mac) base64 BaseHTTPServer Bastion bdb binascii binhex bisect bsddb buildtools (Mac) bz2 calendar Carbon cd (IRIX) cfmfile (Mac) cgi CGIHTTPServer cgitb chunk cmath cmd code codecs codeop collections ColorPicker (Mac) colorsys commands (Unix) 25 .Apˆndice A .

compileall compiler ConfigParser contextlib Cookie cookielib copy copy reg cPickle cProfile crypt (Unix) cStringIO csv ctypes curses datetime dbhash dbm (Unix) decimal DEVICE (IRIX) difflib dircache dis distutils dl (Unix) doctest DocXMLRPCServer dumbdbm dummy thread dummy threading EasyDialogs (Mac) email encodings errno exceptions fcntl (Unix) filecmp fileinput findertools (Mac) FL (IRIX) fl (IRIX) flp (IRIX) fm (IRIX) fnmatch formatter fpectl (Unix) fpformat fractions FrameWork (Mac) 26 .

hotshot htmlentitydefs htmllib HTMLParser httplib ic (Mac) icopen (Mac) imageop imaplib imgfile imghdr imp imputil inspect io itertools jpeg (IRIX) json keyword lib2to3 linecache locale .logging macerrors (Mac) MacOS (Mac) macostools (Mac) macpath macresource (Mac) mailbox mailcap marshal math 27 .ftplib functools future builtins gc gdbm (Unix) gensuitemodule (Mac) getopt getpass gettext gl (IRIX) GL (IRIX) glob grp (Unix) gzip hashlib heapq hmac .

md5 mhlib mimetools mimetypes MimeWriter mimify MiniAEFrame (Mac) mmap modulefinder msilib (Windows) msvcrt (Windows) multifile multiprocessing mutex Nav (Mac) netrc new nis (Unix) nntplib numbers operator optparse os ossaudiodev (Linux. FreeBSD) parser pdb pickle pickletools pipes (Unix) PixMapWrapper (Mac) pkgutil platform plistlib popen2 poplib posix (Unix) posixfile (Unix) pprint pstats pty (IRIX. Linux) pwd (Unix) py compile pyclbr pydoc Queue quopri random re readline 28 .

repr resource (Unix) rexec rfc822 rlcompleter robotparser runpy sched ScrolledText (Tk) select sets sgmllib sha shelve shlex shutil signal SimpleHTTPServer SimpleXMLRPCServer site smtpd smtplib sndhdr socket SocketServer spwd (Unix) sqlite3 ssl stat statvfs string StringIO stringprep struct subprocess sunau sunaudiodev (SunOS) SUNAUDIODEV (SunOS) symbol symtable sys syslog (Unix) tabnanny tarfile telnetlib tempfile termios (Unix) test textwrap 29 .

thread threading time timeit Tix Tkinter token tokenize trace traceback tty (Unix) turtle types unicodedata unittest urllib urllib2 urlparse user UserDict UserList UserString uu uuid videoreader (Mac) W (Mac) warnings wave weakref webbrowser whichdb winsound (Windows) wsgiref xdrlib xml xmlrpclib zipfile zipimport zlib 30 .

Beginning Python: from novice to professional. 2009. 2005. e ca o [2] The Python Tutorial 2.M´dulo A.Referˆncias e [1] Labaki . Apress. [3] Hetland . UNESP-Ilha Solteira. Magnus Lie. http://python.python.6. [4] http://www.br/wiki/ListaDeExercicios 31 . Introdu¸˜o ao Python . Josu´ .org/ .org. Grupo Python.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->