34
Computa¸ ao 1 - Python Aula 3 - Te´ orica: Tipos de dados, Strings, Estrutura Condicional Coordena¸ ao de Computa¸ ao - Dept. Ciˆ encia da Computa¸c˜ ao - UFRJ 1/ 28

Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

Embed Size (px)

Citation preview

Page 1: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

Computacao 1 - Python

Aula 3 - Teorica: Tipos de dados, Strings,

Estrutura Condicional

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

1/ 28

Page 2: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

Tipos de Dados

Dados Numericos

Numeros Inteiros: Int/Long

Ponto Flutuante: Float

Numeros Complexos: Complex

Operacoes com dados de um mesmo tipo tendem a gerarresultados do mesmo tipo dos operandos;

Operacoes com dados de diferentes tipos geram resultados do tipomais complexo;

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

2/ 28

Page 3: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

Tipos de Dados

Sequencia de caracteres: Str

Constantes string sao escritas usando aspas simples ou duplasExemplo:

”a” ou ’a’

O operador + pode ser usado para concatenar stringsExemplo

”a”+”b” e o mesmo que ”ab”

O operador ∗ pode ser usado para repetir stringsExemplo

”a”*10 e o mesmo que ”aaaaaaaaaa”

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

3/ 28

Page 4: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

Tipos de Dados

Conversao entre tipos de dados

Dados numericos nao sao convertidos automaticamente para o tipo stringExemplo:

>>> "Minha idade e " + 15 + " anos"

TypeError: Can’t convert ’int’ object to string implicitly

>>> "Minha idade e " + str(15) + " anos"

"Minha idade e 15 anos"

Para converter uma string em inteiro ou float podemos usar:Exemplo

>>> int("15")

15

>>> float("3.14")

3.14

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

4/ 28

Page 5: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

String

Exercıcio

Escreva uma funcao que receba como parametro o nome e a idade deuma pessoa, e que retorne a frase:

“Ola fulano, meu nome e Python e eu tenho x anos. ”

onde fulano e x sao, respectivamente, o nome e o dobro da idade dousuario.

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

5/ 28

Page 6: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

String

Exercıcio

Escreva uma funcao que receba como parametro o nome e a idade deuma pessoa, e que retorne a frase:

“Ola fulano, meu nome e Python e eu tenho x anos. ”

onde fulano e x sao, respectivamente, o nome e o dobro da idade dousuario.

# Funcao que recebe nome e idade e# escreve uma frase# str,int → strdef olafulano(nome,idade):

return ”Ola ”+ nome +”, meu nome e Python, e tenho ” +str(2*int(idade)) + ” anos.”

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

5/ 28

Page 7: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

Tipos de Dados

Booleano: Bool

Assume apenas dois valores: verdadeiro (True) ou falso (False)

E o tipo de dado resultante das operacoes de comparacao.Exemplo:

>>> 3>2

True

>>> 10 <= 5

False

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

6/ 28

Page 8: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

Relacoes e Expressoes Booleanas

Relacoes

Operadores: > , < , == (igual), ! = (diferente), >= , <=

ATENCAO

X == Y : operador relacional ⇒ X E IGUAL A Y

X = Y : operador de atribuicao ⇒ ATRIBUIR A X O VALOR DE Y

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

7/ 28

Page 9: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

Relacoes e Expressoes Booleanas

Relacoes

Operadores: > , < , == (igual), ! = (diferente), >= , <=

Expressoes Booleanas

Retornam como resultado de sua avaliacao os valores verdadeiro (True) oufalso (False)

Operadores

1 not (negacao)

2 and (e)

3 or (ou) (nesta ordem de precedencia)

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

8/ 28

Page 10: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

Operadores Logicos

Operadores: not (negacao), and (e), or (ou)

x and y: verdadeiro se, e somente se x e y forem ambosverdadeiros.

x or y: falso se, e somente se x e y forem ambos falsos.

not x: falso se x for verdadeiro, e verdadeiro se x for falso.

Observe que x e y podem ser variaveis booleanas ou podem serexpressoes booleanas compostas de operadores relacionais eoperadores logicos.

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

9/ 28

Page 11: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

Expressoes Booleanas

Tabela Verdade

Exp 1 Exp 2 Exp 1 and Exp 2 Exp 1 or Exp 2 not Exp 1

T T T T F

T F F T F

F T F T T

F F F F T

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

10/ 28

Page 12: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

Expressoes Booleanas

Exercıcio: Construa a tabela-verdade para as seguintes expressoes:

1 (p and q) and not(p or q)

2 not(p and not q) or q

3 (X + Y > Z) or (Nome ! = “Maria”) and 1 == 2

4 (Nome == “Jorge”) and False or (Z =< X +10)

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

11/ 28

Page 13: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

Estrutura Condicional Simples

Faca uma funcao que, dado um numero inteiro X passado como parametro,retorna a string “positivo” caso X seja um numero positivo, e “nao positivo”caso contrario.

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

12/ 28

Page 14: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

Estrutura Condicional Simples

Faca uma funcao que, dado um numero inteiro X passado como parametro,retorna a string “positivo” caso X seja um numero positivo, e “nao positivo”caso contrario.

# Funcao que recebe um numero inteiro e# determina se ele e positivo# int → strdef positivo(X):

if X > 0 :return ’positivo’

return ’nao positivo’

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

12/ 28

Page 15: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

Estrutura Condicional Simples

Faca uma funcao que, dado um numero inteiro X passado como parametro,retorna a string “positivo” caso X seja um numero positivo, e “nao positivo”caso contrario.

# Funcao que recebe um numero inteiro e# determina se ele e positivo# int → strdef positivo(X):

if X > 0 :return ’positivo’

return ’nao positivo’

Estrutura Condicional Simples

if expressao :comandos

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

12/ 28

Page 16: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

Estrutura Condicional Simples

Faca uma funcao que, dado um numero inteiro X passado como parametro,retorna a string “positivo” caso X seja um numero positivo, e “nao positivo”caso contrario.

# Funcao que recebe um numero inteiro e# determina se ele e positivo# int → strdef positivo(X):

if X > 0 :return ’positivo’

return ’nao positivo’

Estrutura Condicional Simples

if expressao :comandos

expressao na estrutura condicional e um tipo especial de expressao chamadoexpressao booleana, que pode ser verdadeira ou falsa.

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

12/ 28

Page 17: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

Python Tutor

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

13/ 28

Page 18: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

Python Tutor

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

14/ 28

Page 19: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

Python Tutor

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

15/ 28

Page 20: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

Python Tutor

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

16/ 28

Page 21: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

Python Tutor

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

17/ 28

Page 22: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

Estrutura Condicional

Faca uma funcao que determina se um numero inteiro X passado comoparametro e positivo, negativo ou zero. O valor de retorno da funcao deve seruma dentre as strings “positivo”, “negativo” ou “zero”.

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

18/ 28

Page 23: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

Estrutura Condicional

Faca uma funcao que determina se um numero inteiro X passado comoparametro e positivo, negativo ou zero. O valor de retorno da funcao deve seruma dentre as strings “positivo”, “negativo” ou “zero”.

# Funcao que recebe um numero inteiro e# determina se ele e positivo, negativo ou zero# int → strdef PosNegZero(X):

if X > 0 :return ’positivo’

if X < 0 :return ’negativo’

if X == 0 :return ’zero’

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

18/ 28

Page 24: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

Estrutura Condicional

Faca uma funcao que determina se um numero inteiro X passado comoparametro e positivo, negativo ou zero. O valor de retorno da funcao deve seruma dentre as strings “positivo”, “negativo” ou “zero”.

# Funcao que recebe um numero inteiro e# determina se ele e positivo, negativo ou zero# int → strdef PosNegZero(X):

if X > 0 :return ’positivo’

if X < 0 :return ’negativo’

if X == 0 :return ’zero’

Podemos simplificar o codigo ? Como ?

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

18/ 28

Page 25: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

Estrutura Condicional Composta

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

19/ 28

Page 26: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

Estrutura Condicional Composta

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

20/ 28

Page 27: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

Estrutura Condicional Composta

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

21/ 28

Page 28: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

Estrutura Condicional Composta

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

22/ 28

Page 29: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

Estrutura Condicional Composta

Faca uma funcao que determina se um numero inteiro X passado comoparametro e positivo, negativo ou zero. O valor de retorno da funcao deve seruma dentre as strings “positivo”, “negativo” ou “zero”.

# Funcao que recebe um numero inteiro e# determina se ele e positivo, negativo ou zero# int → strdef PosNegZero(X):

if X > 0 :return ’positivo’

else:if X < 0 :

return ’negativo’else:

return ’zero’

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

23/ 28

Page 30: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

Estrutura Condicional Composta

Faca uma funcao que determina se um numero inteiro X passado comoparametro e positivo, negativo ou zero. O valor de retorno da funcao deve seruma dentre as strings “positivo”, “negativo” ou “zero”.

# Funcao que recebe um numero inteiro e# determina se ele e positivo, negativo ou zero# int → strdef PosNegZero(X):

if X > 0 :return ’positivo’

elif X < 0 :return ’negativo’

else:return ’zero’

Teste no Python Tutor para os seguintes casos: PosNegZero(0),

PosNegZero(2) e PosNegZero(-12)

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

24/ 28

Page 31: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

Estrutura Condicional

1. Faca uma funcao que receba como entrada o codigo de uma mercadoria eo preco e retorne como saıda o preco da mercadoria, sendo que se ocodigo for ’00’ um desconto de 10% no preco deve ser aplicado.

2. Faca uma funcao que receba como entrada dois numeros e retorne omaior deles. Os valores sao, por definicao, diferentes entre si.

3. Faca uma funcao que receba como entrada dois numeros e retorne omaior deles. Caso os numeros sejam iguais, retorne “Os numeros saoiguais”.

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

25/ 28

Page 32: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

Estrutura Condicional

4. Faca uma funcao que receba como entrada tres numeros e retorne omaior deles. Caso os tres numeros sejam iguais, retorne “Os numeros saoiguais”.Faca o chines da sua funcao para as seguintes entradas:

Entrada Valor de Retorno

(92541 , 7.432 , -1) ?

(9.1 , 9.1 , 5L) ?

(-5.2 , 0 , 10) ?

5. Uma faculdade atribui mencoes aos alunos conforme a faixa de notas que

tenha atingido:

9,0 a 10: S (superior)

7,0 a 8,9: MS (medio superior)

5,0 a 6,9: M (medio)

0,0 a 4,9: MI (medio inferior)

Faca uma funcao que dada a nota retorna a mencao. Caso a nota naoesteja entre 0 e 10, retornar mensagem de “nota invalida”.

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

26/ 28

Page 33: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

Estrutura Condicional

6. Faca uma funcao em Python que receba como entrada:

as notas P1, P2 e P3 das provas, e

a nota da avaliacao pratica AP de um aluno de computacao 1.

Sua funcao deve entao retornar a media deste aluno e uma string dizendo“aprovado” caso o aluno tenha sido aprovado, ou “reprovado” casocontrario.

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

27/ 28

Page 34: Computação 1 - Python Aula 3 - Teórica: Tipos de dados ...bfgoldstein/python/compI/slides/aula3... · String Exerc´ıcio Escreva uma fun¸cao que receba como parametro o nome

Computacao 1 - Python

Aula 3 - Teorica: Tipos de dados, Strings,

Estrutura Condicional

Coordenacao de Computacao - Dept. Ciencia da Computacao - UFRJ

28/ 28