340 likes | 466 Views
Programação Avançada Conceitos básicos. 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.0%3
E N D
Programação AvançadaConceitos básicos 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.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 • 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 • 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 = newline • \r = carriagereturn • \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 • Representação: A[início:fim] • Omitir início ou fim significa trecho a partir do inicio ou até o fim Incluso Excluso
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 and2<3 • not1<2 • not 1<2 or2<3 • not (1<2 or 2<3) • ‘alo’ and1 • “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 parainteiro • long(x) - Convert x parainteirolongo • float(x) – Converte x parapontoflutuante • complex(re,im) – Crianúmerocomplexo com parte real re e parte imagináriaim • 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: • importmodulo • from modulo importnome,...,nome • from modulo import*
Exemplo • Crie o script fibo.py com o seguintecó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) • >>> fibo.__name__
Importando módulos • importmodulo • Importa o módulo completo. • Exemplo importmath math.cos(0.67) • frommoduloimport * • Importa o módulo completo • Exemplo frommathimport * cos(0.67) Usa o nome do módulo na frente da função Usa a função diretamente
Importando módulos • frommoduloimport função1, função2 • Importa apenas funções especificadas • Exemplo frommathimportcos 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 def fib(n): # write Fibonacci series up to n a, b = 0, 1 while b < n: print b, a, b = b, a+b Comentário 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__": • 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 • ifexpressao: • comandos • ifexpressao: • comandos1 • else: • comandos2 • ifexpressao1: • comandos1 • elifexpressao2: • 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 elseif
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, “ é negativo” • 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 • 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 módulo. • Importe o seu módulo e mostre o uso da sua função.