Baixe o app para aproveitar ainda mais
Prévia do material em texto
COMPUTAÇÃO 1 – PYTHON REVISÃO PRA P1 SILVIA BENZA SILVIABENZA@COS.UFRJ.BR 1 PYTHON COMO CALCULADORA 2 PYTHON COMO CALCULADORA O Interpretador python pode ser usado como calculadora Por exemplo, as quatro operações aritméticas são denotadas pelos símbolos • + adição • - subtração • * multiplicação • / divisão 3 FUNÇÕES 4 FUNÇÃO 5 FUNÇÃO 6 FUNÇÃO 7 FUNÇÃO ARGUMENTOS 8 É possível dar valores default a argumentos • Se o chamador não especificar valores para esses argumentos, os defaults são usados Formato: def nome (arg1=default1, ..., argN=defaultN) Se apenas alguns argumentos têm default, esses devem ser os últimos • Se não fosse assim, haveria ambigüidade na passagem de argumentos FUNÇÃO 9 def nome (arg, arg ,…, arg): comando comando return expressão Palavra chave que indica o inicio da função O Nome tem que ser autoexplicativo!!! Argumentos dentro dos parêntesis, Todo argumento default DEVE ir no final! Esses dois pontos não estão só de brincadeira, não esqueça deles! Indentação importa!!!! Primeira linha com indentação diferente indica o fim do bloco da função! Palavra chave que indica o valor de retorno entregue ao chamador VARIÁVEIS 10 VARIÁVEIS Variáveis são criadas dinamicamente e destruídas quando não mais necessárias, por exemplo, quando saem fora de escopo O tipo de uma variável muda conforme o valor atribuído, i.e., int, float, string, etc. Ex.: >>> a ="1" >>> b = 1 >>> a+b Traceback (most recent call last): File "<stdin>", line 1, in ? TypeError: cannot concatenate 'str' and 'int' objects 11 TIPOS DE DADOS 12 NUMÉRICOS 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 13 BOOLEANO • Resultam em verdadeiro (True) ou falso (False) • Operadores mais usados • Relacionais: > , < , == (igual), != (diferente), >=, <= • 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 14 BOOLEANO • 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 15 STRINGS • Representação: • s = “12346” ou s = ‘123456’ • len(s): • retorna o tamanho de uma string. • Operador ‘+’: • concatena strings. • Ex: ‘ab’ + ‘cd’ = ‘abcd’ • Operador ‘*’: • repete strings. • Ex: ‘a’*5 = ‘aaaaa’ • Fatias (Slices): • [start:end:step] 16 MANIPULAÇÃO DE STRINGS • str.lower(umaString) • str.upper(umaString) • str.count(umaString,elemento,inicio,fim) • str.index(umaString,elemento,inicio,fim) • str.find(umaString,substring,inicio,fim) • str.partition(umaString, separador) • str.join(umaString,sequencia) • str.replace(umaString,velho,novo,n) • str.split(umaString,separador) • str.strip(umaString,char) Todas tem valor de retorno! 17 MÓDULOS 18 MÓDULOS Módulo que permite que o programador realize certos cálculos matemáticos. Para usar uma função que está definida em um módulo, primeiro o programa deve importar o módulo usando o comando import >>> import math Após ter importado o módulo, o programa pode chamar as funções daquele módulo da seguinte forma: NomeDoModulo.NomeDaFunção(arg0,...,argn) . 19 MÓDULOS Podemos importar parte dos módulos: from math import * # importa todos os elementos do módulo math from math import nome-função # importa apenas a função nome-função Exemplos >>> from math import * >>> from math import sin 20 ESTRUTURA CONDICIONAL 21 ESTRUTURA CONDICIONAL 22 Olhem a indentação aqui também!!!!!! COMANDO IF 23 if expressao: comandos if expressao: comandos1 else: comandos2 if expressao1: comandos1 elif expressao2: comandos2 else: comandos(N) Executa os comandos apenas se a expressão for verdadeira Executa sequência de comandos 1 caso expressão for verdadeira Caso contrário, executa sequência de comandos 2 Executa sequencia de comandos1 caso expressão1 for verdadeira Executa sequencia de comandos2 caso expressão 1 for falsa e expressão2 for verdadeira Caso contrário, executa sequência de comandos N TUPLAS 24 TUPLAS Uma tupla vazia se escreve () Os parênteses são opcionais se não provocarem ambigüidade Uma tupla contendo apenas um elemento deve ser escrita com uma vírgula ao final • Um valor entre parênteses sem vírgula no final é meramente uma expressão: >>> (10) 10 >>> 10, (10,) >>> (10,) (10,) >>> 3*(10+3) 39 >>> 3*(10+3,) (13, 13, 13) 25 LISTAS 26 LISTAS Tipo de dados mais versátil do Python. Uma lista é representada como uma sequência de valores entre colchetes e separados por vírgula. Os elementos de uma lista podem ser de tipos de dados diferentes. LISTAS SÃO MUTÁVEIS 27 FATIAS Como vimos na última aula podemos usar a notação de fatias (slices) para criar novas listas. >>> lista = ['a',2,[3,'f'], 'q'] >>> lista [1:] [2,[3,'f'], 'q'] >>> lista [:1] ['a'] >>> lista [1:2] [2] >>> lista [0:-1] ['a',2,[3,'f']] 28 FATIAS Incremento: assim também podemos usar incremento ou decremento para selecionar os elementos de uma lista. >>> lista = [1,2,3,4,5,6] >>> lista[0:-1:2] [1,3,5] >>> lista[5:0:-1] [6,5,4,3,2] >>> lista[0:-1:3] [1,4] >>> lista[::-1] [6,5,4,3,2,1] 29 LEMBREM!!! 30 RANGE 31 FUNÇÃO RANGE A função range(...) pode ter 1, 2 ou 3 argumentos: range(numero): retorna uma lista contendo uma sequência de valores de 0 a numero-1 >>> range(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] range(inf,sup): retorna uma lista contendo uma sequência de valores de inf a sup-1 >>> range(3, 8) [3, 4, 5, 6, 7] range(inf, sup, inc): retorna uma lista contendo uma sequência de valores de inf a sup-1 com incremento de inc >>> range(3, 8, 2) [3, 5, 7] 32 QUESTÕES 33 def media(a,b): return ((a+b)/2.) def media_qua(a,b,c,d): return (media(media(a,b), media(c,d))) def maximoBombons(q,p): return (q/p), (q%p) 34 OLHEM DIREITO PARA AS PERGUNTAS!! !!!!! 35 QUESTÕES 36 def circunferencia(r): return (2*3.14*r) def voltas(r,d): return (d/circunferencia (r)) 37 QUESTÕES 38 def delta (a,b,c): return (b**2-4*a*c) def raizes (a,b,c): return ((-b+math.sqrt(delta(a,b,c)))/2*a),((-b- math.sqrt(delta(a,b,c)))/2*a) 39 EXERCÍCIOS 9) Defina a função matemática da figura Qual o número mínimo de casos de teste para garantir que todas as linhas do programa são executadas? Crie casos de teste para os pontos de inflexão da função (as fronteiras entre cada parte). 40 def funcaofig(x): if 0<=x<=2: y=x elif 2<x<=3.5: y=2 elif 3.5<x<=5: y=3 else: y=x**2-10*x+28 return y 41 EXERCÍCIOS Diga se uma pessoa tem direito à meia entrada, dados a idade da pessoa e se ela tem ou não carteira de estudante (True se tem, False se não tem). Lembrando que uma pessoa tem direito à meia-entrada se é maior de 65 anos, menor de 21 anos ouestudante. O que acontece caso uma pessoa maior de 65 anos tenha carteira de estudante? 42 def meiaentrada(idade,carteira): if idade>65 or idade<21: return "Tem direito a meia entrada." elif carteira==True: return "Tem direito a meia entrada." else: return "Nao tem direito a meia entrada." 43 EXERCÍCIOS Faça uma função que receba o valor inicial e a razão e imprima os 4 primeiros elementos da progressão geométrica correspondente. Experimente resolver o problema com diferentes números de variáveis. Qual o mínimo? 44 def termosPA(a1,R): a2=(R+a1) a3=(R+a2) a4=(R+a3) return a1,a2,a3,a4 45 EXERCÍCIOS 14) Escreva uma função que receba uma string e insira o caractere "#" no início, no meio e no final dela. Por exemplo, se a entrada for "abcd", a saída deve ser "#ab#cd#". Outro exemplo: se receber "abcde", a função deve retornar "#ab#cde#" 46 def insereString(frase): fraseFinal='#'+frase[:len(frase)/2]+'#'+frase[len(frase)/2:] +'#' return fraseFinal 47 Escreva uma função que receba duas datas no formato "DD/ MM/AAAA" , sendo a segunda maior que a primeira, e calcule o total de dias passados entre uma data e outra. A frase retornada deve ser "O total de dias é x", onde x é o total achado. Considere que todo mês tem 30 dias. E que o ano tem 365 dias. 48 def totalDias(data1,data2): DD=int(data2[0:2])-int(data1[0:2]) MM=int(data2[3:5])-int(data1[3:5]) AAAA=int(data2[6:])-int(data1[6:]) dias=(DD)+(MM*30)+(AAAA*365) frase="O total de dias:"+str(dias) return frase 49 COMPUTAÇÃO 1 – PYTHON REVISÃO PRA P1 SILVIA BENZA SILVIABENZA@COS.UFRJ.BR 50
Compartilhar