Prof. Natalia Castro Fernandes Engenharia de 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.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,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árias Tipo da variável muda conforme valor atribuído A = ‘Casa’ #A é uma string Comentários são colocados com o uso do # A+1 #Gera erro A = 1 #Agora A passou a ser um inteiro A+1 #Resulta em 2 Tipos de variáveis Tipos primitivos Embutidos na linguagem Tipos Simples 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 \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.” 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[0]=‘t’ A[4]=‘e’ A[-1]=‘e’ Trechos de strings Incluso Excluso Representação: A[início:fim] Omitir início ou fim significa trecho a partir do inicio ou até o fim Tipos de variáveis Exemplos >>> a = 'abcde‘ >>> a[0:2] 'ab' >>> a [2:] 'cde' >>> a[:] 'abcde' >>> a[-1:] 'e' >>> a[:-1] 'abcd' Tipos de variáveis Tipos primitivos Simples Compostos Listas Dicionários Tuplas Conjuntos Definidos pelo usuário Classes Veremos tipos compostos e definidos pelo usuário mais a frente. Expressões booleanas Usadas como condições If e laços (for e while) Resultam True ou False 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 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 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 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á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 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 n a, b = 0, 1 while b < n: print b, a, b = b, a+b def fib2(n): # return Fibonacci series up to n result = [] a, b = 0, 1 while b < n: result.append(b) a, b = b, a+b return result Exemplo Entre no interpretador e digite: >>> import fibo >>> fibo.fib(1000) >>> fibo.fib2(100) Importando módulos import modulo Importa o módulo completo. Exemplo import math math.cos(0.67) Usa o nome do módulo na frente da função from modulo import * Importa o módulo completo Exemplo from math import * cos(0.67) Usa a função diretamente Importando módulos from modulo import função1, função2 Importa apenas funções especificadas Exemplo from 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 Definição de uma função def fib(n): # write Fibonacci series up to n Atribuição de valores a variáveis a, b = 0, 1 Laço com expressão booleana while b < n: print b, Bloco a ser repetido a, b = b, a+b 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__": 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: comandos1 else: comandos2 if expressao1: comandos1 elif expressao2: comandos2 else: comandos(N) Tipo 1: Se, então faça Tipo 2: Se, então faça. Senão, faça. elif pode ser repetido várias vezes Tipo 3: Se, então faça. Senão, se, então faça. Senão, faça. elif else if Criando o seu próprio código Exemplo: a = input("Entre com um numero:") if a < 0: 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 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” 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: A=input(“Digite a sua idade”) print A Espera até o usuário digitar alguma coisa 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 “” 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 módulo. Importe o seu módulo e mostre o uso da sua função.