Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os...

48
Ambiente e linguagem de programação Python Pesquise por “python” e escolha (com duplo clique) a opção IDLE: Integrated Development Environment ou Ambiente integrado de desenvolvimento Ambiente Python 2

Transcript of Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os...

Page 1: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

Ambiente e linguagem de programação Python

Pesquise por “python” e escolha (com duplo clique) aopção IDLE: Integrated Development Environment ouAmbiente integrado de desenvolvimento

Ambiente Python

2

Page 2: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

IDLE: janela principal (1/2)

Console (tty):Janela do

Interpretador

Prompt : indica que um comandopode ser introduzido

3

O Interpretador permite a introdução de comandos após o prompt,.

Os comandos são executados ao teclar <enter> e seus resultadosmostrados na consolemodo interativo

Um comando é uma instrução que o interpretador Python pode executar.

IDLE: janela principal (2/2)

comando

resposta

4

Page 3: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

Interpretador: modo interativo (1/2)

Trabalha com números e com textos (strings)

5

CTRL + Z ou quit() finalizam o interpretador

CTRL + C – interrompe a execução do comando

Interpretador: modo interativo (2/2)

quit()

6

Page 4: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

Componentes de uma expressão:

operandos: números inteiros (int) ou

com parte fracionária (float)

operadores usuais: +, -, *, / e ** (potência)

() podem ser usados para agrupar operandos e operadores

Interpretador como calculadora

>>> 3 + 7 #Expressão Aritmética

10 #Resultado da Avaliação

7

Um termômetro marca 8°C. Se a temperatura baixar12°C, quanto o termômetro irá marcar em °F?

Mãos na Massa: Celsius Fahrenheit

DESCREVER O ROTEIRO (A SEQUÊNCIA DE PASSOS) QUE SOLUCIONA O PROBLEMA!!

325

9 CF

8

Page 5: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

Um termômetro marca 8°C. Se a temperatura baixar 12°C, quanto otermômetro irá marcar em °F?

Celsius Fahrenheit (1/8)

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

325

9 CF

9

Um termômetro marca 8°C. Se a temperatura baixar 12°C, quanto otermômetro irá marcar em °F?

Celsius Fahrenheit (2/8)

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)

325

9 CF

10

Page 6: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

Um termômetro marca 8°C. Se a temperatura baixar 12°C, quanto otermômetro irá marcar em °F?

Celsius Fahrenheit (3/8)

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°Cvariação: -12°C

325

9 CF

11

Um termômetro marca 8°C. Se a temperatura baixar 12°C, quanto otermômetro irá marcar em °F?

Celsius Fahrenheit (4/8)

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)

325

9 CF

12

Page 7: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

Um termômetro marca 8°C. Se a temperatura baixar 12°C, quanto otermômetro irá marcar em °F?

Celsius Fahrenheit (5/8)

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

325

9 CF

13

Um termômetro marca 8°C. Se a temperatura baixar 12°C, quanto otermômetro irá marcar em °F?

Celsius Fahrenheit (6/8)

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.

325

9 CF

Calcular a temperatura final (inicial + variação) Transformar a temperatura final para °F pela fórmula

14

Page 8: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

Um termômetro marca 8°C. Se a temperatura baixar 12°C, quanto otermômetro irá marcar em °F?

Celsius Fahrenheit (7/8)

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.

325

9 CF

15

Um termômetro marca 8°C. Se a temperatura baixar 12°C, quanto otermômetro irá marcar em °F?

Celsius Fahrenheit (8/8)

Dados necessários: temperatura inicial: 8°C, variação: -12°CRespostas Exibidas: temperatura em °FComo DadosRespostas:

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 interpretador

325

9 CF

16

Page 9: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

Um termômetro marca 8°C. Se a temperatura baixar 12°C, quanto otermômetro irá marcar em °F?

Celsius Fahrenheit: executando

Implementar no interpretador:

>>>(8-12)9/5+32

325

9 CF

17

Erros de sintaxe e execução de programas

Page 10: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

Um termômetro marca 8°C. Se a temperatura baixar 12°C, quanto otermômetro irá marcar em °F?

Execução com Erro?

Implementar no interpretador:

>>>(8-12)9/5+32

Após o enter:

O que aconteceu???

>>>(8-12)9/5+32

^

SyntaxError: invalid syntax

325

9 CF

19

Um comando deve seguir uma estrutura que o interpretadorreconheça: sintaxe do comando

Mensagens de erro são exibidas quando o comando não forcompreendido.

Entender as mensagens de erro ajudam a descobrir problemas noprograma durante o seu desenvolvimento

Um comando é uma instrução que o interpretador Python pode executar

Solução com Erro Sintático

>>>(8-12)9/5+32

^

SyntaxError: invalid syntax

20

Page 11: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

Erros sintáticos : quando o interpretador não reconhece a instrução.

A 'seta' aponta para o ponto da linha em que o erro foi detectado. Oerro é causado pelo texto que precede a seta

Sobre Erros Sintáticos

>>> 6*3^

SyntaxError: unexpected indent

>>>3 x 7^

SyntaxError: invalid syntax

21

Erros de execução: quando o comando está sintaticamente corretomas não pode ser obedecido.

A última linha mostra o que aconteceu (o tipo do erro e umdetalhamento) e a anterior, o contexto onde ocorreu o erro.

Erros de Execução não sintáticos

>>>10 * (1/0)Traceback (most recent call last):File "<stdin>", line 1, in <module>1/0

ZeroDivisionError: division by zero

22

Page 12: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

>>>(8-12)*9/5 +32

24.8

Implementar no interpretador:

Revendo Celsius Fahrenheit

325

9 CF

23

Exercícios e soluções computacionais

Page 13: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

1. Calcule o perímetro de um círculo com raio 5. Perímetro = 2 π r

2. Os raios dos anéis do casco de um caracol, do centro até a borda,crescem exponencialmente de acordo com a expressão (3+r)n sendo r, oraio e n o nº do anel. Qual o diâmetro do 5º anel, em centímetros,sabendo que o raio é 2.1cm?

3. Uma torneira despeja 75 litros de água por hora. Quanto tempo, emhoras, levará para encher uma caixa de 3160 litros?

4. Uma indústria produziu 188 peças e quer colocá-las em 12 caixas, demodo que todas as caixas tenham o mesmo número de peças. Quantaspeças serão colocadas em cada caixa?

Mãos na massa: mais exercícios!!!

25

1) Calcule o perímetro de um círculo com raio 5Perímetro = 2 π r

Perímetro: solução (1/3)

Dados necessários:?Respostas Exibidas?Como DadosRespostas?

26

Page 14: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

1) Calcule o perímetro de um círculo com raio 5Perímetro = 2 π r

Perímetro: solução (2/3)

Dados necessários: Raio 5Respostas Exibidas: PerímetroComo DadosRespostas: Perímetro = 2 π r

??????

27

1) Calcule o perímetro de um círculo com raio 5Perímetro = 2 π r

Perímetro: solução (3/3)

>>>2*3.1415*5

31.415000000000003

28

Page 15: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

2) Os raios dos anéis do casco de um caracol do centro até a bordacrescem exponencialmente de acordo com a expressão: (3+r)n sendo r, oraio e n o nº do anel. Qual o diâmetro do 5º anel, em cm, sabendo que oraio é 2.1cm?

Caracol: solução (1/3)

Dados necessários:?Respostas Exibidas?Como DadosRespostas?

29

2) Os raios dos anéis do casco de um caracol do centro até a bordacrescem exponencialmente de acordo com a expressão: (3+r)n sendo r, oraio e n o nº do anel. Qual o diâmetro do 5º anel, em cm, sabendo que oraio é 2.1mm?

Caracol: solução (2/3)

Dados necessários: raio, nº do anelRespostas Exibidas: diâmetro do 5º anelComo DadosRespostas: pela fórmula (3+r)n

PAUSA: Qual o operador de potência?

30

Page 16: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

Operador **: xy

>>>3**2

9

>>>3**2.0

9.0

>>>3.0**2

9.0

>>>-3**2

-9 #por quê?

>>>(-3)**2

9

>>>-27**(1/3)

-3.0

>>>3**1/2 #por quê?

1.5

31

2) Os raios dos anéis do casco de um caracol do centro até a bordacrescem exponencialmente de acordo com a expressão: (3+r)n sendo r, oraio e n o nº do anel. Qual o diâmetro do 5º anel, em cm, sabendo que oraio é 2.1cm?

Caracol: solução (3/3)

>>>(3+2.1)**5

3450.2525099999999

32

Page 17: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

3) Uma torneira despeja 75 litros de água por hora. Quanto tempo, emhoras, levará para encher uma caixa de 3160 litros?

Caixa d’água: solução (1/2)

Dados necessários: Vazão Q: 75 l/hVolume caixa: 3160 l

Respostas Exibidas: TempoComo DadosRespostas: t= V/Q

33

3) Uma torneira despeja 75 litros de água por hora. Quanto tempo, emhoras, levará para encher uma caixa de 3160 litros?

Caixa d’água: solução (2/2)

>>>3160/75

42.13333333333333

Esquisito!!!!

O valor exibido - 42.13333333333333 horas - não é usual pararepresentar o tempo. Como deveria ser exibido?

34

Page 18: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

4) Uma indústria produziu 188 peças e quer colocá-las em 12 caixas, de modo que todas as caixas tenham o mesmo número de peças. Quantaspeças deveriam ser colocadas em cada caixa?

Peças em caixas: solução (1/4)

Dados necessários: total de peças = 188 nº de caixas: 12

Respostas Exibidas: capacidade da caixaComo DadosRespostas:

capacidade da caixa = total de peças /nº de caixas

35

4) Uma indústria produziu 188 peças e quer colocá-las em 12 caixas, de modo que todas as caixas tenham o mesmo número de peças. Quantaspeças deveriam ser colocadas em cada caixa?

Peças em caixas: solução (2/4)

>>>188/1215.666666666666666

Impossível!!!

36

Page 19: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

Operadores // e %

// : arredonda para o valor do maior inteiro que é menor que o quociente

% : valor do resto da divisão inteira

37

7.0//2 → 3.0 (7.0/2→ 3.5 arredonda para 3.0 pois 3.0 < 3.5 < 4.0)

-7.0//2 → -4.0 (-7.0/2→ -3.5 arredonda para -4.0 pois -4.0 < -3.5 < -3.0)

-7.0//-2 → 3.0 (-7.0/-2→ 3.5 arredonda para 3.0 pois 3.0 < 3.5 < 4.0)

-7//-2 → 3 (-7/-2→ 3.5 arredonda para 3 pois 3 < 3.5 <4)

9%2 → 19%3 → 0

O resultado pode ser int oufloat, depende dos operandos

valor do menor númerointeiro mais próximo do

quociente

37

4) Uma indústria produziu 188 peças e quer colocá-las em 12 caixas, de modo que todas as caixas tenham o mesmo número de peças. Quantaspeças deveriam ser colocadas em cada caixa?

Peças em caixas: solução (3/4)

>>>188//1215

Quantas peças não serão colocadas nas caixas??? Quantas peças sobrarão???

38

Page 20: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

4) Uma indústria produziu 188 peças e quer colocá-las em 12 caixas, demodo que todas as caixas tenham o mesmo número de peças. Quantaspeças não serão colocadas nas caixas??? Quantas peças sobrarão???

Peças em caixas: solução (4/4)

>>>188%128

39

Variáveis e reutilização de valores

Page 21: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

Calcule as raízes da equação: 2x² + 6x – 20= 0.

Delta: raízes da equação

Dados necessários?Respostas Exibidas?Como DadosRespostas?

41

Calcule as raízes da equação: 2x² + 6x – 20= 0.

Delta e duas raízes

Dados necessários: a=2, b=6, c=-20Respostas Exibidas: x1, x2Como DadosRespostas: Fórmula de Bhaskara

42

Page 22: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

Calcule as raízes da equação: 2x² + 6x – 20= 0.

Reutilizando valores

O valor de △ é usado para o cálculo de x1 e de x2.

Como reutilizar o valor do cálculo de △?

43

Calcule as raízes da equação: 2x² + 6x – 20= 0.

Valores e nomes associados

O valor de △ é usado para o cálculo de x1 e de x2

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.

44

Page 23: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

Valores podem ser guardados em variáveis.

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 valorda avaliação da expressão:

A expressão combina valores/variáveis e operadores e computa umvalor quando executada

Guardando valores em variáveis

nome = expressão

45

Entendendo variáveis

Funcionamento:

nome = expressão Resolve a expressão1º passo:

nome = valor2º passo:

Associa o valor resultante da avaliação da expressão à variável

46

Page 24: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

Não pode ter caracteres especiais, espaços em branco ou ser uma daspalavras reservadas da linguagem (print, if, while,...)

Nome de variáveis

• 1º caractere: letra ou hífen ('_')

• Demais caracteres: letras, números ou hífen ('_')

47

Regras para nome de variáveis

Certo ou Errado? Por que?

• NotaP1

• Notap1

• 1opgto

• pagto#1

• pgto 1

• pgto _ 1

• pgto_1

• pgto1

• jjj

Lembre-se que as variáveis representam os valores utilizadospelo programa. Dê nomes elucidativos!!!

A escolha correta do nome da variável melhora a legilibilidadee compreensão do código!

48

Page 25: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

Expressões e atribuições

Expressões Aritméticas

expressão aritmética:

A expressão é avaliada deacordo com a prioridade dosoperadores

1) Exponenciação (**)2) Multiplicação e Divisão (*,/,//,%)3) Soma e Subtração (+, -)

A ordem de avaliação pode ser modificada por parênteses

<operando> operador aritmético <operando>

50

Page 26: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

A variável é criada na primeira vez que aparece no ladoesquerdo do comando ou operador de atribuição (=).

>>>x = 10 cria a variável x

>>>y = 15 cria a variável y

>>>k = 2 cria a variável k

Variáveis e Atribuição (1/3)

51

Variável Numérica x Atribuição (1/8)

int10

x

>>>x = 10Representação

>>>y = 15

int15y

>>>k = 2

int2

k

52

Page 27: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

A variável é criada na primeira vez que aparece no lado esquerdo docomando de atribuição (=).

Nas demais vezes que aparece no lado esquerdo do comando de atribuição,o valor associado é substituído pelo resultado da expressão

>>>y = 20 altera o valor associado à variável y

Variável x Atribuição (2/3)

53

Variável Numérica x Atribuição (2/8)

int10

x

>>>x = 10Representação

>>>y = 15

>>>k = 2

int2

k

>>>y = 20 int20

y

54

Page 28: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

A variável é criada na primeira vez que aparece no lado esquerdo docomando de atribuição (=).

Nas demais vezes que aparece no lado esquerdo do comando de atribuição,o valor associado é substituído pelo resultado da expressão

Sempre que o nome da variável for utilizado em uma expressão éautomaticamente substituído pelo seu valor

>>>z = x #cria z e associa a z o valor associado à variável x

>>>y = x + 20 * z # usa o valor associado à x e z na expressão

>>>x = x + 1 # usa o valor associado à x na soma e depois o altera

Variável x Atribuição (3/3)

55

Variável Numérica x Atribuição (3/8)

int10

x

>>>x = 10Representação

>>>y = 15

>>>k = 2

int2

k

>>>y = 20 int20

y

>>>z = x

FUNCIONAMENTO:

1º passo) resolve a expressão

2º passo) Associa o resultado da avaliação da expressão à variável

z

56

Page 29: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

Variável Numérica x Atribuição (4/8)

int10

x

>>>x = 10Representação

>>>y = 15

>>>k = 2

int2

k

>>>y = 20 int210

y

>>>z = x

z

>>>y = x + 20 * z

FUNCIONAMENTO:

1º passo) resolve a expressão

2º passo) Associa o resultado da avaliação da expressão à variável

57

Variável Numérica x Atribuição (5/8)

int10

x

>>>x = 10Representação

>>>y = 15

>>>k = 2

int2

k

>>>y = 20 int210

y

>>>z = x

z

>>>y = x + 20 * z

FUNCIONAMENTO:

1º passo) resolve a expressão

2º passo) Associa o resultado da avaliação da expressão à variável

>>>x = x + 1

58

Page 30: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

Variável Numérica x Atribuição (6/8)

int10

>>>x = 10Representação

>>>y = 15

>>>k = 2

int2

k

>>>y = 20 int210

y

>>>z = x

z

>>>y = x + 20 * z

>>>x = x + 1

int11

x

59

Variável Numérica x Atribuição (7/8)

int10

>>>x = 10Representação

>>>y = 15

>>>k = 2

int2

k

>>>y = 20 int210

y

>>>z = x

z

>>>y = x + 20 * z

>>>x = x + 1

int11

x

>>>x = b + 56

FUNCIONAMENTO:

1º passo) resolve a expressão

2º passo) Associa o valor resultante da avaliação da expressão à variável

Traceback (most recent call last):File "<pyshell#0>", line 1, in <module>

x=b+56NameError: name 'b' is not defined

60

Page 31: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

Variável Numérica x Atribuição (8/8)

int10

>>>x = 10Representação

>>>y = 15

>>>k = 2

int2

k

>>>y = 20 int210

y

>>>z = x

z

>>>y = x +20 * z

>>>x = x + 1

int11

x

>>>x = b + 56

Uma variável só pode ser usada depois de

ter sido criada

61

Delta: revendo a solução

>>>#2x² + 6x – 20

>>>delta = (6**2)-(4*2*-20)

>>>(-6+delta**(1/2))/(2*2)

2.0

>>>(-6-delta**(1/2))/(2*2)

-5.0

Torna a linhaum

comentário

62

Page 32: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

1. Sabe-se que 37,5% de uma distância x corresponde a 600 m. Qual a distância x?

2. Uma escola tem 25 professores, dos quais 26% ensinam Matemática. Quantosprofessores ensinam Matemática nessa escola?

3. Uma escola tem 25 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 58 cabeças e 178 pés.Quantos cisnes e coelhos há nesse jardim?

5. Um atirador ganha 4 pontos por tiro acertado no alvo e paga a metade, comomulta, cada vez que erra o alvo. Após 32 tiros, ele obteve 86 pontos. Quantostiros ele acertou?

6. Uma escola pretende ladrilhar o seu pátio retangular, com as seguintesdimensões: 4m e 5.5m. Os ladrilhos utilizados são quadrados com 16 cm delado. Calcule a quantidade de ladrilhos necessária para cobrir a área com, nomáximo, um ladrilho de sobra.

Interpretador Python e mais mão na massa!

63

Aumentando o "poder" do interpretador com módulos

da biblioteca padrão

Page 33: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

Utilizando as leis do cosseno, mostre a medida do lado a do seguintetriângulo :

Triângulos e mão na massa

Dados necessários? c=10, b=16, = 60Respostas Exibidas? Lado aComo DadosRespostas?

Lei dos cossenos:

65

Utilizando as leis do cosseno, mostre a medida do lado a do seguintetriângulo:

Cosseno: solução inicial

>>>(16**2 + 10**2 - 2*16*10*cos(60))**0.5

Traceback (most recent call last):File "<pyshell#18>", line 1, in <module>(16**2+ 10**2 - 2*16*10*cos(60))**0.5NameError: name 'cos' is not defined

66

Page 34: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

Cosseno: já programado?

>>>(16**2 + 10**2 - 2*16*10*cos(60))**0.5

Traceback (most recent call last):File "<pyshell#18>", line 1, in <module>(16**2+ 10**2 - 2*16*10*cos(60))**0.5

NameError: name 'cos' is not defined

Por que o interpretadornão calcula o cosseno de

60?

As ações que o interpretador é capaz de obedecer precisamser previamente programadas!

67

Funções

• 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 exemplo, dado f(x) = x2, f(3) 9

• Há funções criadas pelo programador e também fornecidas pelalinguagem.

• Python oferece inúmeras funções prontas que podem ser usadas peloprogramador e "ensinam" o interpretador a realizar diferentes tarefas

Uma função é uma sequência de instruções (bloco de código) independente, que realiza uma tarefa específica.

68

Page 35: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

• As funções oferecidas pelo Python são agrupadas em módulos.

• Um módulo é um arquivo Python que contém uma coleção defunções relacionadas.

• Exemplo: Módulo math (matemática):

• contém funções matemáticas usuais (seno, cosseno,…).

• Ao importar o módulo, o programador pode utilizar asfunções sem a necessidade de programá-las.

Módulos

69

1º passo) Importar um modulo da linguagem, usando a instrução import

Usando Módulos: Importação

import <NomedoMódulo>

>>>import math #Disponibiliza os componentes do módulo math

# como sin, cos, exp e outras

Exemplo:

70

Page 36: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

2º passo) Ativação da função desejada

Depois da importação, para a função ser executada, ela deve ser chamada(invocada/ativada) pelo nome.

Usando funções importadas

• As funções do módulo são acessadas via operador . (ponto)

<NomedoMódulo>. < função (valores)>

71

Funções: argumentos/parâmetros

<NomedoMódulo>. < função (valores)>

Os valores que a função precisa para executar 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.

>>>import math #Disponibiliza os componentes do módulo math

>>>math.sqrt(121) #Executa a função sqrt de math, para o valor 121

11

Exemplo:

72

Page 37: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

>>>import math

>>>(16**2+ 10**2 - 2*16*10*cos(60))**0.5

Cosseno: importando função

Traceback (most recent call last):File "<pyshell#14>", line 1, in <module>((16**2)+ (10**2)-(2*16*10*cos(60)))**(1/2)

NameError: name 'cos' is not defined

O que aconteceu???

73

>>>import math

>>>(16**2+ 10**2 - 2*16*10*cos(60))**0.5

Funções e módulos

Traceback (most recent call last):File "<pyshell#14>", line 1, in <module>((16**2)+ (10**2)-(2*16*10*cos(60)))**(1/2)NameError: name 'cos' is not defined

O que aconteceu???

A definição desta funçãoestá no módulo math

74

Page 38: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

Valores válidos para funções

E agora, o que aconteceu??? A resposta deveria ser 14!!!

A função cos(x) do módulo math, precisa de um ângulo em radianos!!!

>>>import math

>>>(16**2 + 10**2 - 2*16*10*math.cos(60))**0.5

25.70548878611045

75

Para obter ajuda interativa sobre o que uma funçãofaz e como usá-la:

help(módulo.função)

Para obter ajuda interativa sobre todas as funçõesde um módulo:

help(módulo)

Autonomia do programador

Descubra a função do módulo math que dado umângulo em graus obtenha o equivalente em radianos

76

Page 39: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

>>>import math

>>>(16**2+10**2-2*16*10*math.cos(math.radians(60)))**0.5

13.999999999999998

Cosseno em graus

77

Descubra as funções do módulo math para calcular o seno, cosseno,tangente, cotangente e fatorial. Resolva os exercícios abaixo.

Mão na massa com funções

1. No triângulo escaleno ao lado, determine sua área

A = a. b. (senα) / 2

2. Para os ângulos 23 e 56 calcule • o seno da soma deste ângulos • o cosseno da soma deste ângulos

3. Quantos números de 5 algarismos distintos podem ser formados usando-se os algarismos 1, 3, 5, 7 e 9? (permutação)

4. Quantas comissões constituídas de 3 pessoas

podem ser formadas com 5 pessoas? (combinação)

!nPn

)!(!

!, pnp

nC pn

78

Page 40: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

Usando o Interpretador Python com textos

• Python também manipula textos (strings).

• Strings são sequências de caracteres delimitadas por aspas simples ('…')ou por aspas duplas ("…"). (não misture)

• >>>'Prog1 é terça e quinta'

• >>>"Tem turmas de 7-9h,9-11h,11-13h,12-15h e 15-17h"

• Se o texto possui o caractere delimitador da string ele deve ser precedidopor \ : >>>'D'Artagnan'

• SyntaxError: invalid syntax

• >>>'D\'Artagnan'

• "D'Artagnan"

• >>>"D'Artagnan"

• "D'Artagnan"

• É possível realizar algumas operações com strings.

Python e textos

80

Page 41: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

Textos e operadores

• Teste e verifique o que acontece?

>>>'Oi'+',tudo bem?'

>>>'Eu'*15

>>>10* 'Eu' +' gosto'

>>>'Eu' +' gosto' *10

>>>'Pode dividir?'/3

81

O operador + concatena strings>>>'Oi'+',tudo bem?'

'Oi,tudo bem?'

>>>"Oi"+",tudo bem?"

'Oi,tudo bem?'

O operador * replica strings

>>>"Eu"*15

'EuEuEuEuEuEuEuEuEuEuEuEuEuEuEu'

>>>15*'Eu'+'gosto'

'EuEuEuEuEuEuEuEuEuEuEuEuEuEuEugosto'

A função len() retorna o número de caracteres (tamanho) da string>>>len(15*'Eu'+'gosto')

35

Operações em Strings

82

Page 42: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

Variável String x Atribuição

emailProf = '[email protected]' # Cria a variável emailProf

emailPart = '[email protected]' # Cria a variável emailPart

[email protected]

emailProf

[email protected]

emailPart

Representação

83

String igual mas novo valor

emailProf = '[email protected]' # Cria a variável emailProf

emailPart = '[email protected]' # Cria a variável emailPart

emailProf = '[email protected] '# Associa outro valor à variável emailProf

[email protected]

[email protected]

emailPart

Representação

84

Page 43: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

Erro com string incompleta

emailProf = '[email protected]' # Cria a variável emailProf

emailPart = '[email protected]' # Cria a variável emailPart

emailProf = '[email protected]' # Associa outro valor à variável emailProf

emailPart = '[email protected]

[email protected]

[email protected]

emailPart

Representação

SyntaxError: EOL while scanning string literal

85

Erro com string sem delimitador

emailProf = '[email protected]' # Cria a variável emailProf

emailPart = '[email protected]' # Cria a variável emailPart

emailProf = '[email protected]' # Associa outro valor à variável emailProf

emailPart = [email protected]

Traceback (most recent call last):File "<pyshell#6>", line 1, in <module>emailPart = [email protected]: name 'Mia' is not defined

86

Page 44: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

Números, strings e formatação

3) Uma torneira despeja 75 litros de água por hora. Quanto tempo, emhoras, levará para encher uma caixa de 3160 litros?

Caixa d’água: revendo o problema

>>>3160/75

42.13333333333333

Esquisito!!!!

O resultado 42.13333333333333 horas deveria ser exibido como 42h10m

88

Page 45: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

Caixa d’água: ajuste do valor

>>>3160/75

42.13333333333333

Esquisito!!!!

Usar operadores: // e %

Deveria a ser exibido como 42h10m

89

Com o operadores // e %

Caixa d’água: resultados

>>> h=3160//75 #42

>>> min=3160%75 #10

Como computar a saída no formato '... h...m'?

90

Page 46: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

Com o operadores // e %

Caixa d’água e formato de saída

>>> h=3160//75 #42

>>> min=3160%75 #10

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 inteiros, como juntá-las com 'h' e 'm'?

91

Com o operadores // e %

Caixa d’água: conversão de strings

>>> h=3160//75 #42

>>> min=3160%75 #10

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 inteiros, como juntá-las com 'h' e 'm'?

função str(n) : converte n para o tipo string.

92

Page 47: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

3) Uma torneira despeja 75 litros de água por hora. Quanto tempo, emhoras e minutos, levará para encher uma caixa de 3160 litros?

Caixa d’água: solução formatada

>>> h=3160//75 #42

>>> min=3160%75 #10

>>> str(h) + 'h' + str(min) + 'm'

'42h10m'

93

1. Importe o módulo randoma) Veja a função choice : help(random.choice)b) Crie a string alfabeto = "abcdefghijklmnopqrstuvwxyz"c) Exiba a letra escolhida pelo choice

2. Guarde seu nome em uma variável. Crie uma string com seu nome precedido e sucedidopor n astericos, sendo n igual a metade do comprimento de seu nome. Exemplo: Nome =Mia Maia Saída: '****Mia Maia****'

3. Guarde o dia, mês e ano de seu nascimento em variáveis:a) Exiba a data de nascimento no formato 'dd/mm/aaaa'b) Exiba a frase: 'Não se esqueça do meu aniversário: dd/mm!!!'

4. Uma encomenda pesa 34250g e a embalagem peso 178g. Exiba o peso da encomendacom a embalagem no formato '... Kg e...g'

5. Utilize a função str() para mostrar quantos algarismos tem o número 3 1000

6. DESAFIO: verifique no módulo random se há alguma função capaz de gerar um númerointeiro aleatoriamente. Se houver, refaça o exercício 5 substituindo o expoente de 3(1000) pelo número gerado aleatoriamente

Strings e mão na massa!

94

Page 48: Ambiente e linguagem de programação Pythonmilidiu/inf1025/aulas/Módulo 1/Python... · Os comandos são executados ao teclar  e seus resultados mostrados na console

• Documentação online :

http://docs.python.org/py3k - documentação Python versão 3

https://docs.python.org/3/py-modindex.html - a lista de módulos

http://docs.python.org/py3k/reference/index.html -manual de referênciada linguagem

http://docs.python.org/tutorial/index.html - tutorial com instruções parainstalação, dicas de como fazer, e respostas a perguntas frequentes

Autonomia do Programador!

95