Ambiente Python. Ambiente e linguagem de programação Python. IDLE: janela principal (2/2) IDLE: janela principal (1/2)

Save this PDF as:
 WORD  PNG  TXT  JPG

Tamanho: px
Começar a partir da página:

Download "Ambiente Python. Ambiente e linguagem de programação Python. IDLE: janela principal (2/2) IDLE: janela principal (1/2)"

Transcrição

1 Ambiente Pthon Ambiente e linguagem de programação Pthon INF - Introdução à Programação Pontifícia Universidade Católica Departamento de Informática Pesquise por "pthon" e escolha (com duplo clique) a opção IDLE: Integrated Development Environment ou Ambiente egrado de desenvolvimento IDLE: janela principal (1/) IDLE: janela principal (/) comando resposta Prompt : indica que um comando pode ser roduzido Console (tt): Janela do Interpretador O Interpretador permite a rodução de comandos após o prompt,. Os comandos são eecutados ao teclar <enter> e seus resultados mostrados na console modo erativo Um comando é uma instrução que o erpretador Pthon pode eecutar. 3 4 Interpretador: modo erativo (1/) Interpretador: modo erativo (/) quit() Trabalha com números e com tetos (strings) CTRL + Z ou quit() finalizam o erpretador CTRL + C errompe a eecução do comando 6 1

2 Interpretador como calculadora Mãos na Massa: Celsius Fahrenheit >>> #Epressão Aritmética #Resultado da Avaliação Componentes de uma epressão: operandos: números eiros () ou com parte fracionária (float) operadores usuais: +, -, *, / e ** (potência) () podem ser usados para agrupar operandos e operadores Um termômetro marca 8 C. Se a temperatura baiar 1 C, quanto o 9 F C 3 DESCREVER O ROTEIRO (A SEQUÊNCIA DE PASSOS) QUE SOLUCIONA O PROBLEMA!! 7 8 Celsius Fahrenheit (1/1) Um termômetro marca 8 C. Se a temperatura baiar 1 C, quanto o 9 F C 3 Para resolver este problema é preciso: a) Entender perfeitamente o problema, destacando o que deve ser computado (calculado) Celsius Fahrenheit (/1) Um termômetro marca 8 C. Se a temperatura baiar 1 C, quanto o 9 F C 3 Para resolver este problema é preciso: a) Entender perfeitamente o problema, destacando o que deve ser computado (calculado) Mostrar a temperatura em F, a partir da temperatura em C 9 Celsius Fahrenheit (3/1) Um termômetro marca 8 C. Se a temperatura baiar 1 C, quanto o 9 F C 3 Para resolver este problema é preciso: a) Entender perfeitamente o problema, destacando o que deve ser computado (calculado) b) Identificar os valores que são necessários e fornecidos para a realização da computação (dados de entrada) Celsius Fahrenheit (4/1) Um termômetro marca 8 C. Se a temperatura baiar 1 C, quanto o 9 F C 3 Para resolver este problema é preciso: a) Entender perfeitamente o problema, destacando o que deve ser computado (calculado) b) Identificar os valores que são necessários e fornecidos para a realização da computação (dados de entrada) 11 1

3 Celsius Fahrenheit (/1) Um termômetro marca 8 C. Se a temperatura baiar 1 C, quanto o 9 F C 3 Para resolver este problema é preciso: a) Entender perfeitamente o problema, destacando o que deve ser computado (calculado) b) Identificar os valores que são necessários e fornecidos para a realização da computação (dados de entrada) temperatura inicial: 8 C variação: -1 C Celsius Fahrenheit (6/1) Um termômetro marca 8 C. Se a temperatura baiar 1 C, quanto o 9 F C 3 Para resolver este problema é preciso: a) Entender perfeitamente o problema, destacando o que deve ser computado (calculado) b) Identificar os valores que são necessários e fornecidos para a realização da computação (dados de entrada) c) Identificar as respostas esperadas, isto é, quais valores devem ser calculados e mostrados a partir dos dados de entrada (dados de saída) Celsius Fahrenheit (7/1) Um termômetro marca 8 C. Se a temperatura baiar 1 C, quanto o 9 F C 3 Para resolver este problema é preciso: a) Entender perfeitamente o problema, destacando o que deve ser computado (calculado) b) Identificar os valores que são necessários e fornecidos para a realização da computação (dados de entrada) c) Identificar as respostas esperadas, isto é, quais valores devem ser calculados e mostrados a partir dos dados de entrada (dados de saída) Celsius Fahrenheit (8/1) Um termômetro marca 8 C. Se a temperatura baiar 1 C, quanto o 9 F C 3 Para resolver este problema é preciso: a) Entender perfeitamente o problema, destacando o que deve ser computado (calculado) b) Identificar os valores que são necessários e fornecidos para a realização da computação (dados de entrada) c) Identificar as respostas esperadas, isto é, quais valores devem ser calculados e mostrados a partir dos dados de entrada (dados de saída) temperatura em F 1 16 Celsius Fahrenheit (9/1) Um termômetro marca 8 C. Se a temperatura baiar 1 C, quanto o 9 F C 3 Para resolver este problema é preciso: a) Entender perfeitamente o problema, destacando o que deve ser computado (calculado) b) Identificar os valores que são necessários e fornecidos para a realização da computação (dados de entrada) c) Identificar as respostas esperadas, isto é, quais valores devem ser calculados e mostrados a partir dos dados de entrada (dados de saída) d) Definir o processamento, isto é, a sequência de cálculos que serão efetuados para transformar os dados de entrada em dados de saída. 17 Celsius Fahrenheit (/1) Um termômetro marca 8 C. Se a temperatura baiar 1 C, quanto o 9 F C 3 Para resolver este problema é preciso: a) Entender perfeitamente o problema, destacando o que deve ser computado (calculado) b) Identificar os valores que são necessários e fornecidos para a realização da computação (dados de entrada) c) Identificar as respostas esperadas, isto é, quais valores devem ser calculados e mostrados a partir dos dados de entrada (dados de saída) d) Definir o processamento, isto é, a sequência de cálculos que serão efetuados para transformar os dados de entrada em dados de saída. Calcular a temperatura final (inicial + variação) Transformar a temperatura final para F pela fórmula 18 3

4 Celsius Fahrenheit (11/1) Um termômetro marca 8 C. Se a temperatura baiar 1 C, quanto o Celsius Fahrenheit (1/1) Um termômetro marca 8 C. Se a temperatura baiar 1 C, quanto o 9 F C 3 Para resolver este problema é preciso: a) Entender perfeitamente o problema, destacando o que deve ser computado (calculado) b) Identificar os valores que são necessários e fornecidos para a realização da computação (dados de entrada) c) Identificar as respostas esperadas, isto é, quais valores devem ser calculados e mostrados a partir dos dados de entrada (dados de saída) d) Definir o processamento, isto é, a sequência de cálculos que serão efetuados para transformar os dados de entrada em dados de saída. e) Construir o algoritmo que realiza o processamento, isto é, a sequência finita e não ambígua de comandos que permite a solução do problema de maneira automática e repetitiva e testá-lo F C 3 Dados necessários: temperatura inicial: 8 C, variação: -1 C Respostas Eibidas: temperatura em F Como Dados Respostas: i. Calcular a temperatura final (inicial + variação) ii. Transformar a temperatura final para F pela fórmula Implementar a solução Transcrever a conversão com os dados do problema no erpretador 0 Celsius Fahrenheit: eecutando Um termômetro marca 8 C. Se a temperatura baiar 1 C, quanto o 9 F C 3 Implementar no erpretador: >>>(8-1)9/+3 Erros de sae e eecução de programas 1 Eecução com Erro? Solução com Erro Sático Um termômetro marca 8 C. Se a temperatura baiar 1 C, quanto o 9 F C 3 Implementar no erpretador: Após o enter: >>>(8-1)9/+3 >>>(8-1)9/+3 ^ SntaError: invalid snta O que aconteceu??? 3 >>>(8-1)9/+3 ^ SntaError: invalid snta Um comando é uma instrução que o erpretador Pthon pode eecutar Um comando deve seguir uma estrutura que o erpretador reconheça: sae do comando Mensagens de erro são eibidas quando o comando não for compreendido. Entender as mensagens de erro ajudam a descobrir problemas no programa durante o seu desenvolvimento 4 4

5 Sobre Erros Sáticos Erros sáticos : quando o erpretador não reconhece a instrução. >>>3 7 ^ SntaError: invalid snta >>> 6*3 ^ SntaError: unepected indent Erros de Eecução não sáticos Erros de eecução: quando o comando está saticamente correto mas não pode ser obedecido. >>> * (1/0) Tracebac (most recent call last): File "<stdin>", line 1, in <module> 1/0 ZeroDivisionError: division b zero A 'seta' aponta para o ponto da linha em que o erro foi detectado. O erro é causado pelo teto que precede a seta A última linha mostra o que aconteceu (o tipo do erro e um detalhamento) e a anterior, o conteto onde ocorreu o erro. 6 Revendo Celsius Fahrenheit Implementar no erpretador: 9 F C 3 >>>(8-1)*9/ Eercícios e soluções computacionais 7 Mãos na massa: mais eercícios!!! 1. Calcule o perímetro de um círculo com raio. Perímetro = π r. Os raios dos anéis do casco de um caracol, do centro até a borda, crescem eponencialmente de acordo com a epressão (3+r) n sendo r, o raio e n o nº do anel. Qual o diâmetro do º anel, em centímetros, sabendo que o raio é.1mm? 3. Uma torneira despeja 7 litros de água por hora. Quanto tempo, em horas, levará para encher uma caia de 3160 litros? (Vazão = Volume / tempo) 4. Uma indústria produziu 188 peças e quer colocá-las em 1 caias, de modo que todas as caias tenham o mesmo número de peças. Quantas peças serão colocadas em cada caia? 1) Calcule o perímetro de um círculo com raio Perímetro = π r Dados necessários:? Respostas Eibidas? Como Dados Respostas? Perímetro: solução (1/3) 9 30

6 Perímetro: solução (/3) 1) Calcule o perímetro de um círculo com raio Perímetro = π r?????? Dados necessários: Raio Respostas Eibidas: Perímetro Como Dados Respostas: Perímetro = π r Perímetro: solução (3/3) 1) Calcule o perímetro de um círculo com raio Perímetro = π r >>>*3.141* ) Os raios dos anéis do casco de um caracol do centro até a borda crescem eponencialmente de acordo com a epressão: (3+r) n sendo r, o raio e n o nº do anel. Qual o diâmetro do º anel, em cm, sabendo que o raio é.1mm? Dados necessários:? Respostas Eibidas? Como Dados Respostas? Caracol: solução (1/3) Caracol: solução (/3) ) Os raios dos anéis do casco de um caracol do centro até a borda crescem eponencialmente de acordo com a epressão: (3+r) n sendo r, o raio e n o nº do anel. Qual o diâmetro do º anel, em cm, sabendo que o raio é.1mm? Dados necessários: raio, nº do anel Respostas Eibidas: diâmetro do º anel Como Dados Respostas: pela fórmula (3+r) n PAUSA: Qual o operador de potência? >>>3** 9 >>>3** >>>3.0** 9.0 >>>-3** -9 #por que? >>>(-3)** 9 >>>-7**(1/3) -3.0 >>>3**1/ #por que? 1. Operador **: ) Os raios dos anéis do casco de um caracol do centro até a borda crescem eponencialmente de acordo com a epressão: (3+r) n sendo r, o raio e n o nº do anel. Qual o diâmetro do º anel, em cm, sabendo que o raio é.1mm? >>>*(3+.1)** Caracol: solução (3/3)

7 Caia d'água: solução (1/4) 3) Uma torneira despeja 7 litros de água por hora. Quanto tempo, em horas, levará para encher uma caia de 3160 litros? Caia d'água: solução (/4) 3) Uma torneira despeja 7 litros de água por hora. Quanto tempo, em horas, levará para encher uma caia de 3160 litros? Dados necessários? Respostas Eibidas? Como Dados Respostas? Dados necessários: Vazão Q: 7 l/h Volume caia: 3160 l Respostas Eibidas: Tempo Como Dados Respostas: t= V/Q Caia d'água: solução (3/4) 3) Uma torneira despeja 7 litros de água por hora. Quanto tempo, em horas, levará para encher uma caia de 3160 litros? Caia d'água: solução (4/4) 3) Uma torneira despeja 7 litros de água por hora. Quanto tempo, em horas, levará para encher uma caia de 3160 litros? >>>3160/ Esquisito!!!! >>>3160/ Esquisito!!!! O valor eibido horas - não é usual para representar o tempo. Como deveria ser eibido? Peças em caias: solução (1/6) 4) Uma indústria produziu 188 peças e quer colocá-las em 1 caias, de modo que todas as caias tenham o mesmo número de peças. Quantas peças deveriam ser colocadas em cada caia? Peças em caias: solução (/6) 4) Uma indústria produziu 188 peças e quer colocá-las em 1 caias, de modo que todas as caias tenham o mesmo número de peças. Quantas peças deveriam ser colocadas em cada caia? Dados necessários? Respostas Eibidas? Como Dados Respostas? Dados necessários: total de peças = 188 nº de caias: 1 Respostas Eibidas: capacidade da caia Como Dados Respostas: capacidade da caia = total de peças /nº de caias

8 Peças em caias: solução (3/6) 4) Uma indústria produziu 188 peças e quer colocá-las em 1 caias, de modo que todas as caias tenham o mesmo número de peças. Quantas peças deveriam ser colocadas em cada caia? Peças em caias: solução (4/6) 4) Uma indústria produziu 188 peças e quer colocá-las em 1 caias, de modo que todas as caias tenham o mesmo número de peças. Quantas peças deveriam ser colocadas em cada caia? >>>188/ >>>188/ Impossível!!! Operadores // e % // : arredonda para o valor do maior eiro que é menor que o quociente 7.0// 3.0 (7.0/ 3. arredonda para 3.0 pois 3.0 < 3. < 4.0) -7.0// -4.0 (-7.0/ -3. arredonda para -4.0 pois -4.0 < -3. < -3.0) -7.0//- 3.0 (-7.0/- 3. arredonda para 3.0 pois 3.0 < 3. < 4.0) -7//- 3 (-7/- 3. arredonda para 3 pois 3 < 3. <4) valor do menor número eiro mais próimo do quociente Peças em caias: solução (/6) 4) Uma indústria produziu 188 peças e quer colocá-las em 1 caias, de modo que todas as caias tenham o mesmo número de peças. Quantas peças deveriam ser colocadas em cada caia? >>>188//1 1 % : valor do resto da divisão eira 9% 1 9%3 0 O resultado pode ser ou float, depende dos operandos Quantas peças não serão colocadas nas caias??? Quantas peças sobrarão??? Peças em caias: solução (6/6) 4) Uma indústria produziu 188 peças e quer colocá-las em 1 caias, de modo que todas as caias tenham o mesmo número de peças. Quantas peças não serão colocadas nas caias??? Quantas peças sobrarão??? >>>188%1 8 Variáveis e reutilização de valores 47 8

9 Delta: raízes da equação Calcule as raízes da equação: ² + 6 0= 0. Delta e duas raízes Calcule as raízes da equação: ² + 6 0= 0. Dados necessários? Respostas Eibidas? Como Dados Respostas? Dados necessários: a=, b=6, c=-0 Respostas Eibidas: 1, Como Dados Respostas: Fórmula de Bhasara 49 0 Reutilizando valores Calcule as raízes da equação: ² + 6 0= 0. Valores e nomes associados Calcule as raízes da equação: ² + 6 0= 0. O valor de é usado para o cálculo de 1 e de. Como reutilizar o valor do cálculo de? O valor de é usado para o cálculo de 1 e de Como reutilizar o valor do cálculo de? i. Associar um nome ao valor resultante do cálculo de. ii. Utilizar o "nome" associado ao valor, no cálculo das raizes. 1 Associando valores a variáveis Entendendo variáveis Valores podem ter nomes associados. Uma variável é um nome que se refere a um valor. O comando de atribuição (=) cria uma variável e associa a ela o valor da avaliação da epressão: Funcionamento: 1º passo: nome = epressão 1º Resolve a epressão nome = epressão A epressão combina valores/variáveis e operadores e computa um valor quando eecutada º passo: nome = valor Associa o valor resultante da avaliação da epressão à variável º 3 4 9

10 Nome de variáveis Regras para nome de variáveis 1º caractere: letra ou underscore ('_') Demais caracteres: letras, números ou underscore ('_') Não pode ter caracteres especiais, espaços em branco ou ser uma das palavras reservadas da linguagem (pr, if, while,...) Certo ou Errado? Por que? NotaP1 Notap1 1 o pgto pagto#1 pgto 1 pgto _ 1 pgto_1 pgto1 jjj Lembre-se que as variáveis representam os valores utilizados pelo programa. Dê nomes elucidativos!!! A escolha correta do nome da variável melhora a legilibilidade e compreensão do código! 6 Epressões Aritméticas <operando> operador aritmético <operando> Epressões e atribuições A epressão é avaliada de acordo com a prioridade dos operadores epressão aritmética: 1) Eponenciação (**) ) Multiplicação e Divisão (*,/,//,%) 3) Soma e Subtração (+, -) A ordem de avaliação pode ser modificada por parênteses 8 Variáveis e Atribuição (1/3) Variável Numérica Atribuição (1/0) A variável é criada na primeira vez que aparece no lado esquerdo do comando ou operador de atribuição (=). >>> = >>> = cria a variável cria a variável >>> = cria a variável 9 60

11 Variável Numérica Atribuição (/0) Variável Numérica Atribuição (3/0) >>> = >>> = 61 6 Variável Numérica Atribuição (4/0) Variável Numérica Atribuição (/0) >>> = >>> = >>> = Variável Numérica Atribuição (6/0) Variável Atribuição (/3) >>> = >>> = 1 A variável é criada na primeira vez que aparece no lado esquerdo do comando de atribuição (=). Nas demais vezes que aparece no lado esquerdo do comando de atribuição, o valor associado é substituído pelo resultado da epressão >>> = 0 altera o valor associado à variável

12 Variável Numérica Atribuição (7/0) Variável Numérica Atribuição (8/0) >>> = >>> = >>> = 0 1 >>> = >>> = >>> = Variável Atribuição (3/3) Variável Numérica Atribuição (9/0) A variável é criada na primeira vez que aparece no lado esquerdo do comando de atribuição (=). Nas demais vezes que aparece no lado esquerdo do comando de atribuição, o valor associado é substituído pelo resultado da epressão Sempre que o nome da variável for utilizado em uma epressão é automaticamente substituído pelo seu valor >>>z = #cria z e associa a z o valor associado à variável >>> = >>> = >>> = 0 >>>z = 0 >>> = + 0 * z >>> = + 1 # usa o valor associado à e z na epressão # usa o valor associado à na soma e depois o altera Variável Numérica Atribuição (/0) Variável Numérica Atribuição (11/0) >>> = >>> = >>> = 0 >>>z = 0 >>> = >>> = >>> = 0 >>>z = z 0 FUNCIONAMENTO: 1º passo) resolve a epressão º passo) Associa o resultado da avaliação da epressão à variável FUNCIONAMENTO: 1º passo) resolve a epressão º passo) Associa o resultado da avaliação da epressão à variável

13 Variável Numérica Atribuição (1/0) Variável Numérica Atribuição (13/0) >>> = >>> = >>> = 0 >>>z = >>> = + 0 * z z 0 >>> = >>> = >>> = 0 >>>z = >>> = + 0 * z z 0 FUNCIONAMENTO: 1º passo) resolve a epressão º passo) Associa o resultado da avaliação da epressão à variável Variável Numérica Atribuição (14/0) Variável Numérica Atribuição (1/0) >>> = >>> = >>> = 0 >>>z = >>> = + 0 * z z >>> = >>> = >>> = 0 >>>z = >>> = + 0 * z >>> = + 1 z FUNCIONAMENTO: 1º passo) resolve a epressão º passo) Associa o resultado da avaliação da epressão à variável 7 76 Variável Numérica Atribuição (16/0) Variável Numérica Atribuição (17/0) >>> = >>> = >>> = 0 >>>z = >>> = + 0 * z >>> = + 1 z >>> = >>> = >>> = 0 >>>z = >>> = + 0 * z >>> = + 1 z 11 FUNCIONAMENTO: 1º passo) resolve a epressão º passo) Associa o resultado da avaliação da epressão à variável

14 Variável Numérica Atribuição (18/0) Variável Numérica Atribuição (19/0) >>> = >>> = >>> = 0 >>>z = >>> = + 0 * z >>> = + 1 >>> = b + 6 z >>> = >>> = >>> = 0 >>>z = >>> = + 0 * z >>> = + 1 >>> = b + 6 FUNCIONAMENTO: 1º passo) resolve a epressão º passo) Associa o valor resultante da avaliação da epressão à variável z 11 Tracebac (most recent call last): File "<pshell#0>", line 1, in <module> =b+6 NameError: name 'b' is not defined 80 Variável Numérica Atribuição (0/0) Delta: revendo a solução >>> = >>> = >>> = 0 >>>z = >>> = +0 * z >>> = + 1 >>> = b + 6 Uma variável só pode ser usada depois de ter sido criada z 11 Torna a linha um comentário >>>#² >>>delta = (6**)-(4**-0) >>>(-6+delta**(1/))/(*).0 >>>(-6-delta**(1/))/(*) Interpretador Pthon e mais mão na massa! 1. Sabe-se que 37,% de uma distância corresponde a 600 m. Qual a distância?. Uma escola tem professores, dos quais 6% ensinam Matemática. Quantos professores ensinam Matemática nessa escola? 3. Uma escola tem professores, dos quais 7 ensinam Matemática. Qual o percentual de professores que ensinam Matemática nessa escola? 4. Num jardim há cisnes e coelhos contando-se ao todo 8 cabeças e 178 pés. Quantos cisnes e coelhos há nesse jardim?. Um atirador ganha 4 pontos por tiro acertado no alvo e paga a metade, como multa, cada vez que erra o alvo. Após 3 tiros, ele obteve 86 pontos. Quantos tiros ele acertou? 6. Uma escola pretende ladrilhar o seu pátio retangular, com as segues dimensões: 4m e.m. Os ladrilhos utilizados são quadrados com 1 cm de lado. Calcule a quantidade de ladrilhos necessária para cobrir a área com, no máimo, um ladrilho de sobra. 83 >>> #1) 0.37=600 >>>0.600/ >>> #)eiro de 0.6* >>> 6*//0 6 >>> #3)=700 >>> 700/ 8.0 >>> #4) +=8 >>> # +4=178 >>> # =( )/ >>> =( )/ >>> =8- >>> 7.0 >>> 31.0 Solução Mãos na Massa 84 14

15 Solução Mãos na Massa >>> #) 4a-e=86 >>> # a+e=3 >>> e=4/6 >>> a=3-e >>> a.0 >>> e 7.0 >>> #6) área total=400*0 e área ladrilho=1*1 >>> # qt=área total//área_ladrilho + 1 >>> qt=(400*0)//(1*1)+1 >>> qt 978 Aumentando o "poder" do erpretador com módulos da biblioteca padrão 8 Triângulos e mãos na massa!!! Utilizando as leis do cosseno, mostre a medida do lado a do segue triângulo: Cosseno: solução inicial (1/4) Utilizando as leis do cosseno, mostre a medida do lado a do segue triângulo: Lei dos cossenos: Lei dos cossenos: Dados necessários? Respostas Eibidas? Como Dados Respostas? Cosseno: solução inicial (/4) Utilizando as leis do cosseno, mostre a medida do lado a do segue triângulo : Cosseno: solução inicial (3/4) Utilizando as leis do cosseno, mostre a medida do lado a do segue triângulo: Lei dos cossenos: Dados necessários? c=, b=16, = 60 Respostas Eibidas? Lado a Como Dados Respostas? >>>(16** + ** - *16**cos(60))**

16 Cosseno: solução inicial (4/4) Cosseno: como calcular? Utilizando as leis do cosseno, mostre a medida do lado a do segue triângulo: >>>(16** + ** - *16**cos(60))**0. >>>(16** + ** - *16**cos(60))**0. Tracebac (most recent call last): File "<pshell#18>", line 1, in <module> (16**+ ** - *16**cos(60))**0. NameError: name 'cos' is not defined 91 Tracebac (most recent call last): File "<pshell#18>", line 1, in <module> (16**+ ** - *16**cos(60))**0. NameError: name 'cos' is not defined Por que o erpretador não calcula o cosseno de 60? 9 Cosseno: já programado? Funções >>>(16** + ** - *16**cos(60))**0. Tracebac (most recent call last): File "<pshell#18>", line 1, in <module> (16**+ ** - *16**cos(60))**0. NameError: name 'cos' is not defined Por que o erpretador não calcula o cosseno de 60? As ações que o erpretador é capaz de obedecer precisam ser previamente programadas! Uma função é uma sequência de instruções (bloco de código) independente, que realiza uma tarefa específica. As funções, como os operadores, permitem computar valores. Em geral, recebem valores para os seus argumentos de entrada, utlizando-os para computar um valor de saída. Por eemplo, dado f() =, f(3) 9 Há funções criadas pelo programador e também fornecidas pela linguagem. Pthon oferece inúmeras funções prontas que podem ser usadas pelo programador e "ensinam" o erpretador a realizar diferentes tarefas Módulos Usando Módulos: Importação 1º passo) Importar um modulo da linguagem, usando a instrução import As funções oferecidas pelo Pthon são agrupadas em módulos. Um módulo é um arquivo Pthon que contém uma coleção de funções relacionadas. Eemplo: Módulo math (matemática): contém funções matemáticas usuais (seno, cosseno, ). Ao importar o módulo, o programador pode utilizar as funções sem a necessidade de programá-las. Eemplo: import <NomedoMódulo> >>>import math #Disponibiliza os componentes do módulo math # como sin, cos, ep e outras

17 Usando funções importadas º passo) Ativação da função desejada Depois da importação, para a função ser eecutada, ela deve ser chamada (invocada/ativada) pelo nome. Funções: argumentos/parâmetros <NomedoMódulo>. < função (valores)> <NomedoMódulo>. < função (valores)> As funções do módulo são acessadas via operador. (ponto) Os valores que a função precisa para eecutar a sua tarefa devem ser fornecidos quando ela é invocada. Estes valores, chamados de argumentos ou parâmetros reais, são colocados dentro dos parênteses na hora da chamada. Eemplo: >>>import math #Disponibiliza os componentes do módulo math >>>math.sqrt(11) #Eecuta a função sqrt de math, para o valor Cosseno: corrigindo a solução Usando função importada >>>import math >>>import math >>>(16**+ ** - *16**cos(60))** Erro com função importada! Funções e módulos >>>import math >>>(16**+ ** - *16**cos(60))**0. >>>import math >>>(16**+ ** - *16**cos(60))**0. Tracebac (most recent call last): File "<pshell#14>", line 1, in <module> ((16**)+ (**)-(*16**cos(60)))**(1/) NameError: name 'cos' is not defined Tracebac (most recent call last): File "<pshell#14>", line 1, in <module> ((16**)+ (**)-(*16**cos(60)))**(1/) NameError: name 'cos' is not defined A definição desta função está no módulo math O que aconteceu??? O que aconteceu??? 1 17

18 Função OK, resultado não? Valores válidos para funções >>>import math >>>(16** + ** - *16**math.cos(60))** >>>import math >>>(16** + ** - *16**math.cos(60))** E agora, o que aconteceu??? A resposta deveria ser 14!!! E agora, o que aconteceu??? A resposta deveria ser 14!!! A função cos() do módulo math, precisa de um ângulo em radianos!!! 3 4 Autonomia do programador Cosseno em graus Para obter ajuda erativa sobre o que uma função faz e como usá-la: help(módulo.função) Para obter ajuda erativa sobre todas as funções de um módulo: help(módulo) >>>import math >>>(16**+**-*16**math.cos(math.radians(60)))** Descubra a função do módulo math que dado um ângulo em graus obtenha o equivalente em radianos 6 Mão na massa com funções Descubra as funções do módulo math para calcular o seno, cosseno, tangente, cotangente e fatorial. Resolva os eercícios abaio. 1. No triângulo escaleno ao lado, determine sua área A = a. b. (senα) /. Para os ângulos 3 e 6 calcule o seno da soma deste ângulos o cosseno da soma deste ângulos 3. Quantos números de algarismos distos podem ser formados usando-se os algarismos 1, 3,, 7 e 9? (permutação) 4. Quantas comissões constituídas de 3 pessoas Pn n! podem ser formadas com pessoas? (combinação) n! C n, p p!( n p)! Usando o Interpretador Pthon com tetos 7 18

19 >>>"Tem SntaError: Pthon também manipula tetos (strings). Strings são sequências de caracteres delimitadas por aspas simples (' ') ou por aspas duplas (" "). (não misture) >>>'Prog1 é terça e qua' Pthon e tetos turmas de 7-9h,9-11h,11-13h,1-1h e 1-17h" Se o teto possui o caractere delimitador da string ele deve ser precedido por \ : >>>'D'Artagnan' invalid snta >>>'D\'Artagnan' "D'Artagnan" >>>"D'Artagnan" "D'Artagnan" É possível realizar algumas operações com strings. Tetos e operadores Teste e verifique o que acontece? >>>'Oi'+',tudo bem?' >>>'Eu'*1 >>>* 'Eu' +' gosto' >>>'Eu' +' gosto' * >>>'Pode dividir?'/3 9 1 O operador + concatena strings >>>'Oi'+',tudo bem?' 'Oi,tudo bem?' >>>"Oi"+",tudo bem?" 'Oi,tudo bem?' Operações em Strings Variável String Atribuição prof = # Cria var prof part = # Cria var part O operador * replica strings >>>"Eu"*1 'EuEuEuEuEuEuEuEuEuEuEuEuEuEuEu' >>>1*'Eu'+'gosto' 'EuEuEuEuEuEuEuEuEuEuEuEuEuEuEugosto' A função len() retorna o número de caracteres (tamanho) da string >>>len(1*'eu'+'gosto') Variável String Atribuição (1/6) Variável String Atribuição (/6) prof = part = # Cria a variável prof # Cria a variável part prof = # Cria a variável prof part = # Cria a variável part prof = #Associa outro valor à variável prof prof str prof str part str part str

20 Variável String Atribuição (3/6) prof = # Cria a variável prof part = # Cria a variável part prof = '# Associa outro valor à variável prof Variável String Atribuição (4/6) prof = # Cria a variável prof part = # Cria a variável part prof = #Associa outro valor à variável prof part = prof str prof str part str part str Variável String Atribuição (/6) prof = # Cria a variável prof part = # Cria a variável part prof = # Associa outro valor à variável prof part = Variável String Atribuição (6/6) prof = # Cria a variável prof part = # Cria a variável part prof = # Associa outro valor à variável prof part = SntaError: EOL while scanning string literal str prof Tracebac (most recent call last): File "<pshell#6>", line 1, in <module> part = NameError: name 'Mia' is not defined part str Caia d'água: revendo o problema 3) Uma torneira despeja 7 litros de água por hora. Quanto tempo, em horas, levará para encher uma caia de 3160 litros? Números, strings e formatação >>>3160/ Esquisito!!!! O resultado horas deveria ser eibido como 4h8m 10 0

21 Caia d'água: ajuste do valor >>>3160/ Deveria a ser eibido como 4h8m Esquisito!!!! Com os operadores // e % Caia d'água: resultados >>> h=3160//7 #4 >>> min= 3160%7*60/7 #8 Como computar a saída no formato '... h...m'? Usar operadores: // e % 11 1 Com o operador // Caia d'água e formato de saída Com o operador // Caia d'água: conversão de strings >>> h=3160//7 #4 >>> min= 3160%7*60/7 #8 Como computar a saída no formato '... h...m'? '... h...m' concatenação do valor da variável h com 'h' com o valor da variável min com 'm'! h e min são numéricas eiros, como juntá-las com 'h' e 'm'? >>> h=3160//7 #4 >>> min= 3160%7*60/7 #8 Como computar a saída no formato '... h...m'? '... h...m' concatenação do valor da variável h com 'h' com o valor da variável min com 'm'! h e min são numéricas eiros, como juntá-las com 'h' e 'm'? função str(n) : converte n para o tipo string Caia d'água: solução formatada 3) Uma torneira despeja 7 litros de água por hora. Quanto tempo, em horas e minutos, levará para encher uma caia de 3160 litros? >>> h=3160//7 #4 >>> min= (3160%7*60/7) #8 >>> str(h) + 'h' + str(min) + 'm' '4h8m' Strings e mão na massa! 1. Importe o módulo random a) Veja a função choice : help(random.choice) b) Crie a string alfabeto = "abcdefghijlmnopqrstuvwz" c) Eiba a letra escolhida pelo choice. Guarde seu nome em uma variável. Crie uma string com seu nome precedido e sucedido por n astericos, sendo n igual a metade do comprimento de seu nome. Eemplo: Nome = Mia Maia Saída: '****Mia Maia****' 3. Guarde o dia, mês e ano de seu nascimento em variáveis: a) Eiba a data de nascimento no formato 'dd/mm/aaaa' b) Eiba a frase: 'Não se esqueça do meu aniversário: dd/mm!!!' 4. Uma encomenda pesa 340g e a embalagem peso 178g. Eiba o peso da encomenda com a embalagem no formato '... Kg e...g'. Utilize a função str() para mostrar quantos algarismos tem o número DESAFIO: verifique no módulo random se há alguma função capaz de gerar um número eiro aleatoriamente. Se houver, refaça o eercício substituindo o epoente de 3 (00) pelo número gerado aleatoriamente

22 Solução Mãos na Massa Solução Mãos na Massa import random >>>#1) >>>alfabeto = "abcdefghijlmnopqrstuvwz" >>>c = random.choice(alfabeto) >>>#) >>>nome = "Mia Maia" >>>tam = len(nome) >>>moldura= '*'* (tam//) saida = moldura + nome + moldura >>>#3) >>>dia=1 >>>mes=1 >>>ano=000 >>>formato = str(dia)+'/'+str(mes)+'/'+str(ano) >>>frase = 'Não se esqueça do meu aniversário:' + str(dia)+'/'+str(mes)+ '!!!' >>>#4) >>>pesogramas = >>>ilos = pesogramas//00 >>>gramas = pesogramas%00 >>>resultado = str(ilos)+'g e '+str(gramas)+'g' >>>#) >>>num = 3**00 >>>tam = len (str(num)) >>>#6) >>>rand = random.rand(0,00) >>>num = 3**rand >>>tam = len (str(num)) Autonomia do Programador! Documentação online : - documentação Pthon versão a lista de módulos -manual de referência da linguagem - tutorial com instruções para instalação, dicas de como fazer, e respostas a perguntas frequentes 19