Prof. Natalia Castro Fernandes Mestrado em Telecomunicações …natalia/prog_avan/slide2.pdf ·...
Transcript of Prof. Natalia Castro Fernandes Mestrado em Telecomunicações …natalia/prog_avan/slide2.pdf ·...
Prof. Natalia Castro Fernandes
Mestrado em Telecomunicações – UFF
2º semestre/2012
Operações básicas� +
� -
� /
*� *
� ** ou pow(a,b)
� %
� =
� ==, !=, <, >, <=, >=
� or, and, not
Valor dos operadores� 10/3
� 10.0/3
� 10/3.0
10%3� 10%3
� 10.0%3
� A = ‘casa’ e B = ‘teste’. A+B=?
Variáveis� São nomes dados a áreas de memória
� Nomes compostos de algarismos,letras ou _� O primeiro caractere não pode ser um algarismo� Palavras reservadas (if, while, etc) são proibidas
� Funcionalidades:� Guardar valores intermediários� Criar estruturas de dados
� Uma variável é modificada usando o comando de atribuição:� Var = expressão
� var1,var2,...,varN = expr1,expr2,...,exprN
Exercício� Qual o resultado:
� a=1
b=2
a, b = 2*a,ba, b = 2*a,b
� a=1
b=2
a,b=b,a
Tipos de variáveis
O tipo da variável não é explicitamente definido em Python!
Exemplo: Crie uma string contendo a palavra ‘teste’
Comportamento de variáveis� Variáveis
� Criadas dinamicamente
� Destruídas automaticamente quando não mais necessáriasnecessárias
� Tipo da variável muda conforme valor atribuído� A = ‘Casa’ #A é uma string
� A+1 #Gera erro
� A = 1 #Agora A passou a ser um inteiro
� A+1 #Resulta em 2
Comentários são colocados com o uso do #
Tipos de variáveis� Tipos primitivos
� Embutidos na linguagem� Tipos
� Simplesint� int� Números inteiros de precisão fixa (1 palavra=32 bits)
� Exemplos: 1 , -2 , 25 � Representação em hexadecimal:
� a=0xab� Em decimal, a=171
� Representação em octal:� a=030
� Em decimal, a = 24
Tipos de variáveis� long
� Números inteiros de precisão arbitrária (Tantas palavras quanto for necessário)
� Exemplos: 1L , 10000L , -9999999L
� float
� Números racionais de precisão variável (2 palavras)
� Exemplos: 1.043, 123e14, 2e5
� Uso de ‘e’ ou ‘E’ representando potência de 10� 2e2 equivale a 200
Tipos de variáveis
� complex
� Números complexos
� Exemplos: 1+1j , 20j , 1000+100J
� Pode-se usar j ou J, mas sempre com um número na frente� A=j � erro
� A=1j � Número complexo
Tipos de variáveis� String
� Sequência de caracteres
� Exemplos: ‘casa’, “casa”
� Pode-se usar ‘’ ou “” indistintamente
� A representação de um caractere ou de uma string é feita de forma indistinta
� Operações� + � Concatenação
� * � Repetição� “a”*3 = “aaa”
Tipos de variáveis� Caracteres especiais que não são impressos são
representados com a barra invertida (\)� \n = new line
� \r = carriage return
� \t = tab� \t = tab
� \b = backspace
� \\ = \
Qual o resultado das seguintes operações? Por quê?
>>> “ab\rd”>>> print “ab\rd”>>> print “abc\td”>>> print “abc\nd”>>> print “abc\\nd”>>> print “ab\bc”
Tipos de variáveis� Strings podem ser escritas em várias linhas
� A = “A minha frase de exemplo \
pode ser muito longa, \
de tal forma que eu prefira \
escrevê-la em várias linhas.”escrevê-la em várias linhas.”
� A = ‘‘‘ A minha frase de exemplo
pode ser muito longa,
de tal forma que eu prefira
escrevê-la em várias linhas.’’’
� A = “““A minha frase de exemplo
pode ser muito longa,
de tal forma que eu prefira
escrevê-la em várias linhas.”””
Tipos de variáveis� Índices de strings
� Primeiro caractere com índice 0
� Último caractere com índice -1
� Exemplo:� A=‘teste’� A=‘teste’
� A[0]=‘t’
� A[4]=‘e’
� A[-1]=‘e’
� Trechos de strings� Representação: A[início:fim]
� Omitir início ou fim significa trecho a partir do inicio ou até o fim
InclusoExcluso
Tipos de variáveis� Exemplos
>>> a = 'abcde‘
>>> a[0:2]
'ab'
>>> a [2:]>>> a [2:]
'cde'
>>> a[:]
'abcde'
>>> a[-1:]
'e'
>>> a[:-1]
'abcd'
Tipos de variáveis� Tipos primitivos
� Simples
� Compostos� Listas Veremos tipos compostos e
definidos pelo usuário mais � Listas
� Dicionários
� Tuplas
� Conjuntos
� Definidos pelo usuário� Classes
definidos pelo usuário mais a frente.
Expressões booleanas� Usadas como condições
� If e laços (for e while)
� Resultam True ou FalseTrue e False são palavras especiais de Python (lembrar de � True e False são palavras especiais de Python (lembrar de usar letra maiúscula)
� True = qualquer valor não nulo
� False = 0
� Avaliação feita da esquerda para a direita� Resultado retornado tão logo seja possível
Expressões booleanas� O operador or retorna o primeiro operando se esse for
verdadeiro� Caso contrário retorna o segundo
� O operador and retorna o primeiro operando se for falso� O operador and retorna o primeiro operando se for falso� Caso contrário retorna o segundo
� Ordem de avaliação� Operadores relacionais
� not
� and
� or (último a ser avaliado)
Expressões booleanas
Exercício: Qual o resultado?• 1==1• 1==2• 1==1 or 1==2• 1==1 or 1==2• 1==1 and 1==2• 1<2 and 2<3• not 1<2• not 1<2 or 2<3• not (1<2 or 2<3)• ‘alo’ and 1• “alo” or 1
Funções embutidas� Funções disponíveis para o programador por padrão
� Exemplos� abs(x) – Valor absoluto de x
int(x) – Converte x para inteiro� int(x) – Converte x para inteiro
� long(x) - Convert x para inteiro longo
� float(x) – Converte x para ponto flutuante
� complex(re,im) – Cria número complexo com parte real re e parte imaginária im
� round(x) - Arredonda o valor de x
Módulos� Módulo
� Arquivo definindo:� Funções
� VariáveisVariáveis
� Classes
� Biblioteca padrão é dividida em módulos� Exemplo
� Módulo math � Funções matemáticas como seno e cosseno, variáveis como o pi, etc.
� Nome do módulo = nome do arquivo sem o ‘.py’� Qualquer script que você crie pode ser visto como um módulo
Módulos� Utilização de módulos
� Comando import
� Uso:� import modulo� import modulo
� from modulo import nome,...,nome
� from modulo import *
Exemplo� Crie o script fibo.py com o seguinte código
# Fibonacci numbers module
def fib(n): # write Fibonacci series up to na, b = 0, 1while b < n:while b < n:
print b,a, b = b, a+b
def fib2(n): # return Fibonacci series up to nresult = []a, b = 0, 1while b < n:
result.append(b)a, b = b, a+b
return result
Exemplo� Entre no interpretador e digite:
>>> import fibo
>>> fibo.fib(1000)� >>> fibo.fib(1000)
� >>> fibo.fib2(100)
� >>> fibo.__name__
Importando módulos� import modulo
� Importa o módulo completo.
� Exemploimport math Usa o nome do módulo import math
math.cos(0.67)
� from modulo import *
� Importa o módulo completo
� Exemplofrom math import *
cos(0.67)
Usa o nome do módulo na frente da função
Usa a função diretamente
Importando módulos� from modulo import função1, função2
� Importa apenas funções especificadas
� Exemplofrom math import cos Usa a função diretamentefrom math import cos
cos(0.67)
Usa a função diretamente
Criando o seu próprio código� Voltando ao exemplo do Fibonacci (fibo.py)
# Fibonacci numbers module Comentário
def fib(n): # write Fibonacci series up to n
a, b = 0, 1
while b < n:
print b,
a, b = b, a+b
Definição de uma função
Atribuição de valores a variáveis
Laço com expressão booleana
Bloco a ser repetido
Indentação
Criando o seu próprio código� Função principal
� Tudo o que está fora das definições de função
� Contudo, é mais formal usar o seguinte:
if __name__ == "__main__":if __name__ == "__main__":� Permite criar um script e um módulo importável ao mesmo
tempo
� Organiza melhor o código
Criando o seu próprio código� Comando condicional ‘if ’
� Uso� if expressao:
� comandos
� if expressao:
Tipo 1: Se, então faça
� if expressao:� comandos1
� else:� comandos2
� if expressao1:� comandos1
� elif expressao2:� comandos2
� else:� comandos(N)
Tipo 2: Se, então faça. Senão, faça.
Tipo 3: Se, então faça. Senão, se, então faça. Senão, faça.elif � else if
elif pode ser repetido várias vezes
Criando o seu próprio código� Exemplo:
� a = input("Entre com um numero:")
� if a < 0:� print a," é negativo“� print a," é negativo“
� elif (a==0):� print a, “ é zero”
� else :� print a, “ é positivo”
� print "Obrigado!"
Criando o seu próprio código� Laço while
� Uso� while (expressão):
� Executa enquanto expressão for True� Executa enquanto expressão for True� Atenção: Pode criar loops infinitos!!
� Ex:� A=1� B=1� while (A==1):
� B= B+1� print B
Criando o seu próprio código� Função print
� Escrever texto na tela sem pular de linha� Uso
� print “texto1”, “texto2”, variável1, “texto3”� print “texto1”, “texto2”, variável1, “texto3”� Resultado: texto1 texto2 1 texto3
� Se o comando terminar com vírgula, o próximo print continua da mesma linha� Ex:
� print “texto1”,print “texto2”
� Resultado: texto1 texto2
Criando o seu próprio código� Função input
� Recebe dados da linha de comando� Uso: input(“Texto qq”)� Exemplo:� Exemplo:
A=input(“Digite a sua idade”)print A
� Observação: strings só podem ser recebidas com o input se forem colocadas entre ‘’ ou “”� Função raw_input
� Interpreta qualquer entrada como string� Não precisa de ‘’ ou “”
Espera até o usuário digitar alguma coisa
Criando o seu próprio código� Exercício
� Faça um programa que peça do usuário um número e escreva na tela se ele é primo ou não.
� Transforme o seu programa em uma função e crie um � Transforme o seu programa em uma função e crie um módulo.
� Importe o seu módulo e mostre o uso da sua função.