Aula Linguagem Python -...
Transcript of Aula Linguagem Python -...
Inteligência Artificial
Linguagem Python
Prof. Ms. Luiz Alberto
Contato: [email protected]
Prof. Luiz Alberto -Aula Linguagem Python
Python
• Criada por Guido van Rossum no final de 1989, no InstitutoNacional de Matemática e Ciência da Computação da Holanda(CWI);
• Tinha como principal foco auxiliar físicos e engenheiros;
• O nome é uma homenagem ao grupo humorístico britânicoMonty Python, criador do programa Monty Python's Flying Circus;
• Linguagem de programação livre, com desenvolvimentocomunitário;
Prof. Luiz Alberto -Aula Linguagem Python
Caraterística
• É uma linguagem interpretada (com Perl, Shell script, etc) – Não é necessário compilar o programa;
• Os arquivos fonte podem ser executados diretamente pelo interpretador, que os converte em byte codes (que são multiplataforma);
• O Python pode ser executado diretamente no terminal:
• python (executa o python no modo interativo)
• python teste.py (executa o programa teste.py)
• É ideal para ser usado como linguagem de scripts, automatizando tarefas;
• É uma linguagem de aprendizado fácil, com sintaxe clara e concisa.
– 2 – Prof. Luiz Alberto -Aula Linguagem Python
Caraterística
• É uma linguagem com tipagem forte, porém dinâmica;
• Estrutura simples (não é necessário digitar ponto-e-vírgula ao final de cada linha de instruções – caso seja preciso continuar na linha seguinte pode-se fazer uso da barra invertida);
• Também não é necessário abrir e fechar blocos de código com chaves, como o C, por exemplo;
• A identificação de blocos é feita através de identação, Ex:(1) while x<100:
(2) s=s+x
(3) x=x+1
(4) print s
– 3 –
Prof. Luiz Alberto -Aula Linguagem Python
Expressões matemáticas
• Possui sintaxe semelhante a outras linguagens (C-like)
• O interpretador age como uma calculadora.
• Execute estes comandos e analise os resultados:
>>> 2+2
>>> 3-5
>>> 2**3
>>> 5/4
>>> 5/float(4)
– 4 – Prof. Luiz Alberto -Aula Linguagem Python
Variáveis
• Existe o suporte para a criação de variáveis sem tipo específico (tipagemdinâmica).
• São nomes dados a áreas de memória
– Nomes podem ser compostos de algarismos,letras ou _
– O primeiro caractere não pode ser um algarismo
– Palavras reservadas (if, while, etc) são proibidas
• Uma variável é modificada usando o comando de atribuição:
Var = expressão
• É possível também atribuir a várias variáveis simultaneamente:
var1,var2,...,varN = expr1,expr2,...,exprN
Prof. Luiz Alberto -Aula Linguagem Python
Variáveis>>> a=1
>>> a
1
>>> a=2*a
>>> a
2
>>> a,b=3*a,a
>>> a,b
(6,2)
>>> a,b=b,a
>>> a,b
(2,6)
Prof. Luiz Alberto -Aula Linguagem Python
Variáveis• Variáveis são criadas dinamicamente e destruídas quando não mais
necessárias, por exemplo, quando saem fora de escopo (veremosisso mais tarde)
• O tipo de uma variável muda conforme o valor atribuído, i.e., int, float, string, etc.
– Não confundir com linguagens sem tipo
– Ex.:>>> a ="1"
>>> b = 1
>>> a+b
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: cannot concatenate 'str' and 'int' objects
Prof. Luiz Alberto -Aula Linguagem Python
Números
• Há vários tipos numéricos que se pode usar em python– Int: números inteiros de precisão fixa
• 1 , 2 , 15 , -19
– Long: números inteiros de precisão arbitrária• 1L , 10000L , -9999999L
– Floats: números racionais de precisão variável• 1.0 , 10.5 , -19000.00005 , 15e-5
– Complex: números complexos• 1+1j , 20j , 1000+100J
Prof. Luiz Alberto -Aula Linguagem Python
Números inteiros
>>> a=2**30 # Potenciação
>>> a
1073741824
>>> b=a*1000
>>> b
Prof. Luiz Alberto -Aula Linguagem Python
Números de ponto flutuante
• São implementados como os double's da linguagem C – tipicamente usam 2 palavras
• Constantes têm que possuir um ponto decimal ou serem escritas em notação científica com a letra “e” (ou “E”) precedendo a potência de 10
• Ex:>>> 10 # inteiro10
>>> 10.0 # ponto flutuante
10.0
>>> 99e399000.0
>>> 99e-3
0.099000000000000005Prof. Luiz Alberto -Aula Linguagem Python
Números complexos
• Representados com dois números de ponto flutuante: um para a parte real e outro para a parte imaginária
• Constantes são escritas como uma soma sendo que a parte imaginária tem o sufixo j ou J
• Ex.:>>> 1+2j(1+2j)>>> 1+2j*3(1+6j)>>> (1+2j)*3(3+6j)>>> (1+2j)*3j(-6+3j)
Prof. Luiz Alberto -Aula Linguagem Python
Operações Aritméticas
– 12 – Prof. Luiz Alberto -Aula Linguagem Python
Operações Lógicas:
• Menor (<)
• Menor ou igual (<=)
• Maior ou igual (>=)
• Igual (==)
• Diferente (!=)
– 13 –
Prof. Luiz Alberto -Aula Linguagem Python
Strings
• São cadeias de caracteres
• Constituem outro tipo fundamental do python
• Constantes string são escritas usando aspas simples ou duplas
– Ex.: "a" ou 'a'
• O operador “+” pode ser usado para concatenar strings
– Ex.: "a"+"b" é o mesmo que "ab"
• O operador “*” pode ser usado para repetir strings
– Ex.: "a"*10 é o mesmo que "aaaaaaaaaa"
Prof. Luiz Alberto -Aula Linguagem Python
Strings• Constantes string podem ser escritas com várias linhas desde que as aspas não
sejam fechadas e que cada linha termine com uma barra invertida
• Ex.:>>> print "abcd\n\... efgh\n\... ijk"abcdefghijk>>> print "abcd\... efgh\... ijk"abcdefghijk>>>
Prof. Luiz Alberto -Aula Linguagem Python
Strings – Índices
• Endereçam caracteres individuais de uma string– Notação: string[índice]
– O primeiro caractere tem índice 0
– O último caractere tem índice -1
– Ex.: >>> a = "abcde"
>>> a[0]
'a'
>>> a[-1]
'e'Prof. Luiz Alberto -Aula Linguagem Python
Strings – Fatias (slices)
• Notação para separar trechos de uma string
– Notação: string[índice1:índice2]
– Retorna os caracteres desde o de índice1 (inclusive) até o de índice2 (exclusive)
– Se o primeiro índice é omitido, é assumido 0
– Se o último índice é omitido, é assumido o fim da string
Prof. Luiz Alberto -Aula Linguagem Python
Strings – Fatias (slices)
>>> a
'abcde'
>>> a[0:2]
'ab'
>>> a [2:]
'cde'
>>> a[:]
'abcde'
>>> a[-1:]
'e'
>>> a[:-1]
'abcd'Prof. Luiz Alberto -Aula Linguagem Python
Expressões booleanas• Também chamadas expressões lógicas
• Resultam em verdadeiro (True) ou falso (False)
• São usadas em comandos condicionais e de repetição
• Servem para analisar o estado de uma computação e permitir escolher o próximo passo
• Operadores mais usados
– Relacionais: > , < , ==, !=, >=, <=
– Booleanos: and, or, not
• Avaliação feita em “Curto-circuito”
– Expressão avaliada da esquerda para a direita
– Se o resultado (verdadeiro ou falso) puder ser determinado sem avaliar o restante, este é retornado imediatamente
Prof. Luiz Alberto -Aula Linguagem Python
Expressões booleanas>>> 1==1
True
>>> 1==2
False
>>> 1==1 or 1==2
True
>>> 1==1 and 1==2
False
>>> 1<2 and 2<3
True
>>> not 1<2
False
>>> not 1<2 or 2<3
True
>>> not (1<2 or 2<3)
False
>>> "alo" and 1
1
>>> "alo" or 1
'alo'
Prof. Luiz Alberto -Aula Linguagem Python
Expressões booleanas
• As constantes True e False são apenas símbolosconvenientes
• Qualquer valor não nulo é visto como verdadeiroenquanto que 0 (ou False) é visto como falso
• O operador or retorna o primeiro operando se for vista como verdadeiro, caso contrário retorna o segundo
• O operador and retorna o primeiro operando se for vista como falso, caso contrário retorna o segundo
• Operadores relacionais são avaliados antes de not, que é avaliado antes de and, que é avaliado antes de or
Prof. Luiz Alberto -Aula Linguagem Python
Expressões booleanas>>> 0 or 100100
>>> False or 100
100>>> "abc" or 1
'abc'
>>> 1 and 22
>>> 0 and 3
0>>> False and 3
False
>>> 1 and 2 or 3
2>>> 0 or 2 and 3
3
>>> 1 and not 0True Prof. Luiz Alberto -Aula Linguagem Python
Importando módulos
• Muitas funções importantes são disponibilizadas em módulos da biblioteca padrão
– Ex.: o módulo math tem funções transcendentais como sin, cos, exp e outras
• Um módulo pode conter não só funções mas também variáveis ou classes
– Por exemplo, o módulo math define a constante pi
• Para usar os elementos de um módulo, pode-se usar o comando import
– Formatos:
• import modulo
• from modulo import nome,...,nome
• from modulo import *
Prof. Luiz Alberto -Aula Linguagem Python
Importando módulos
• Por exemplo:– from math import *
# importa todos os elementos do módulo math
– from math import sin
# importa apenas a função sin
– import math
# importa o módulo math como um todo
# (todos os elementos têm que ser citados
# precedidos por math.)
Prof. Luiz Alberto -Aula Linguagem Python
Importando módulos>>> import math
>>> a = sin(30)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
NameError: name 'sin' is not defined
>>> a = math.sin(30)
>>> from math import sin
>>> a = sin(30)
>>> print a
-0.988031624093
>>> a = sin(radians(30))
Traceback (most recent call last):
File "<stdin>", line 1, in ?
NameError: name 'radians' is not defined
>>> from math import *
>>> a = sin(radians(30))
>>> a
0.49999999999999994
Prof. Luiz Alberto -Aula Linguagem Python
Entrada de Dados
• Através do comando input podemos receber do usuário uma string. O número de dígitos da string dada pode ser informado através do comando len(). >>> nome = input(’Digite seu nome: ’)
Digite seu nome: Pedro
>>> nome ’Pedro’
>>> len(nome) 5
>>> sobrenome = input(’Agora digite o sobrenome: ’)
Agora digite o sobrenome: Albuquerque
– 26 – Prof. Luiz Alberto -Aula Linguagem Python
Entrada de Dados
• Através do comando input podemos receber do usuário uma string. O número de dígitos da string dada pode ser informado através do comando len(). >>> nome = input(’Digite seu nome: ’)
Digite seu nome: Pedro
>>> nome ’Pedro’
>>> len(nome) 5
>>> sobrenome = input(’Agora digite o sobrenome: ’)
Agora digite o sobrenome: Albuquerque
– 27 –
Prof. Luiz Alberto -Aula Linguagem Python
Listas
• São coleções de objetos, que podem ser de qualquer tipo, até mesmo
outras listas;
• Os elementos da lista não precisam ser do mesmo tipo;
• Os tratamento dado às listas é semelhante ao dado às strings.
• Exemplos:
>>> lista = ['ab','bc',3,45]
>>> print (lista[0] )
ab
>>> print (lista[3] )
45
>>> a=(lista[0]+lista[1] )
>>> print (a )
abbc
>>> num=(lista[2]+lista[3] )
>>> print (num )
48
– 28 – Prof. Luiz Alberto -Aula Linguagem Python
Listas
• O sistema de indexação é idêntico ao das strings. Da mesmaforma, pode-se selecionar intervalos na lista. Exemplo:
>>> lista = ['ab','bc',3,45]
>>> print (lista[:2] )
['ab', 'bc']
>>> print (lista[2:] )
[3, 45]
>>> print (lista[::-1] )
[45, 3, 'bc', 'ab']
– 29 –
Prof. Luiz Alberto -Aula Linguagem Python
Listas
• Os elementos da lista podem ser alterados. Exemplo:
>>> lista=[1,2,3]
>>> lista[2]='elemento'
>>> print lista
[1, 2, 'elemento']
• Métodos úteis:
>>> lista.append(8) #incluindo elemento
>>> lista.remove(lista[1]) #removendo elemento a partir do índice
>>> lista.remove(2) #removendo o elemento a partir da descrição do mesmo
>>> lista.sort() #ordena a lista
>>> lista.reverse() #inverte a lista
– 30 – Prof. Luiz Alberto -Aula Linguagem Python
Matrizes em Python
• Em Python não existe uma estrutura específica para matrizes
• Para simular uma matriz usamos listas encadeadas, ou seja, listas de listas
• Python admite conjuntos de dados heterogêneos com indexação em várias dimensões
• Os formatos para declaração de variável multidimensional são apresentados a seguir
• matriz = [ ]
• matriz = [ [ ], [ ], [ ] ] ou
• matriz = [ [1,2,3], [4,5,6], [7,8,9] ]
– 31 –
Prof. Luiz Alberto -Aula Linguagem Python
Matrizes em Python
– 32 – Prof. Luiz Alberto -Aula Linguagem Python
Matrizes em Python
– 33 –
Prof. Luiz Alberto -Aula Linguagem Python
Booleanos
• O tipo booleano é uma implementação do tipo inteiro.
• Ele pode assumir os valores True ou False.
• São considerados como False:- False;
- None (nulo);
- 0 (zero);
- “” (string vazia);
- [] (lista vazia);
- () (tupla vazia);
- {} (dicionário vazio);
- qualquer outra estrutura com tamanho zero.
– 34 – Prof. Luiz Alberto -Aula Linguagem Python
Conversão
• Existem funções que são utilizadas para retornar uma variável convertida para
um tipo específico. Exemplos:
>>> x=25
>>> str(x) # retorna x convertido para string
'25'
>>> float(x) # retorna x convertido para float
25.0
>>> x='25'
>>> int(x) # retorna x convertido para inteiro
25
>>> float(x) # retorna x convertido para float
25.0
>>>
– 35 –
Prof. Luiz Alberto -Aula Linguagem Python
Condição IF
• A construção if é utilizada para controlecondicional e tem a seguinte sintaxe:
if <condição>:
<expressão 1>
elif <condição 2>:
<expressão 2>
else:
<expressão 3>
– 36 – Prof. Luiz Alberto -Aula Linguagem Python
Controle de fluxo IF
• Exemplo
– 37 –
Prof. Luiz Alberto -Aula Linguagem Python
Controle de fluxo IF - Exemplo
– 38 – Prof. Luiz Alberto -Aula Linguagem Python
Operações booleanas
• Como visto no slide anterior, temos algumas operações booleanas: – ==, <=, >=, <>, , !=, is, and, or, not
• Temos também o operador de pertinência in if e in lista: print “pertence”
• Assim como encadeamento if 1 < x < 10:
print (“x entre 1 e 10” )
– 39 –
Prof. Luiz Alberto -Aula Linguagem Python
Construções FOR
• Utilizado para percorrer listas ,sequencias eprocessar iteradores.
• Sintaxe:
for <referência> in <sequencia>:
<bloco de expressões>
continue
break
else:
<bolco de expressões>
– 40 – Prof. Luiz Alberto -Aula Linguagem Python
Construções FOR
• O laço não percorre somente sequencias estáticas, mas tambémsequencias geradas por iteradores. Exemplo:
>>> lista=[1,2,3]
>>> for i in lista:
... lista.append(len(lista)+1)
... print i
... if i>5:break
...
1
2
3
4
5
6
– 41 –
Prof. Luiz Alberto -Aula Linguagem Python
Construções FOR
• A função range(m, n, p) define uma sequencia de inteiros iniciadaem m, menor do que n (ou maior, depende da direção dasequencia), a um passo p (que pode ser negativo). Exemplo:
– 42 – Prof. Luiz Alberto -Aula Linguagem Python
A função range()
• Quando se faz por necessário a iteração sobre uma sequência de números, o comando range(n) é bem vindo!
• >>> range(8) # range(a): 0 até a-1 [0, 1, 2, 3, 4, 5, 6, 7]
• Existe polimorfismo aqui, diferenciado pela quantidade de parâmetros:
• >>> range(3,8) # range(a,b): a até b-1 [3, 4, 5, 6, 7]
• >>> range(2,10,3) # range(a,b,c): a até b-1, inc c [2, 5, 8]
– 43 –
Prof. Luiz Alberto -Aula Linguagem Python
While
• É utilizada para realizar iterações condicionais, onde não se sabe o momento em que as iterações terminam.
• Sintaxe:
while<condição>:
<bloco de expressões>
continue
break
else:
<bloco de expressões>
– 44 – Prof. Luiz Alberto -Aula Linguagem Python
While
• Exemplo:
>>> a=0
>>> while a<5:
... print a
... a+=2
...
0
2
4
– 45 –
Prof. Luiz Alberto -Aula Linguagem Python
While
• Vejamos, por exemplo, como calcular um n´umerofatorial:
– 46 – Prof. Luiz Alberto -Aula Linguagem Python
Funções
• Em Python, sub-programas têm o nome de funções• Formato geral:
def nome (arg, arg, ... arg):comando. . . comando
• Onde:– nome é o nome da função– args são especificações de argumentos da função
• Uma função pode ter 0, 1 ou mais argumentos– comandos contêm as instruções a ser executadas quando a
função é invocada47
Prof. Luiz Alberto -Aula Linguagem Python
Funções
• O def é seguido do nome da função e a lista de parâmetros (entre parênteses).
• Após gerar uma função, a identação é necessária.
48 Prof. Luiz Alberto -Aula Linguagem Python
Resultado de Funções
• Uma função tipicamente computa um ou mais valores
• Para indicar o valor a ser devolvido como o resultado da função, usa-se o comando return, que tem o formato
return expressão
– onde a expressão é opcional e designa o valor a ser retornado
49
Prof. Luiz Alberto -Aula Linguagem Python
Funções x Procedimentos
• Procedimento
50 Prof. Luiz Alberto -Aula Linguagem Python
Funções x Procedimentos
• Função
51
Prof. Luiz Alberto -Aula Linguagem Python
Funções
• returntermina a função retornando um valor
• O valor default de return None
• Se a função chegar ao fim sem o uso explícito do return, então também será retornado o valor None
52 Prof. Luiz Alberto -Aula Linguagem Python
Variáveis Locais e Globais
• Variáveis definidas em funções são locais, isto é, sópodem ser usadas nas funções em que foram definidas
• Variáveis definidas fora de funções são conhecidas comovariáveis globais– Em uma função pode-se ler o conteúdo de uma variável global
– Para alterar uma variável global, deve-se declara-la no corpoda função com global
53
Prof. Luiz Alberto -Aula Linguagem Python
Exemplo
54 Prof. Luiz Alberto -Aula Linguagem Python
Dicionário
• Um dicionário é um conjunto de elementos que possuem índices, ou seja, dicionários são formados por chaves e seus respectivos valores, onde as chaves são os índices. Para se declarar um dicionário e os elementos a ele pertencentes, escrevemos:
– 55 –
Prof. Luiz Alberto -Aula Linguagem Python 56
Instaladores
• Interpretador Python disponível para diversasplataformas.– Windows, Unix, Linux, etc.
– Para usuários Windows, é necessário o download do SDK!
• http://www.python.org/download/
Prof. Luiz Alberto -Aula Linguagem Python 57
Instaladores (Windows)
Prof. Luiz Alberto -Aula Linguagem Python 58
Instaladores (Windows)
• Não esqueça de adicionar o caminho dainstalação no PATH do sistema!– ;C:\Python2x
– >>> 2 + 3
– >>> 5
Python Aula 02 Prof. Luiz Alberto -Aula Linguagem Python 59
Ambiente IDLE
• Ambiente Shell de
desenvolvimento básico
• Editor de texto com
highlighting e identação
automática para criação de
arquivos python
• Comandos para alterar
propriedades e execução
de programas
Prof. Luiz Alberto -Aula Linguagem Python 60
Ambiente IDLE
• Disponível na raiz de
instalação do Python
Prof. Luiz Alberto -Aula Linguagem Python
Ambiente IDLE
• Para complilar clique em Run Run Module F5
61