Computação I - Python Aula 1 - Teórica: Manipulação de Strings, Tuplas e Listas João C. P. da Silva Carla A. D. M. Delgado Ana Luisa Duboc Dept. Ciência da Computação - UFRJ http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 1 / 35
Manipulação de Strings Para obter ajuda a respeito de um tipo de dado, digite help(tipo). Por exemplo: help(str) para obter ajuda sobre strings, help(int) para ajuda sobre inteiros, etc. Existem várias funções disponíveis para executar diferentes tarefas com strings. A sintaxe para estas funções é: str. nomefunção (umastring, parâmetros ) Exemplo 1 >>> str. upper( abcde ) 2 ABCDE http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 2 / 35
Manipulação de Strings lower(): retorna a string com todos os caracteres maiúsculos convertidos para minúsculos. upper(): retorna a string com todos os caracteres minúsculos convertidos para maiúsculos. Exemplo 1 >>> str. upper( Esperanca ) 2 ESPERANCA 3 4 >>> str. lower ( Pe de Laranja Lima ) 5 pe de laranja lima http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 3 / 35
Manipulação de Strings str.count(umastring, elemento, inicio, fim): retorna quantas vezes o elemento aparece na string, procurando-se a partir da posição inicio e indo até a posição fim. inicio e fim são opcionais. Exemplo 1 >>> frase= macaco come banana 2 >>> str. count(frase, a, 2, 10) 3 >>> 1 http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 4 / 35
Manipulação de Strings str.index(umastring,elemento, inicio, fim): retorna o índice da primeira ocorrência de elemento na string, a partir da posição inicio, até a posição fim. inicio e fim são opcionais. Exemplo 1 >>> str. index( mariana, a ) 2 3 >>> str. index( mariana, a, 2) 4 5 >>> str. index( mariana, a,5, 7) 6 7 >>> str. index( Mariana, ana ) 8 9 >>> str. index( Mariana, x ) http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 5 / 35
Manipulação de Strings str.index(umastring,elemento, inicio, fim): retorna o índice da primeira ocorrência de elemento na string, a partir da posição inicio, até a posição fim. inicio e fim são opcionais. Exemplo 1 >>> str. index( mariana, a ) 2 1 3 >>> str. index( mariana, a, 2) 4 4 5 >>> str. index( mariana, a,5, 7) 6 6 7 >>> str. index( Mariana, ana ) 8 4 9 >>> str. index( Mariana, x ) 10 Traceback (most recent call last ) : 11 File <pyshell#1>, line 1, in <module> 12 str. index( Mariana, x ) 13 ValueError : substring not found http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 6 / 35
Formatação de Strings str.format(formatstring, p0, p1,..., ), retorna uma string formatada segundo a formatstring, contendo os dados indicados em p0, p1,... http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 7 / 35
Formatação de Strings str.format(formatstring, p0, p1,..., ), retorna uma string formatada segundo a formatstring, contendo os dados indicados em p0, p1,... 1 >>> str. format ( A soma de {0} e {1} eh {2}, 2, 3, 2+3) 2 # entre {} estao os indices dos valores que devem ser mostrados. 3 A soma de 2 e 3 eh 5 http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 7 / 35
Formatação de Strings str.format(formatstring, p0, p1,..., ), retorna uma string formatada segundo a formatstring, contendo os dados indicados em p0, p1,... 1 >>> str. format ( A soma de {0} e {1} eh {2}, 2, 3, 2+3) 2 # entre {} estao os indices dos valores que devem ser mostrados. 3 A soma de 2 e 3 eh 5 A string de formato (formatstring) é uma string contendo um ou mais códigos (que indicam campos a serem substituídos) inseridos em texto; Os campos a serem substituídos são códigos que aparecem entre { }. Tudo o que estiver entre essas chaves será substituído por um valor; Qualquer outra coisa que apareça na string de formato será copiada para a string de retorno; p0,p1,... são parâmetros posicionais. Eles indicarão que valor será inserido na string de formato, no lugar indicado pelos { }. http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 7 / 35
Formatação de Strings str.format(formatstring, p0, p1,..., ), retorna uma string formatada segundo a formatstring, contendo os dados indicados em p0, p1,... Os parâmetros p1,p2,... são inseridos na string de formato nas respectivas posições entre chaves 1 >>> str. format ( A soma de {0} e {1} eh {2}, 2, 3, 2+3) 2 # entre {} estao os indices dos valores que devem ser mostrados. 3 A soma de 2 e 3 eh 5 4 5 >>> str. format ( A soma de {1} e {2} eh {3}, 2, 3, 2+3) 6 # lembrando que o primeiro indice eh zero! 7 Traceback (most recent call last ) : 8 File <ipython input 44 287c69f8968c>, line 1, in <module> 9 str. format ( A soma de {1} e {2} eh {3}, 2, 3, 2+3) 10 IndexError : tuple index out of range http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 8 / 35
Formatação de Strings str.format(formatstring, p0, p1,..., ), retorna uma string formatada segundo a formatstring, contendo os dados indicados em p0, p1,... 1 >>> str. format( {2} eh a soma de {0} e {1}, 2, 3, 2+3) 2 # entre {} estao os indices dos valores que devem ser mostrados. 3 5 eh a soma de 2 e 3 Podemos omitir os índices dos dados dentro das chaves caso apareçam na mesma ordem nos argumentos. 1 >>> str. format( A soma de {} e {} eh {}, 2, 3, 2+3) 2 A soma de 2 e 3 eh 5 http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 9 / 35
Formatação de Strings str.format(formatstring, p0, p1,..., ), retorna uma string formatada segundo a formatstring, contendo os dados indicados em p0, p1,... São usados códigos específicos para definir o formato dos dados a serem inseridos na string. 1 >>> str. format ( A soma de {0:3d} e {1:3d} eh {2:5d}, 200, 37, 200+37) 2 #formato {indice : codigo de formatacao } 3 # d > inteiro no formato decimal 4 # {Nd} N eh um numero que indica quantos digitos 5 A soma de 200 e 37 eh 237 6 7 >>> str. format ( A soma de {0:3.2 f} e {1:3.3 f} eh {2:3.4 f}, 2, 37.005, 2+37.005) 8 #formato {indice : codigo de formatacao } 9 # f > float, 10 # {numero1. numero2f} indica digitos da parte inteira e da parte fracionaria 11 A soma de 2.00 e 37.005 eh 39.0050 http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 10 / 35
Formatação de Strings str.format(formatstring, p0, p1,..., ), retorna uma string formatada segundo a formatstring, contendo os dados indicados em p0, p1,... Todos os dados float abaixo foram formatados com o código {6.2f} Figure: Exemplos de códigos de formatação para floats. Fonte: www.python-course.eu http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 11 / 35
Tuplas Uma tupla é uma sequência heterogênea (permite que seus elementos sejam de tipos diferentes): 1 >>> a = (1,2,3,4) 2 >>> b = (1.0, 2, 3, 4+0j ) 3 >>> c = 1,2,3,4 4 >>> d = (1,) Valores em uma tupla podem ser distribuídos em variáveis como uma atribuição múltipla: 1 >>> x = 1, 2, 3 2 >>> x 3 (1, 2, 3) 4 >>> a, b, c = x 5 >>> a 6 1 7 >>> b 8 2 9 >>> c 10 3 http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 12 / 35
Tuplas Tupla Vazia: tupla sem elementos. Tupla unitária: contém um único elemento, que deve ser sucedido por uma vírgula. Os parênteses são opcionais se não provocarem ambiguidade. Um valor entre parênteses sem vírgula no final é meramente uma expressão. Qual o tipo de dado da variável A em cada um dos casos abaixo: 1 >>> A = () 2 3 >>> A = (10) 4 5 >>> A = 10, 6 7 >>> A = (10,) 8 9 >>> A = 3 (10+3) 0 1 >>> A = 3 (10+3,) http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 13 / 35
Tuplas Tupla Vazia: tupla sem elementos. Tupla unitária: contém um único elemento, que deve ser sucedido por uma vírgula. Os parênteses são opcionais se não provocarem ambiguidade. Um valor entre parênteses sem vírgula no final é meramente uma expressão. Qual o tipo de dado da variável A em cada um dos casos abaixo: 1 >>> A = () 2 () # tupla vazia 3 >>> A = (10) 4 10 # inteiro 5 >>> A = 10, 6 (10,) # tupla u n i t r i a 7 >>> A = (10,) 8 (10,) # tupla u n i t r i a 9 >>> A = 3 (10+3) 0 39 # inteiro 1 >>> A = 3 (10+3,) 2 (13, 13, 13) # tupla http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 14 / 35
Tuplas Tuplas são muito similares às strings em relação às operações. O tamanho de uma tupla é dado pela função len. 1 >>> x = (1,2,3) 2 >>> len(x) 3 3 Indexação: começando do 0 à esquerda, ou de -1 à direita. 1 >>> x [0] 2 1 Fatiamento: idêntico às strings. 1 >>> x [0:2] 2 (1,2) # NOVA TUPLA http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 15 / 35
Tuplas Concatenação e Replicação 1 >>> x 2 2 (1,2,3,1,2,3) 3 >>> x + (5,4) 4 (1,2,3,5,4) Imutabilidade : uma vez criada, uma tupla não pode ser alterada! 1 >>> x [0] = 9 2 Traceback (most recent call last ) : 3 File <pyshell#2>, line 1, in <module> 4 x[0]=9 5 TypeError : tuple object does not support item assignment http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 16 / 35
Tuplas Joãozinho quer comprar o maior número de bombons possível com o dinheiro que tem. Faça funções para: a. calcular o número de bombons e o troco, dados o dinheiro e o preço de um bombom. http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 17 / 35
Tuplas Joãozinho quer comprar o maior número de bombons possível com o dinheiro que tem. Faça funções para: a. calcular o número de bombons e o troco, dados o dinheiro e o preço de um bombom. 1 def bombom( dinheiro, preco) : 2 3 Os parametros de entrada sao do tipo ( float, float ). 4 O valor de retorno e do tipo tupla ( float, float ) 5 6 return dinheiro // preco, dinheiro % preco http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 17 / 35
Tuplas Joãozinho quer comprar o maior número de bombons possível com o dinheiro que tem. Faça funções para: a. calcular o número de bombons e o troco, dados o dinheiro e o preço de um bombom. 1 def bombom( dinheiro, preco) : 2 3 Os parametros de entrada sao do tipo ( float, float ). 4 O valor de retorno e do tipo tupla ( float, float ) 5 6 return dinheiro // preco, dinheiro % preco b. calcular quanto Joãozinho terá que pedir para sua mãe para comprar um bombom a mais, dados o dinheiro que ele tem e o preço de um bombom. Utilize a função definida em a. http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 17 / 35
Tuplas Joãozinho quer comprar o maior número de bombons possível com o dinheiro que tem. Faça funções para: a. calcular o número de bombons e o troco, dados o dinheiro e o preço de um bombom. 1 def bombom( dinheiro, preco) : 2 3 Os parametros de entrada sao do tipo ( float, float ). 4 O valor de retorno e do tipo tupla ( float, float ) 5 6 return dinheiro // preco, dinheiro % preco b. calcular quanto Joãozinho terá que pedir para sua mãe para comprar um bombom a mais, dados o dinheiro que ele tem e o preço de um bombom. Utilize a função definida em a. 1 def maisbombom ( dinheiro, preco) : 2 3 Os parametros de entrada sao do tipo ( float, float ). 4 O valor de retorno e do tipo float 5 6 return preco bombom( dinheiro, preco) [1] Testes: bombom(10,3) e maisbombom(10,3) http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 17 / 35
Tuplas a. Escreva uma função que recebe uma tupla e retorna True se o primeiro elemento for igual ao último elemento da tupla. http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 18 / 35
Tuplas a. Escreva uma função que recebe uma tupla e retorna True se o primeiro elemento for igual ao último elemento da tupla. 1 def igual if (tup) : 2 3 Funcao que retorna True se o inicio de uma tupla e igual ao seu final. 4 O parametros de entrada e do tipo tupla. 5 O valor de retorno e do tipo booleano. 6 7 return tup [0] = = tup[ 1] http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 18 / 35
Tuplas a. Escreva uma função que recebe uma tupla e retorna True se o primeiro elemento for igual ao último elemento da tupla. 1 def igual if (tup) : 2 3 Funcao que retorna True se o inicio de uma tupla e igual ao seu final. 4 O parametros de entrada e do tipo tupla. 5 O valor de retorno e do tipo booleano. 6 7 return tup [0] = = tup[ 1] b. Escreva uma função inverte que recebe uma tupla de três elementos e retorna uma nova tupla com os elementos na ordem reversa. http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 18 / 35
Tuplas b. Escreva uma função inverte que recebe uma tupla de três elementos e retorna uma nova tupla com os elementos na ordem reversa. 1 def inverte (tup) : 2 3 Funcao que inverte elementos de uma tupla de tamanho 3. 4 O parametros de entrada e uma tupla de tamanho 3. 5 O valor de retorno e uma tupla de tamanho 3. 6 7 return tup [2], tup [1], tup [0] 1 def inverte (tup) : 2 3 Funcao que inverte elementos de uma tupla de tamanho 3. 4 O parametros de entrada e uma tupla de tamanho 3. 5 O valor de retorno e uma tupla de tamanho 3. 6 7 return tup [:: 1] http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 19 / 35
Tuplas Exercícios c. Escreva a função intercala que recebe duas tuplas de três elementos cada e retorna uma tupla de seis elementos intercalando as duas tuplas. d. Escreva a função opera que recebe uma tupla com uma string e dois números; se a string for SOMA, retorna a soma dos dois números, se for MULT, retorna a multiplicação, se for DIV, retorna a divisão, se for SUB, retorna a subtração, se não for nenhuma das anteriores retorna None. http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 20 / 35
Listas Tipo de dados mais versátil do Python. Uma lista é representada como uma sequência de valores entre colchetes e separados por vírgula. Exemplo Os elementos de uma lista podem ser de tipos de dados diferentes. Listas são mutáveis!!! 1 >>> lista1 = [ calculo, fisica, computacao ] 2 >>> lista2 = [ notas, 5.4, aprovado ] 3 >>> lista2 [1] = 6 4 >>> lista2 5 [ notas, 6, aprovado ] http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 21 / 35
Listas Exemplo Atenção: Uma lista vazia não contém nenhum elemento 1 >>> lista3 = [ ] 2 >>> lista3 [0] 3 Traceback (most recent call last ) : 4 File <pyshell#18>, line 1, in <module> 5 lista3 [0] 6 IndexError : list index out of range http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 22 / 35
Listas 1 >>> c=[ 45, 6, 3, 0, 1, 19, 32, 23, 12, 5, 3, 8, 2] 2 >>> c [3] 3 0 4 >>> c[9]==c[ 4] 5 True 6 >>> len (c) 7 13 http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 23 / 35
Listas 1 >>> [1,2] + [3] 2 3 >>> [1,2] + [[3]] 4 5 >>> [[1,2]] + [[3]] 6 7 >>> [1,2] 3 http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 24 / 35
Listas 1 >>> [1,2] + [3] # Concatenando Listas 2 [1, 2, 3] 3 4 >>> [1,2] + [[3]] 5 [1, 2, [3]] 6 7 >>> [[1,2]] + [[3]] 8 [[1, 2], [3]] 9 0 >>> [1,2] 3 # Equivale a [1,2]+[1,2]+[1,2] 1 [1, 2, 1, 2, 1, 2] http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 25 / 35
Listas 1 >>> [1,2] [3] 2 3 >>> [1,2] [3] Como retirar um elemento de uma lista? Aguarde http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 26 / 35
Listas 1 >>> [1,2] [3] 2 Traceback (most recent call last ) : 3 File <pyshell#35>, line 1, in <module> 4 [1,2] [3] 5 TypeError : cant multiply sequence by non int of type list 6 7 >>> [1,2] [3] 8 Traceback (most recent call last ) : 9 File <pyshell#37>, line 1, in <module> 0 [1,2] [2] 1 TypeError : unsupported operand type (s) for : list and l ist Como retirar um elemento de uma lista? Aguarde http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 27 / 35
Listas Faça uma função que receba duas listas como entrada e retorne a concatenação destas listas. http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 28 / 35
Listas Faça uma função que receba duas listas como entrada e retorne a concatenação destas listas. 1 def concatenalistas (Lista1, Lista2 ) : 2 3 Funcao que dadas duas listas, retorna a concatenacao das listas. 4 O parametros de entrada sao list, list. 5 O valor de retorno e l ist. 6 7 return Lista1+Lista2 1 >>> concatenalistas([1,2,3],[4,5,6]) 2 [1,2,3,4,5,6] http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 28 / 35
Listas Faça uma função que dado um número inteiro como entrada, retorne uma lista com todos os números pares entre 1 e o número dado, inclusive. http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 29 / 35
Listas A função range(...) pode ter 1, 2 ou 3 argumentos: range(numero): retorna uma lista contendo uma sequência de valores de 0 a numero-1 1 >>> list (range (10)) 2 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] range(inf,sup): retorna uma lista contendo uma sequência de valores de inf a sup-1 1 >>> list (range (3, 8)) 2 [3, 4, 5, 6, 7] range(inf, sup, inc): retorna uma lista contendo uma sequência de valores de inf a sup-1 com incremento de inc 1 >>> list (range (3, 8, 2)) 2 [3, 5, 7] http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 30 / 35
Listas ATENÇÃO: A função range(...) começa com zero São equivalentes: Exemplos range(10) range(0,10) range(0,10,1) 1 >>> l ist (range (3)) 2 3 >>> l ist (range (2,5,2) ) 4 5 >>> l ist (range(5,2, 2)) http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 31 / 35
Listas ATENÇÃO: A função range(...) começa com zero São equivalentes: Exemplos range(10) range(0,10) range(0,10,1) 1 >>> l ist (range (3)) 2 [0,1,2] 3 >>> l ist (range (2,5,2) ) 4 [2,4] 5 >>> l ist (range(5,2, 2)) 6 [5,3] http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 32 / 35
Listas Faça uma função que dado um número inteiro como entrada, retorne uma lista com todos os números pares entre 1 e o número dado, inclusive. http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 33 / 35
Listas Faça uma função que dado um número inteiro como entrada, retorne uma lista com todos os números pares entre 1 e o número dado, inclusive. 1 def lista (n) : 2 3 Funcao que dado um numero inteiro, retorna uma lista com todos os numeros pares entre 1 e o numero dado, inclusive. 4 O parametros de entrada e um int. 5 O valor de retorno e uma lista. 6 7 return range (2,n+1,2) 1 >>> lista (5) 2 [2,4] 3 4 >>> lista (6) 5 [2,4,6] http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 33 / 35
Listas - Exercícios 1. Faça uma função que dada uma lista com 5 notas, retorne a média das notas. 2. Faça uma função que, dados dois inteiros x e y, retorna uma lista com todos os valores entre x e y (inclusive), funcionando tanto para x <= y como para x > y. Exemplos x = 2, y = 6, resultado = [2, 3, 4, 5, 6] x = 10, y = 7, resultado = [10, 9, 8, 7] 3. Faça uma função que dadas duas listas de 3 numeros, representando dois vetores no espaço R 3, retorna uma lista que represente a soma destes dois vetores. Exemplo Lista1 = [1,4,6] Lista2 = [2,4,3] Lista resultante = [3,8,9] http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 34 / 35
Autores João C. P. da Silva Lattes Carla Delgado Ana Luisa Duboc Lattes Lattes Colaboradores Anamaria Martins Moreira Lattes Fabio Mascarenhas Lattes Leonardo de Oliveira Carvalho Charles Figueiredo de Barros Lattes Lattes Fabrício Firmino de Faria Lattes http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 35 / 35
Computação I - Python Aula 1 - Teórica: Manipulação de Strings, Tuplas e Listas João C. P. da Silva Carla A. D. M. Delgado Ana Luisa Duboc Dept. Ciência da Computação - UFRJ http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 5 36 / 35