Você está na página 1de 10

30/08/13

Curso de Python Aula 7 Python 3 e Que caminho seguir? | Evaldo Junior :: InFog

Evaldo Junior :: InFog


Desenvolvimento WEB, Open Source, GNU/Linux e Nerdices em Geral

Curso de Python Aula 7 Python 3 e Que caminho seguir?


Publicado em por InFog

Ol! E aqui vamos ns para mais uma aula de Python! Mas antes temos os recadinhos =) Primeiro de tudo: DESCULPEM por no ter postado a aula no domingo dia 07/12 A culpa foi em parte por um projeto que terminei ontem e em parte por estar insatisfeito com o recurso de tirar screenshot dos fontes e colocar aqui. Mas as duas causas j foram resolvidas =) O projeto foi finalizado (eu acho) e eu adotei uma nova forma de mostrar os cdigos para vocs: o plugin code snippet do WordPress, espero que vocs gostem. Ahh, para compensar o domingo passado eu caprichei nesta aula =) Ento melhor vocs pegarem um cafezinho, suquinho, chazinho ou qualquer coisa com inho que vocs gostem de bebericar ou mastigar enquanto estudam, por que a aula de hoje grandinha O frum est a cada dia sendo mais utilizado! Ento eu convido todos vocs para fazerem parte das discusses, elas esto ficando divertidas! Alguns conseguiram resolver pequeno desafio da aula passada \o/, para ver as solues visite o frum =) Na semana passada foi lanado o Python 3.0, tambm conhecido por a como Python 3000 ou Py3k. Acontecerem algumas mudanas na linguagem, mas nada que v prejudicar o que j aprendemos at aqui. Para saber tudo o que mudou voc pode ler a notcia aqui. Como este lanamento ainda muito recente eu no vou usar a nova verso para as aulas, aqui eu vou continuar com o Python 2.5, que o mais novo aqui no meu Debian Lenny. Como muitos esto solicitando uma verso em PDF do curso eu resolvi atende-los! Ento a cada certo nmero de aulas eu vou fazer um grande PDF com todas elas, com algumas alteraes e at possveis correes. Ah, eu tambm quero agradecer a todos que esto acompanhando o curso, est sendo uma experincia muito boa para mim, espero que todos vocs estejam gostando tanto quanto eu \o/. Ok, recados dados, hora de estudar!

Que caminho seguir?


Tudo o que fizemos at agora foram scripts com apenas um caminho a ser seguido, mas agora vamos comear a ver como dar mais opes aos programas, por isso vamos ver as estruturas de controle. Essas estruturas so bem simples tudo o que voc tem que saber so trs palavrinhas: Se, Enquanto e Para. Tudo bem que temos que saber estas palavras em ingls, mas no so complicadas, vamos treinar? Se = If, Enquanto = While e Para = For. Mas antes disso precisamos conhecer os operadores que fazem as estruturas de controle funcionar:
evaldojunior.com.br/blog/2008/12/curso-de-python-aula-7-python-3-e-que-caminho-seguir/ 1/10

30/08/13

Curso de Python Aula 7 Python 3 e Que caminho seguir? | Evaldo Junior :: InFog

== : o operador de igualdade, se x igual a y assim: se x == y. >= : Maior ou igual, se x maior ou igual a y assim: se x >= y. <= : Menor ou igual, se x menor ou igual a y assim: se x <= y. != : Diferente, se x diferente de y assim: se x != y.

A condicional if
Ento vamos comear com o Se, que muito conhecido na maioria das linguagens de programao como if. O if funciona assim: Se certa condio for verdadeira ento faa tal coisa, caso no seja faa essa outra coisa. A construo do if em Python bem simples, vejam estes exemplos: 1 2 3 4 5 6 #!/usr/bin/env python a = 10 if a < 20: print("menor que vinte") else: print("maior ou igual a vinte")

Vejam este outro exemplo: 1 2 3 4 5 6 7 8 #!/usr/bin/env python sexo = 'f' if sexo == 'm': print('masculino') elif sexo == 'f': print('feminino') else: print('indefinido')

Ento? Simples? Algo que eu acho interessante no Python que ele tenta parecer, s vezes, com uma linguagem humana, e no de mquina, sim, sim, vejam este ltimo exemplo, o uso de dois pontos para indicar o que fazer muito comum, vejam este exemplo: Viram s? Acabei de usar os dois pontos para indicar o que viria a seguir, legal n? Agora vou explicar o que casa om dos cdigos fazem: (usei os dois pontos de novo hehe) O primeiro bem simples, a instruo if uma pergunta se, ele funciona assim, se a sentena a seguir for verdadeira ele executa o prximo bloco de cdigo identado. Neste caso apenas a funo print() est identada, ento somente ela seria executada. A instruo else significa seno e opcional, ela diz o seguinte, seno, ento faa o prximo bloco identado. O segundo exemplo bem parecido com o primeiro, a diferena que ele tem uma instruo elif, o elif um else e um if ao mesmo tempo, se ns usarmos o portugus para falar este cdigo ele seria mais ou
evaldojunior.com.br/blog/2008/12/curso-de-python-aula-7-python-3-e-que-caminho-seguir/ 2/10

30/08/13

Curso de Python Aula 7 Python 3 e Que caminho seguir? | Evaldo Junior :: InFog

menos assim: Se a varivel sexo for igual a m ento mostra masculino, seno se a varivel sexo for igual a f ento mostra feminino, seno mostra indefinido. Ok, talvez usar o seno e o se juntos fique meio confuso, mas mesmo assim acredito que no seja to complicado de entender. Mas voc tambm pode fazer uma coisa que conhecida por a como if aninhado, que simplesmente um conjunto de ifs um dentro do outro. Para fazer este exemplo eu preciso falar primeiro sobre o mdulo da diviso para vocs. ( um pequeno desvio na aula de hoje, mas leiam com ateno!)

Mdulo da Diviso
O mdulo de uma diviso o que sobra dela. Por exemplo, 2 / 2 o mdulo zero, j que no sobre nada, em 10 / 5 a mesma coisa, o resultado da diviso 2 e no resto. J em 10 / 3 o resultado inteiro 3, e o mdulo 1. Com isso podemos concluir que sempre que o mdulo de uma diviso zero por que o primeiro nmero era divisvel pelo segundo. No Python o mdulo feito usando o caractere de porcentagem %. Olhem o cdigo abaixo (exemplo que no funciona no Python3): 1 2 3 4 5 6 #!/usr/bin/env python # -*- coding: utf-8 -*a=7 modulo = a % 2 print("O resto da diviso "), print(modulo) # imprime: o resto da diviso 1

Agora vamos voltar aos ifs aninhados.

Ifs Aninhados
Tudo bem, eu poderia ter usado um exemplo sem mdulos de diviso, mas pelo menos assim vocs j prendem o que isso =) Vamos l! Neste exemplo eu quero saber se um nmero par e divisvel por 5, ou seja temos duas condies para verificar, o que indica que usaremos duas vezes a instruo if. Vamos l? Primeiro passo: Saber se o nmero par. Esta uma tarefa bem simples, para sabermos se um nmero par basta ver o resto da diviso por 2, se for zero ento par. Segundo passo: Se o nmero for par ento tambm verificamos se ele divisvel por 5. Isso tambm simples, se o resto da diviso por 5 for zero ento ele divisivel por 5. Mo na massa! Vamos fazer o cdigo: 1 2 3 4 5 6 7 #!/usr/bin/env python # -*- coding: utf-8 -*n = 10 if n % 2 == 0 : if n % 5 == 0 : print(n), print(" par e divisvel por 5")

Pronto, ns definimos a varivel n com o valor 10, verificamos se o resto da diviso por 2 zero (ento par),
evaldojunior.com.br/blog/2008/12/curso-de-python-aula-7-python-3-e-que-caminho-seguir/ 3/10

30/08/13

Curso de Python Aula 7 Python 3 e Que caminho seguir? | Evaldo Junior :: InFog

se for zero mesmo ento verificamos se o resto da diviso por 5 zero tambm, se esta segunda condio tambm for verdadeira ento ns mostramos uma mensagem. E assim que colocamos um if dentro do outro, percebam que a verificao da diviso por 5 s vai acontecer se a condio da diviso por 2 for verdadeira. Agora vamos conhecer o prximo tpico:

O lao while
Bom o while o chamado enquanto, ele chamado de lao por que repete seu contedo enquanto uma condio for verdadeira. Vamos fazer um exemplo que mostra os nmeros de 1 at 20: 1 2 3 4 5 6 #!/usr/bin/env python # -*- coding: utf-8 -*n=1 while n <= 20 : print(n) n=n+1

Acho que o exemplo fala por si mesmo, mas vamos verificar Nele definida a varivel n com o valor 1, ento eu uso o while para dizer que o prximo bloco deve ser executando enquanto n for menor ou igual a 20, ai dentro do bloco exibido o valor de n e ento somado 1 ao seu valor atual. muito importante somarmos 1 n, se no fizermos isso o lao while ser executado indeterminadamente, isso um erro de programao tambm conhecido como loop infinito (loop pode ser considerado como lao em ingls). Estes loops infinitos so uma beleza para travar programas =) Vamos usar um outro exemplo, dessa vez usando o while e o if. Agora o programinha ir exibir somente os mltiplos de 5 entre 1 e 30: 1 2 3 4 5 6 7 #!/usr/bin/env python # -*- coding: utf-8 -*n=1 while n <= 30 : if n % 5 == 0: print(n) n=n+1

Vejamos o que o programa faz n definida com o valor 1, ento criado um lao que ser repetido enquanto n for menor ou igual a 30, ento verificado se n divisvel 5, se sim o valor de n exibido na tela, depois do bloco do if somado 1 n. Simples n? Bom pessoal o para ou for em Python um pouco diferente das outras linguagens e exige que conheamos as arrays, coisa que ainda no vimos, por isso a prxima aula ser para falarmos de arrays e o controle for.

Lio de Casa!
Conhecendo estas estruturas de controle j conseguiremos fazer uns exerccios mais legais =) Ento vamos eles: 1 Mostre todos os pares de 1 a 100 que so divisveis por 3.
evaldojunior.com.br/blog/2008/12/curso-de-python-aula-7-python-3-e-que-caminho-seguir/ 4/10

30/08/13

Curso de Python Aula 7 Python 3 e Que caminho seguir? | Evaldo Junior :: InFog

2 Ainda de 1 a 100 mostra apenas os mpares e divisveis por 13. 3 De 1 a 50 mostre os pares e divisveis por 7, quando no for par diga isso, quando for par mas no for divisvel por 7 diga tambm, algo assim: 1 no par 2 par, mas no divisvel por 7 14 par e divisvel por 7 Pronto, acho que s esses j d para passar uns minutos brincando =) InFog

Outros textos que voc pode gostar: 1. Curso Python Aula 3 Comentrios, Docstrings e Nmeros Vamos agora para a terceira aula do curso de
programao...

2. Curso de Python Aula 8 Mais sobre operadores e conhecendo as listas e o for [ad#propaganda] Ol Alunos!
A aula da semana passada foi bem...

3. Curso de Python Aula 12 Manipulando Arquivos [ad#propaganda] Ol alunos! Semana passada no teve aula, eu
estava...

Related posts brought to you by Yet Another Related Posts Plugin.


Esta entrada foi publicada em Aulas, python e marcada com a tag Aulas, python. Adicione o link permanente aos seus favoritos.

19 respostas a Curso de Python Aula 7 Python 3 e Que caminho seguir?


Andr Vitor Matos disse:
s

Legal. Eu fiz um pequeno add no artigo no forum sobre os operadores AND e OR das estruturas de controle. Espero que gostem.
evaldojunior.com.br/blog/2008/12/curso-de-python-aula-7-python-3-e-que-caminho-seguir/ 5/10

30/08/13

Curso de Python Aula 7 Python 3 e Que caminho seguir? | Evaldo Junior :: InFog

http://python.forums-free.com/operadores-nas-estruturas-de-controle-t12.html Abraos
Responder

Eduardo disse:
s

Gostei do novo recurso para mostrar exemplos de cdigo. Fica visualmente mais agradvel e facilita na hora de testarmos tais exemplos, pois no preciso digitar de novo, s copiar e colar.
Responder

nickolback disse:
s

Ficou realmente legal a descrio dos cdigos. Gostei da explicao do while e do if. Ficou muito claro. Os exemplos seguem o mesmo padro. Instalei o Py3k e tenho a verso anterior tambm. Assim fao alguns testes nas duas verses.
Responder

Bruno disse:
s

O exerccio 3 um pouco contraditrio. Tu pedes para mostrar os nmeros pares. Mas tambm pede para mostrar os mpares ao pedir para mostrar e dizer que os nmeros so mpares.
Responder

InFog disse:
s

Bruno, Sim, na verdade voc deve mostrar todos os nmero e dizer se eles so ou no pares e divisveis por 7 =) InFog
Responder

Bruno disse:
s

Preciso dizer que o meu aviso anterior apenas detalhe. O exerccio no fica prejudicado com isso.
Responder

Wallisson Narciso (SatanGos) disse:


s

Ihh cara! Toh com umas pendencias aqui, mas logo logo te mando as aulas 7 e 8. O curso tah 100000 parabns.
Responder

Pingback: Curso de Python Planeta Livre

evaldojunior.com.br/blog/2008/12/curso-de-python-aula-7-python-3-e-que-caminho-seguir/

6/10

30/08/13

Curso de Python Aula 7 Python 3 e Que caminho seguir? | Evaldo Junior :: InFog

Luciana disse:
s

Estou correndo para ficar junto com todos. Muito legal o cuso.
Responder

ROBISON DE MARATAIZES-ES disse:


s

Bem, esse exerccio foi legal!!! d pra bolar uns programinhas que automatiza clculos com essas funes!!! Bem, estou querendo criar um programinha de clculo do IMC, com uma janelinha, que rode no linux e no ubuntu (esse foi meu primeiro projeto), estou escrevendo o cdigo, modificando, acredito que vou conseguir logo, mas, eu tenho uma dvida, d pra criar um programa.exe no python, ou sempre vai ser programa.py (no java programa.jar, se no me engano), agradeo as respostas. Indo pra aula 8, e mais animado ainda e com vontade de aprender mais, fuiiiiiii.
Responder

Jair disse:
s

n=0 while n <= 100: n=n+2 if n <= 100: print n if n % 3==0: print 'o numero %f e par e divisivel por 3' % n else: print 'O numero %f e par mas nao e divisivel por 3' % n else: break
Responder

Ulysses disse:
s

Resposta da primeira; #!/usr/bin/env python # *-* coding: utf-8 *-* n=1 while n <= 100: if n % 2 == 0 and n % 3 == 0: print(n), n = n +1
Responder

Ulysses disse:
s

Resposta da segunda: #!/usr/bin/env python # *-* coding: utf-8 *-* n=1 while n <= 100:
evaldojunior.com.br/blog/2008/12/curso-de-python-aula-7-python-3-e-que-caminho-seguir/ 7/10

30/08/13

Curso de Python Aula 7 Python 3 e Que caminho seguir? | Evaldo Junior :: InFog

if n % 3 == 0 and n % 13 == 0: print(n), n = n +1
Responder

Ulysses disse:
s

Resposta da terceira, essa foi mais complicada: #!/usr/bin/env python # *-* coding: utf-8 *-* n=1 while n <= 50: if n % 2 == 0 and n % 7 == 0: print(n), print('O nmero par e divisvel por 7') elif n % 2 == 0 and n % 7 != 0: print(n), print('O nmero par e no divisvel por 7') elif n % 3 == 0 and n % 7 == 0: print(n), print('O nmero no par e divisvel por 7') elif n % 7 == 0 and n % 7 == 0: print(n), print('O nmero no par e divisvel por 7') else: print(n), print('O nmero no par e no divisvel por 7') n = n +1
Responder

rog disse:
s

# Pares de 1 a 100 divisiveis por 3. n=1 print (Os seguintes nmeros so pares e dividem por 3: ) for n in range(1, 101): if n % 2 == 0: if n % 3 == 0: print(n) # Ainda de 1 a 100 mostra apenas os mpares e divisveis por 13. n=1 print (Os seguintes nmeros so impares e dividem por 13: ) for n in range(1, 101): if n % 2 != 0: if n % 13 == 0: print(n) # De 1 a 50 mostre os pares e divisveis por 7, quando no for par diga isso, # quando for par mas no for divisvel por 7 diga tambm, algo assim: 1 no # par; 2 par, mas no divisvel por 7; 14 par e divisvel por 7.

evaldojunior.com.br/blog/2008/12/curso-de-python-aula-7-python-3-e-que-caminho-seguir/

8/10

30/08/13

Curso de Python Aula 7 Python 3 e Que caminho seguir? | Evaldo Junior :: InFog

n=1 for n in range(1, 51): if n % 2 == 0: if n % 7 == 0: print(str(n) + Eh par e divisvel por 7) if n % 2 == 0: if n % 7 != 0: print(str(n) + Eh par e no divide por 7) if n % 2 != 0: if n % 7 == 0: print(str(n) + Eh mpar e divide por 7) if n % 2 != 0: if n % 7 != 0: print(str(n) + Eh mpar e nao divide por 7)
Responder

Jefferson disse:
s

>>> a=10 >>> if a<20: print('menor que vinte') else: SyntaxError: invalid syntax algm pode me explicar porque isso ta acontecendo comigo por favor? eu sei que o erro t no else, porque ele fica destacado em vermelho.mas porque? quando eu rodo o seu cdigo aqui, d certinho, aparece "menor que vinte" escrito.mais quando eu tento colocar o cdigo no idle, aparece esse errodesde j obrigado.
Responder

Jefferson disse:
s

ahh, desculpe, era uma besteira que eu estava fazendo mas j est resolvido, pode deletar a minha pergunta =/ mais eu tenho outra dvida.voc mostrou um cdigo que mostra o resto da diviso, mas tambm disse que ele no funciona no python 3.Acontece que eu tenho a verso 3.1.2, e no sei como executar o cdigo!se algum souber me responder ficarei agradecido =)
Responder

Zander de Jesus disse:


s

Caro Jefferson, O que esta ocorrendo um erro de tabulao, o python tem essa sensibilidade. veja o exemplo da mesma atividade que vc fez: >>> r=10 >>> if r>> Obs: como vc utilizou o prompt de comando ele trabalha com os espaos entre os comandos python de forma diferente do script montado em um bloco de texto, veja um exemplo igual ao seu q deu errado; >>> r=10 >>> if r<20: print 'menor que vinte' else:

evaldojunior.com.br/blog/2008/12/curso-de-python-aula-7-python-3-e-que-caminho-seguir/

9/10

30/08/13

Curso de Python Aula 7 Python 3 e Que caminho seguir? | Evaldo Junior :: InFog

SyntaxError: invalid syntax obs: veja q o ''else:'' esta posicionado errado


Responder

Zander de Jesus disse:


s

Como no tinha observado a add dos operadores AND e OR no forum consegui fazer as atividades com o conteudo do blog : #exercicio 1 linha = - * 50 i=1 while i <= 101: if i % 2 == 0: if i % 3 == 0: print i i=i+1 #exercicio 2 k=1 while k <= 101: if k % 2 != 0: if k % 13 ==0: print k k=k+1 # exercico 3 f=1 while f <= 50: if f % 2 == 0: if f % 7 == 0: print f,' par e divisivel por 7' elif f % 2 == 0: if f % 7 != 0: print f,' par, mais no divisivel por 7' elif f % 2 !=0: if f % 7 ==0: print f, ' no par, e divisivel por 7' elif f % 2 != 0: if f % 7 != 0: print f, 'no par' else: print 'Falha na programao' f=f+1
Responder

Evaldo Junior :: InFog


Orgulhosamente criado com WordPress. This blog is protected by Dav e's Spam Karma 2 : 19550 Spam s eaten and counting...

evaldojunior.com.br/blog/2008/12/curso-de-python-aula-7-python-3-e-que-caminho-seguir/

10/10

Você também pode gostar