Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aula 5 – Variáveis e Strings Computação I - aula 5 - 2014/1 2 Variáveis O que é uma variável ? ● É uma maneira simbólica de fazer referência a dados armazenados na memória do computador. ● Toda variável engloba os seguintes aspectos: ● Nome (identificador): é a representação simbólica da variável, que será utilizada pelo programador para fazer referência aos dados que ela armazena. ● Valor: o que de fato está armazenado. ● Tipo: o tipo de dado que está armazenado. Computação I - aula 5 - 2014/1 3 Variáveis O que é uma variável ? ● Escopo: onde a variável existe e onde ela deixa de existir. ● Endereço: local da memória onde o valor da variável está armazenado. ● Uma variável é criada com um comando de atribuição (operador =): x = 5. Computação I - aula 5 - 2014/1 4 Variáveis – Nomes de Variáveis ● Letras, números e underline (não começar por números) ● minhaVariavel = 1 ● minha_variavel = 1 ● minhaVariavel2 = 2 ● minha_variavel_2 = 2 ● Dica: em programas muito grandes e complexos, escolha (se possível) nomes que descrevam o significado da variável. Exceto em programas muito simples ou exemplos didáticos, evite nomes genéricos como “x”, “y”, “a”, etc.. Computação I - aula 5 - 2014/1 5 Variáveis – Alias (Pseudônimo) ● É um identificador que se refere a uma variável existente. ● “y” é um alias para a variável “x”. Portanto, possui o mesmo valor e aponta para o mesmo endereço de “x”. Computação I - aula 5 - 2014/1 6 Variáveis – Alias (Pseudônimo) ● O que acontece se atribuirmos um novo valor a “x”? ● “y” permaneceu inalterada!! ● O que aconteceu foi algo bastante sutil (e bizarro): “x” é do tipo int, que é um tipo imutável (falaremos sobre isso mais tarde). ● Ao escrevermos “x = 5”, em vez de modificar a variável “x” já existente, simplesmente criamos outra variável com o nome “x” e atribuímos a ela o valor 5. A variável “x” antiga é jogada fora. ● Como “y” era um alias para a variável “x” antiga, seu valor permaneceu inalterado. Computação I - aula 5 - 2014/1 7 Variáveis – Tipo ● Python é uma linguagem dinamicamente tipada ou fracamente tipada. ● O tipo é atribuído de acordo com o valor atribuído à variável. Não é necessário declarar previamente o tipo. ● O tipo de uma variável pode mudar depois de alguma operação ou nova atribuição. Computação I - aula 5 - 2014/1 8 Variáveis – Escopo ● O escopo de uma variável refere-se aos “lugares” do programa em que ela é visível e pode ser utilizada. ● As variáveis definidas dentro de uma função são ditas variáveis locais, porque não podem ser acessadas fora da função. ● As variáveis “x” e “y” são locais, pois só existem dentro da função. Depois que a função é executada, elas são destruídas. ● Dizemos que a função é o escopo de “x” e “y”. ● Tentar chamá-las fora da função ocasionaria um erro. Computação I - aula 5 - 2014/1 9 Variáveis – Escopo ● As variáveis visíveis dentro de todo o programa são ditas variáveis globais. ● Se a variável foi criada fora de uma função, ela é global e está visível para todas as funções. ● Caso contrário, ela é local e está visível apenas dentro da função em que foi definida. Depois que a função for executada, suas variáveis locais serão destruídas. Computação I - aula 5 - 2014/1 10 Variáveis – Escopo ● Variáveis globais dentro de funções: Computação I - aula 5 - 2014/1 11 Variáveis – Mais detalhes... ● Atribuição múltipla: Computação I - aula 5 - 2014/1 12 Variáveis – Mais detalhes... ● Podemos fazer atribuição múltipla de aliases: Computação I - aula 5 - 2014/1 13 Variáveis – Mais detalhes... ● Podemos fazer swaps de aliases: Computação I - aula 5 - 2014/1 14 Strings Caracteres ● Caracteres são símbolos. Podem ser letras, números, caracteres especiais, e até o espaço em branco é um caractere. ● Exemplo: 'a', '9', '#', ' '. ● Todos os caracteres são codificados em números, de 0 a 255 (padrão ASCII). Computação I - aula 5 - 2014/1 15 Strings ● Uma string é uma sequência de caracteres. ● Strings são escritas usando aspas simples ou duplas. ● Exemplos: Computação I - aula 5 - 2014/1 16 Strings ● Comprimento de uma string: número de caracteres que ela contém. • O operador “+” pode ser usado para concatenar strings: Ex.: "aa"+"bb" é o mesmo que "aabb" Computação I - aula 5 - 2014/1 17 Strings Exercício Escreva uma função que receba como parâmetros o nome do usuário e sua idade, e retorne a frase: “Olá, meu nome é fulano e eu tenho x anos.”, onde fulano e x são, respectivamente, os valores do nome e da idade do usuário passados como parâmetros. Computação I - aula 5 - 2014/1 18 Strings Exercício Escreva uma função que receba como parâmetros o nome do usuário e sua idade, e retorne a frase: “Olá, meu nome é fulano e eu tenho x anos.”, onde fulano e x são, respectivamente, os valores do nome e da idade do usuário passados como parâmetros. def frase(nome,idade): return "Olá, meu nome é " + nome + " e eu tenho " + idade + " anos." Teste : frase(“João”,21) e frase(“João”,”21”) Computação I - aula 5 - 2014/1 19 Strings Exercício Reescreva a função anterior para que ela retorne na frase o dobro da idade fornecida como parâmetro. Por exemplo, para frase(“João”,”21”) a função deve retornar: “Olá meu nome é João e eu tenho 42 anos. ” Computação I - aula 5 - 2014/1 20 Strings Exercício Reescreva a função anterior para que ela retorne na frase o dobro da idade fornecida como parâmetro. Por exemplo, para frase(“João”,”21”) a função deve retornar: “Olá meu nome é João e eu tenho 42 anos. ” def frase1(nome,idade): return "Olá, meu nome é " + nome + " e eu tenho " + 2*idade + " anos." Computação I - aula 5 - 2014/1 21 Strings Exercício Reescreva a função anterior para que ela retorne na frase o dobro da idade fornecida como parâmetro. Por exemplo, para frase(“João”,”21”) a função deve retornar: “Olá meu nome é João e eu tenho 42 anos. ” def frase1(nome,idade): return "Olá, meu nome é " + nome + " e eu tenho " + 2*idade + " anos." >>> frase1(“João”,”21”): "Olá, meu nome é João e eu tenho 2121 anos." Computação I - aula 5 - 2014/1 22 Strings O operador “*” pode ser usado para repetir strings Exemplo: "a"*10 é o mesmo que "aaaaaaaaaa" Para converter um valor numérico em string, use a função str def frase1(nome,idade): return "Olá, meu nome é " + nome + " e eu tenho " + str(2*idade) + " anos." >>> frase1(“João”,21): "Olá, meu nome é João e eu tenho 42 anos." Observe que agora a idade é passada como um valor numérico. Computação I - aula 5 - 2014/1 23 Strings Exercício Usando as funções definidas em aula anterior para calcular as áreas da base, lateral e total de um cilindro reto, defina três funções que retornem respectivamente: “A área da base deste cilindro é valor“ “A área lateral deste cilindro é valor“ “A área total deste cilindro é valor“ sendo valor o valor retornado por cada uma das respectivas funções. Computação I - aula 5 - 2014/1 24 Strings Exercício - Resposta import math def areabase(r): return math.pi*r**2 def arealateral(r,h): return 2*r*h*math.pi def areatotal(r,h): return 2*areabase(r)+arealateral(r,h) def AB(r): return "A área da base deste cilíndro é " +str(areabase(r)) def AL(r,h): return "A área lateral deste cilíndro é " +str(arealateral(r,h)) def AT(r,h): return "A área total deste cilíndro é " +str(areatotal(r,h)) Computação I - aula 5 - 2014/1 25 Strings Exercício Faça uma função que dados 2 números retorna a mensagem: “ A média aritmética de x e y é m.”, onde x, y são os números dados, e m é a média calculada. 2. Faça uma função que dados dois nomes e duas, retorne os nomes,as idades e a média aritmética das idades. Use a função do exercício anterior. “Fulano tem x anos. Sicrano tem y anos. A média aritmética de x e y é m.” Computação I - aula 5 - 2014/1 26 Strings - Índices ● Todo caractere de uma string é indexado, começando do primeiro caractere (índice 0) à esquerda. ● Notação: string[indice] ● Exemplo: var = “Pedro dos Santos” var[2] : ‘d' var[9] : ' 'var[ var[15] : ‘s' Índice 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Var P e d r o d o s S a n t o s Computação I - aula 5 - 2014/1 27 Strings - Índices ● A string também pode ser indexada da direita para a esquerda, começando no índice -1. ● Notação: string[indice] ● Exemplo: var = “Pedro dos Santos” var[-14] : ‘d' var[-7] : ' 'v var[-1] : ‘s' Índice 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Var P e d r o d o s S a n t o s 28 Strings - Slices Separa trechos de uma string Notação: string[índice1:índice2] Retorna os caracteres desde o de índice1 até o de (índice2 – 1) Se índice1 é omitido, é assumido 0 Se índice2 é omitido, é assumido o fim da string Computação I - aula 5 - 2014/1 29 Strings - Slices Exemplo >>> x = 'abcde' >>> x[0:2] >>> x [2:] >>> x[:] >>> x[-1:] >>> x[:-1] Computação I - aula 5 - 2014/1 30 Strings - Slices Exemplo >>> x = 'abcde' >>> x[0:2] 'ab' >>> x [2:] 'cde' >>> x[:] 'abcde' >>> x[-1:] 'e' >>> x[:-1] 'abcd' Computação I - aula 5 - 2014/1 31 Strings - Slices Incremento: podemos usar incremento / decremento para selecionar os elementos de uma string. Exemplo >>> x= “abcde” >>> x[0:-1:2] >>> x[3:0:-1] Computação I - aula 5 - 2014/1 32 Strings - Slices Exemplo >>> x= ‘abcde’ >>> x[0:-1:2] ‘ac’ >>> x[3:0:-1] ‘dcb’ Computação I - aula 5 - 2014/1 33 Strings • Elementos de uma string não aceitam o operador de atribuição. • Strings são, portanto, imutáveis. Ou seja, os dados contidos em uma string não podem ser alterados. Computação I - aula 5 - 2014/1 34 Strings - Recapitulando • Representação: s = “12346” ou s = ‘123456’ • ord(caractere): retorna o número que codifica o caractere. • chr(número) : retorna o caractere associado ao número. • len(s) : retorna o tamanho de uma string. • Operador ‘+’: concatena strings. Ex: ‘ab’ + ‘cd’ = ‘abcd’ • Operador ‘*’: repete strings. Ex: ‘a’*5 = ‘aaaaa’ • Slices (Fatias): [start:end:step] Desafio: na string '123456', como você faria para mudar o elemento da posição 1 para '0', sem precisar reescrever toda a string? Computação I - aula 5 - 2014/1 35 Exercícios 1) Faça uma função que dado o nome de uma pessoa, retorne o tamanho do nome e a letra que começa o nome. 2) Faça uma função que dada uma palavra, retorna a palavra invertida. 3) Faça uma função que dada uma palavra, retorna os caracteres nas posições ímpares. 4) Faça uma função que recebe duas strings e recebe a concatenação delas, com exceção do primeiro caractere de cada uma. 5) Escreva uma função que receba uma string e retorne a concatenação de três cópias dos dois últimos caracteres. Exemplo, se a entrada for ‘abcd’, a saída deve ser ‘cdcdcd’. Computação I - aula 5 - 2014/1 Computação I - aula 5 - 2014/1 36 Aula 5 – Variáveis e Strings
Compartilhar