Buscar

Aula Revisão p1

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

Continue navegando