Escolar Documentos
Profissional Documentos
Cultura Documentos
Sumrio
1 Caractersticas bsicas da linguagem 2 Obteno e instalao 3 Variveis 4 Strings 4.1 Manipulando Strings 5 Operaes matemticas 6 Entrada de Dados 7 Estruturas de controle 7.1 While . . . . . . . . 7.2 If . . . . . . . . . . . 7.3 For . . . . . . . . . . 8 Funes
8.1 8.2 8.3 Variveis em funes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Recursividade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mdulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 2 3 3
4
5 6 7
7 7 8
9
11 11 12
9 Listas
9.1 9.2 9.3 9.4 9.5 9.6 Inserindo um novo dado a uma lista . . . . . . . . . . . . . . . . . . . . . . Impresso dos contedos da lista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Determinar em que ordem um elemento aparece na lista
13
15 15 16 16 16 17
Range
10 Expresses booleanas
17
Introduo
A idia de um ser humano, enquanto for apenas um pensamento, algo amorfo, que existe por si mesma, no necessitando de nada, alm de si, para descrev-la. Entretanto para compartilh-la com outras pessoas precisamos descrever esta idia com palavras e frases, transformando este pensamento em uma linguagem natural humana. Computadores e outros dispositivos eletrnicos programveis possuem sua prpria forma de pensar", isto , o cdigo binrio. Mquinas seguem instrues determinadas pela energizao (ou no) de determinadas partes em seus componentes. Ento para transmitir uma idia para uma mquina devo me comunicar em zeros e uns? A resposta para esta pergunta um sim e um no". Um sim pois, de fato, a idia que ser recebida pela mquina ser descrita como uma sequncia de zeros e uns. O no se refere a dizer que embora seja possvel traduzir sua idia para uma linguagem natural da mquina (binrio), este no o processo mais comum. A programao diretamente em binrio algo demasiadamente complexo para humanos, pois a forma bsica de expresso do ser humano so as palavras e no sequncias numricas. Para contornar este problema foram criadas as linguagens de programao, que so pontes entre a linguagem natural humana e a linguagem da mquina (binria), mesclando conceitos das linguagens de mquina e natural humana. As linguagens de programao so classicadas em vrios nveis de acordo com sua proximidade com a linguagem humana. Linguagens de baixo nvel tem a funo de descrever uma situao mais prxima do ponto de vista de uma mquina, ao passo que linguagens de alto nvel so concebidas com o propsito de tornar fcil a traduo de um pensamento (algoritmo), se assemelhando com delidade linguagem humana que seria necessria para descrever aquela idia. Neste tutorial descreveremos a linguagem de programao Python cujo objetivo se aproximar bastante da linguagem humana, sendo assim intuitiva, fcil e ao mesmo tempo sendo bastante exvel, se adequando ao uso em diversas situaes.
Python uma linguagem de programao interpretada, de cdigo-fonte aberto e disponvel para vrios sistemas operacionais. ao se escrever um programa, este no ser compilado (traduzido para uma linguagem de mquina), mas sim lido por um outro programa (chamado de interpretador) que traduzir para a mquina o que seu programa quer dizer. O interpretador para Python interativo, ou seja, possvel execut-lo sem fornecer um script (programa) para ele. Ao invs disso, o interpretador disponibilizar uma interface interativa onde possvel inserir os comandos desejados um por um e ver o efeito de cada um deles. Neste tutorial, se encontra a representao >>> antes da maioria dos comandos apresentados , o que quer dizer que este comando est sendo inserido no interpretador interativo (e sempre abaixo, o resultado gerado).
Obteno e instalao
Caso o usurio esteja utilizando um sistema Linux ou OS X (Apple), o interpretador para Python j vem instalado por padro, sendo apenas necessrio escrever o comando python
no seu programa de terminal favorito. Para usurios do sistema operacional Windows, o interpretador para Python deve ser baixado atravs do site http://www.python.org e instalado. Neste ltimo sistema o usurio encontra um utilitrio para fazer o papel de terminal (e editor de python) no Windows, denominado IDLE.
Variveis
Variveis so formas de se armazenar dados para uso posterior. Estas podem ser classicadas em 3 tipos bsicos (existem outros, que sero abordados mais a frente):
int
oat
string
Ao contrrio da maioria das outras linguagens, em Python, no necessrio declarar as variveis que sero usadas, tampouco denir seu tipo. se atribuir o valor 3 varivel inteiro(tipo A prpria sintaxe do dado a Python saber que ser armazenado identica o tipo da varivel para armazen-lo. Por exemplo, caso deseje-
int ").
A,
basta digitar
A=3.
um
Por outro lado, se o valor a ser armazenado fosse 3,2 que um dado
do tipo ponto utuante, este deveria ser expresso como se realizar certos tipos de manipulaes de dados.
A=3.2.
Python, A=3 e B=3.0 so variveis de tipos diferentes e isto deve ser levado em conta ao
4
>>> >>>
Strings
a = Bom Dia print a
String um tipo de objeto formado por uma sequncia imutvel de caracteres que nos permite trabalhar com textos. Exemplo:
Bom Dia Percebemos que elas so delimitadas por aspas, podemos utilizar tanto aspas duplas como as simples. Se utilizarmos aspas duplas, como o mostrado no exemplo acima, podemos usar as simples para aplicaes dentro do texto que estamos escrevendo, o contrrio tambm verdadeiro. Exemplo:
>>> >>>
O lema do governo JK era: Cinquenta anos em cinco. No exemplo acima utilizamos um outro artifcio para trabalharmos com strings, o do
\n.
Este por sua vez, tem a funo de pular uma linha e escrever o texto, que est depois
\n,
nessa nova linha. Tanto isso verdade que no mesmo exemplo, quando usamos o
comando print mostrada a parte do texto que diz: Cinquenta anos em cinco., impresso na linha seguinte. Outro artifcio parecido com
vem aps, um espao de tabulao. H tambm outra aplicao para as aspas, que consiste na delimitao do texto por trs aspas (duplas ou simples). Exemplo:
>>>
>>>
print a
Quatro times do Rio de Janeiro: Botafogo Vasco Fluminense Flamengo Nessa aplicao para as aspas, quando usamos o comando print, tudo o que estiver entre as trs aspas ser impresso exatamente da mesma forma como foi escrito.
4.1
Manipulando Strings
a = 'matemtica' a[2]+a[-5]+a[-4:]
Pelo fato de uma string ser uma sequncia imutvel, isso nos d a possibilidade de manipularmos essa sequncia, consideremos o exemplo abaixo:
>>> >>>
'ttica' Isso nos mostra que uma string segue uma determinada indexao onde cada caractere assume um endereo que, pode ser acessado colocando o nome da varivel, que contm a string, e aps, entre os colchetes, o endereo da clula que contm o caractere desejado. Existe tambm um recurso conhecido como operador %, que serve para formatar as strings, basicamente so trs os tipos de formatao que temos:
%s %d %f
- Serve para substituir string; - Serve para substituir nmeros inteiros em uma frase destinada a um print; - Serve substituir oats (nmeros em aritmtica de ponto utuante).
Observao: As trs formataes acima relacionadas so normalmente para aplicaes em uma frase destinada a um print. Exemplo:
>>> >>>
>>> >>>
Maria comprou 1,5 quilos de maa verde. Observao: Com vimos acima o operador % pode ser utilizado para formatao de nmeros tambm. Com ele possvel tambm determinar a quantidade de nmeros, aps a vrgula de um oat. Exemplo:
>>> >>>
245.48 Percebemos que Python fez uma aproximao do nmero real, possibilitando que o resultado de uma futura operao seja o mais preciso possvel.
Operaes matemticas
Suas capacidades matemticas se extendem desde operaes bsicas at
Alm de ser uma poderosa linguagem de programao, Python sabe lidar bem com matemtica. operaes com nmeros complexos. Abaixo, vamos comear aprendendo as 4 operaes matemticas bsicas. Lembre-se que >>> signica a digitao de um comando no interpretador.
>>>2+3
5
Soma:
>>>2-3
-1
Subtrao:
>>>2*3
6
Multiplicao:
Diviso:
>>>2/3
0
Na diviso, pode-se optar por resultados como nmeros inteiros (ou o inteiro mais prximo) ou resultado exato (um ponto utuante). Para isso, deve-se fornecer um inteiro (para se obter um inteiro como resultado) ou um ponto utuante (para se obter o resultado exato).
Diviso:
>>>2.0/3.0
0.66666666666666663
A operao aritimtica de potenciao tambm pode ser feita, assim como a sua inversa, a radiciao.
Potenciao:
>>>
2**3
No existe um comando especco para a radiciao em Python (exceto para a raiz quadrada). Entretanto, para obter a raiz n-sima de um nmero basta elev-lo por onde o ndice da raiz. As regras para a obteno de nmeros inteiros ou pontos ututante tambm se aplicam a este caso.
1/n
>>>8**(1.0/3.0)
2.0 8
Radiciao:
Entrada de Dados
raw_input
podemos receber do usurio uma pode ser conhecido pelo comando
Atravs do comando
string
>>> >>> >>>
5
len() .
string.
O tamanho da
'Pedro' len(nome)
>>>
Operaes matemticas no podem ser feitas com porm se somarmos multiplicarmos uma
strings, Python as juntar, num processo chamado concatenao e se string ela ser repetida.
>>>
nome + sobrenome
'PedroAlbuquerque'
>>>nome*3
'PedroPedroPedro'
Se a priori sabemos que o dado digitado pelo usurio no ser uma utilizar como entrada de dados o comando
input():
string,
podemos
<type 'oat'>
Observao: O dado inserido pelo usurio j dinamicamente tipado. Para saber qual o tipo da varivel atribuda, basta digitar o comando referente ao objeto entre parnteses.
type()
Estruturas de controle
Os comandos de Python so executados pelo computador, linha por linha e as estruturas de controle permitem ao programador modicar a ordem em que cada comando ser executado bem como se ele ser ou no executado.
7.1
While
O
loop while
determinado bloco de comando, at que uma determinada condio pare de ser atendida. Para que o bloco seja executado no momento correto, devemos manter uma rgida identao, ou seja, tudo que pertencer ao bloco do ajuda a deixar o cdigo legvel e organizado.
>>> ...
#continuao do programa
>>> >>> >>> >>> >>> ... ... ... >>> >>>
resultado = 1 num_org = input('Entre com um nmero inteiro: ') Entre com um nmero inteiro: 6 num = num_org while num > 1: resultado = resultado * num num = num - 1
while
loop
7.2
If
if
direciona o computador
a tomar uma deciso, baseado nas condies determinadas. Se a condio for atendida, um bloco de comandos ser executado, caso contrrio, o computador executa outros comandos.
>>>if ...
#condio1 for verdadeira: #bloco de comandos 1 #condio2 for verdadeira: #bloco de comandos 2
...elif ...
...else: ...
#bloco de comandos 3
Nessa estrutura podemos utilizar quantas condies forem necessrias, para isso, basta repertimos o
elif
>>>num >>>adv ... ... ... ... ... ... ... ...
= 23 = 0 adv != num: adv = input('Insira um nmero: ') if adv < num: print ' maior!' elif adv > num: print ' menor!' else: print 'Voc acertou!'
>>>while
>>>Insira
um nmero:
Como vimos, em Python no necessrio que utilizemos a uma estrutra. Isto devido a identao do programa. terminada automaticamente quando a
tag
7.3
For
for,
em Python, difere do que normalmente se v em outras linguagens de
O comando
programao, onde esse comando tem a nalidade de realizar uma iterao baseada numa progresso aritimtica, percorrendo os nmeros denido pelo usurio, enquanto em Python a iterao feita percorrendo os itens de uma sequncia, seja ela uma lista ou at mesmo uma
string.
>>> ...
A estrutura acima utiliza uma varivel criada, no caso elemento da lista criada com o comando
loop for far com que a varivel contador aponte para um diferente valor dentro da lista range e logo em seguida imprima esse valor.
A sada que teramos neste caso seria:
1
2 3 4 5 6 7 8 9 10
for tambm pode ser aplicada com o uso de strings, observemos o caso abaixo:
lista = ['vida', 42, 'o universo', 6, 'e', 7, 'tudo'] for item in lista: print 'O item atual :',print
O item atual : vida O item atual : 42 O item atual : o universo O item atual : 6 O item atual : e O item atual : 7 O item atual : tudo
Funes
Se houver alguma ao que seja grande e utilizada com frequncia, temos a opo
As linguagens de programao em geral tm o intuito de automatizar aes tornando-as mais rpidas. de criar uma funo que cumpra o seu objetivo, reduzindo o espao ocupado pelo nosso programa nal, alm de deix-lo com uma aparncia mais limpa, visto que o tamanho do cdigo ir diminuir. Essas funes tambm so muito teis na tarefa de debuggar o seu cdigo, visto que voc no precisar vasculhar o cdigo atrs do erro, basta entrar na funo e modic-la. Um exemplo de como podemos diminuir um cdigo est descrito abaixo. Se em um determinado problema, precisarmos descobrir se dois valores absolutos so iguais podemos utilizar o cdigo 1, descrito abaixo, todas as vezes que precisarmos realizar essa descoberta, ou podemos simplesmente usar o cdigo 2 criando uma funo que cumpra esse objetivo exigindo apenas que apresentemos os valores que devemos analisar.
if a < 0: a = -a if b < 0: b = -b if a == b: print 'Os valores absolutos de ', a, ' e ', b, ' so iguais' else: print 'Os valores absolutos de ', a, ' e ', b, ' so iguais'
Funo 2:
>>>def ... ... ... ... ... ... ... ... ... ...
compara_absolutos(a,b): " Essa funo retorna se os valores absolutos das variveis requeridas so iguais if a < 0: a = -a if b < 0: b = -b if a == b: print 'Os valores absolutos de ', a, ' e ', b, ' so iguais' else: print 'Os valores absolutos de ', a, ' e ', b, ' so iguais'
Abaixo apresentamos a sintaxe necessria para criao de funes utilizando a linguagem Python.
strings ): funcao(1234,"pet-tele","UFF-1234"),
que ao chamar uma funo, podemos passar a esta alguns parmetros (valores ou porm em algumas funes ao colo-
carmos nosso cdigo na seo bloco de comandos, a funo automaticamente denir os parmetros necessrios. Por exemplo, se houver uma funo que faa clculos matemticos, devolvendo um resultado numrico, ser necessrio que todas as variveis chamadas pela funo sejam inteiros ou
oats.
10
8.1
Variveis em funes
Em geral, quando estamos eliminando cdigo repetitivo por meio de funes tambm temos algumas variveis repetidas neste cdigo. Em Python, as variveis podem ter tratamentos diferentes em funo de onde se encontram. Todas as variveis que vimos at agora so chamadas de variveis globais, ou seja, em qualquer momento ou em qualquer parte do cdigo do seu programa, voc poder utiliz-las (seja para ler seu contedo ou atribuir valores). Funes tem um tipo especial de variveis que so chamadas de variveis locais. Estas variveis existem apenas dentro da funo, de forma que caso o programador determine uma funo e armazene um certo dado em uma varivel local, ao trmino desta funo a varivel ser destruda, no sendo possvel recuperar seu valor. Mas como ento, pode-se recuperar um valor de uma funo? comando Para isto usamos o Um pouco confuso?
return
esconder a varivel global, enquanto a funo estiver rodando. Ento conra o exemplo abaixo:
>>>def
print_func()
print,
>>>print_func()
in print_func a = 17
>>>print
a = 4
'a = ', a
Com isto, podemos concluir que variveis criadas dentro de uma funo (variveis locais), no afetam as variveis que esto fora dela (variveis globais). As variveis locais existem apenas dentro do espao limitado pela funo, no podendo assim nem ser usada, nem afetar nada fora deste espao.
8.2
Recursividade
A recursividade um tipo de iterao (repetio) na qual uma funo chama a si mesma repetidamente at que uma condio de sada seja satisfeita. Abaixo temos um exemplo de uma funo responsvel por calcular o fatorial de nmeros positivos inteiros e demonstra como uma funo pode chamar a ela mesma utilizando a propriedade recurssiva.
11
... >>>print
2! = 2 '2! = ',fatorial(2)
>>>print
3! - 6
'3! = ',fatorial(3)
>>>print
4! = 24::
'4! = ',fatorial(4)
>>>print
5! = 120
'5! = ',fatorial(5)
fatorial(n),
fatorial(3),
if
n*fatorial(n-1), ou seja, 3*fatorial(2). Entretanto, ela ainda no possui o valor de fatorial(2). Para isso, a funo fatorial novamente chamada com n = 2, retornando o valor 2*fatorial(1). fatorial(1), a funo chama a si mesma mais uma vez para if
que est na funo calcul-lo.
fatorial
e ento
Vamos fazer uma retrospectiva do que aconteceu ao se executar esta funo: fatorial(3) 3 * fatorial(2) 3 * 2 * fatorial(1) 3 * 2 * 1 = 6
8.3
Mdulos
Pensando na reutilizao de cdigo, a linguagem Python j possui um conjunto de funes prontas para serem usadas ou agregadas em seus programas. Essas funes esto agrupadas em estruturas denominadas mdulos. Para a utilizao desses mdulos preciso utilizar o comando
import nome_do_mdulo.
Aps ter importado o mdulo, qualquer funo pertencente a ele pode ser utilizada atravs do comando
nome_do_mdulo.funo(argumento).
12
utilizao. Voc tambm pode denir o seu prprio mdulo. Deni-se as funes desejadas e ao nal, voc salva o seu mdulo com a extenso .py . Exemplo: Digite em um editor de texto simples:
#IMC.py
def estado(imc): if imc < 24.9: print 'NORMAL' elif 24.9 < imc < 29.9: print 'PESO A MAIS' elif 29.9 < imc < 40: print 'LIGEIRA OBESIDADE' elif imc > 40: print 'OBESIDADE' else: print 'MAGRO DEMAIS'
def pesoideal(peso,altura): a = 20*(altura**2) b = 24.9*(altura**2) print 'Seu peso ideal se encontra entre %f e %f ' %(a,b)
Agora, salve o seu arquivo como IMC.py . utilizado por qualquer programa em Python.
Listas
Aps denidas, podem ser modicadas de vrias Para denir uma lista basta digitar:
lista = [9,8,7]
O endereamento dos componentes comea no 0. determinado elemento da lista, basta cham-lo: ao elemento de posio x na lista. Alguns comandos referentes a listas:
lista[x].
len(lista)
13
lista.append(x) lista[y]= x
adiciona o elemento x no nal da sua lista adiciona uma lista inteira no nal da sua lista
lista.extend([6,5,4])
tretanto, existem outros tipos de variveis capazes de armazenar mais de um valor. Em Python, chamamos essas variveis com capacidade de armazenamento de listas ou vetores. Vamos explicar a sintaxe de uma lista atravs das linhas de cdigo exibidas abaixo:
meses = ['Janeiro', 'Fevereiro', 'Maro', 'Abril', 'Maio', 'Junho', 'Julho','Agosto', 'Setembro', 'Outubro', 'Novembro',
'Dezembro'] while 1: qual_mes = input("Escolha um ms (1-12)? ) if 1 <= which_one <= 12: print O ms , meses[qual_mes - 1]
Escolha um ms (1-12)? 5
Primeiramente criamos a nossa lista, a denio de uma lista anloga a de uma varivel qualquer, porm isolando o contedo com colchetes. O uso das aspas (duplas ou simples) apenas necessrio caso estejamos inserindo na lista uma mos apenas um nmero, no seria necessrio. Exemplo:
string, se armazensse-
loop.
while
O programa vai rodar indenidamente at ser dado o comando Ctrl+D, ou at Uma vez nesse
loop,
qual_mes", e depois de um tratamento de erros, feito com a utilizao de um comando propriedade da lista, que buscar um dado da lista, que se d escrevendo o nome da
if, nos devolvido o nome do ms selecionado, Na ltima linha do cdigo utilizamos uma
lista e entre colchetes o nmero referente ao local da lista onde est o dado requerido (lista[nmero]). Observe que na nossa linha de cdigo
menos um, ou seja: o Python indexa suas listas partindo do zero. Alm de selecionar um elemento de uma lista, temos algumas outras propriedades que apresentaremos em seguida.
14
9.1
Para inserir um novo dado a uma lista qualquer, chamamos uma mtodo chamado
pend :
>>>teste
= []
.ap-
append
.extend :
['zero','um','dois','trs','quatro','cinco','seis']
>>>teste*2
[zero','um','dois','trs','quatro','cinco','seis',zero','um','dois','trs','quatro','cinco','seis']
Observao: o cdigo
9.2
Ao chamarmos a lista
teste
dando com todos os elementos da lista. Podemos tambm imprimir somente alguns valores de dentro da lista, necessitando para isso apenas indicar o local:
>>>print >>>print
As variavis na lista teste so ['zero','um','dois','trs','quatro'] 'As variavis 0 e 3 da lista teste so ',teste[0],' e ',teste[3]
for.
valor in teste:
print valor
15
quatro
9.3
A funo cdigo:
.index
string
>>>print
4
lista.index("quatro")
Observao:
9.4
Para remover um elemento de uma lista utilizamos o comando ou posio da lista, onde haver a remoo.
del ,
referenciando o
index,
>>>print >>>del
Antes a lista 'teste' era: ['zero','um','dois','trs','quatro'] teste[3] 'Agora a lista 'teste' : ',teste
Podemos obter o mesmo efeito utilizando o mtodo ocorrncia na lista para um dado valor ou
string :
>>>lista >>>print
>>>teste.remove("um") >>>print
'Agora a lista 'teste' : ',teste Agora a lista 'teste' : ['zero','dois','quatro','um']
9.5
len() ,
como exemplicado no
>>>print
4
16
9.6
Range
range
gera um vetor contendo nmeros (inteiros) sequnciais, obedecendo a re-
A funo
gra de escrita:
range (inicio,m)
importante observar que o nmero nalizador descrito acima no includo no vetor, por exemplo:
>>>vetor >>>print
= range(1,11) vetor
O cdigo acima nos dar como sada o vetor: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] . Em outras palavras o ltimo nmero excludo do vetor, portanto o 11 no entra na composio deste. A funo
range
maior que o nmero nal, bem como quando apenas o nmero nal passado para a funo, portanto so vlidas as contrues:
range(1, 10)
[-32, -31, -30, -29, -28, -27, -26, -25, -24, -23, -22, -21] range(5,21)
[5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] range(5)
[0, 1, 2, 3, 4] range(21, 5)
No ltimo exemplo foi retornado um vetor vazio, isso se deu porque o elemento inicial era maior que o nal. Outra caracterstica importante desse comando a de adicionar uma terceira varivel
no
>>>range(0,24,4)
[0, 4, 8, 12, 16, 20, 24]
10
Expresses booleanas
Ao leitor que no estiver acostumado com o ttulo acima, Expresses Booleanas so sentenas lgicas que seguem as leis da lgebra de Boole. A lgebra Booleana trabalha com valores lgicos, interpretando esse valores atravs de nmeros binrios, ao oposto do dec-
17
imal, utilizando o valor 0 para denir uma operao FALSA e o valor 1 para denir uma operao VERDADEIRA. As operaes entre valores lgicos so feitas de forma anloga s operaes feitas entre conjuntos de elementos, sendo que cada um desses elementos tratado como uma situao, podendo ser verdadeiros ou falsos. Em python os seguintes valores so interpretados como falso:
False None 0
() []
Ou seja, os valores
nadas falsas enquantos todos os outros valores possveis so interpretados como verdadeiro. Como na maioria das linguagens de programao, temos a possibilidade de utilizar a lgebra Booleana para realizar testes lgicos usados em estruturas de controle, com esses testes podemos conferir a veracidade de operaes, alm de podermos montar funes condicionais
if, laos de repetio while e for, entre outros, que podem ser inseridos em
>>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>>
a = 6 b = 7 c = 42 print 1, a == 6 print 2, a == 7 print 3, a == 6 and b == 7 print 4, a == 7 and b == 7 print 5, not a == 7 and b == 7 print 6, a == 7 or b == 7 print 7, a == 7 or b == 6 print 8, not (a == 7 and b == 6) print 9, not a == 7 and b == 6
Para entender a lgica do que foi feito acima, devemos relembrar alguns conceitos de lgebra booleana. Abaixo temos uma breve descrio sobre os operadores lgicos:
18
Operador
and ":
or ":
not ":
presso, o que era verdadeiro, se torna falso, e viceversa. As tabelas abaixo podem ajudar a claricar alguns desses conceitos: Expresso true and true true and false false and true false and false not true not false true or true true or false false or true false or false Resultado true false false false false true true true true false
O programa abaixo mostra um exemplo de aplicao de expresses booleanas. Vamos dizer que precisamos de um programa que indique a situao de um aluno ao nal do ano, sendo que elas so assim:
Se o aluno obtiver nota maior ou igual e seis e no tiver mais de 10 faltas, ele passa direto; Se o aluno obtiver nota maior ou igual e seis e tiver mais de 10 faltas, ele ca de recuperao por falta; Se o aluno obtiver nota maior que quatro e menor que seis e no tiver mais de 10 faltas, ele ca de recuperao por nota; Se o aluno obtiver nota menor que quatro, ele repete direto; Se o aluno obtiver nota maior que quatro e menor que seis e tiver mais de 10 faltas, ele repete por no obter nota e por excesso de faltas;
Para montar esse programa precisaremos utilizar as Expresses Booleanas, j que precisamos fazer a vericao de duas situaes, temos que vericar se o aluno tem nota e se ele tem presena.
>>> >>>
19
>>> >>> >>> ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
faltas = [9, 5, 15, 2, 11, 12] contador = 0 for aluno in alunos: if nota[contador] >= 6.0 and faltas[contador] <= 10: print 'Aluno: ',aluno print 'Nota nal: ',nota[contador] print 'Faltas: ',faltas[contador] print 'Resltado: Passou de ano' elif nota[contador] >= 6.0 and faltas[contador] > 10: print 'Aluno: ',aluno print 'Nota nal: ',nota[contador] print 'Faltas: ',faltas[contador] print 'Resltado: Recuperao por falta' elif nota[contador] >= 4.0 and nota[contador] < 6.0 and faltas[contador] <= 10: print 'Aluno: ',aluno print 'Nota nal: ',nota[contador] print 'Faltas: ',faltas[contador] print 'Resultado: Recuperao por nota' elif nota[contador] >= 4.0 and nota[contador] < 6.0 and faltas[contador] > 10: print 'Aluno: ',aluno print 'Nota nal: ',nota[contador] print 'Faltas: ',faltas[contador] print 'Resultado: Repetiu direto por no obter nota e por excesso de faltas' elif nota[contador] < 4.0: print 'Aluno: ',aluno print 'Nota nal: ',nota[contador] print 'Faltas: ',faltas[contador] print 'Resultado: Repetiu direto por nota' "\n contador+=1
20
Referncias
[1] Labaki , Josu , Solteira. [2]
21