MAW112 – Introdução à Computação Prof. Isac Mendes Lacerda [email protected] (08/2016 – 01/2017) 1 03 – Strings 2 Colaboradores • Danilo Freitas; • Janaína Gomide; • Isac Mendes. 3 Strings • Strings armazenam cadeias de caracteres como nomes e textos • Conjunto de caracteres delimitados por aspas simples ou duplas. >>> S1 = ´exemplo de String´ >>> S2 = “exemplo delimitado por aspas duplas” >>> S3 = “doesn’t” Observe que a aspa simples faz parte da string e não a delimita >>> S4 = ‘ela disse: “que lindo!” ’ Observe que a aspas duplas faz parte da string e não a delimita 4 Strings >>> S5 = ´doesn\´t´ Pode-se usar o caractere barra invertida (\) para indicar o uso do delimitador como parte da string. Neste caso, a aspa simples depois da barra não é delimitador, esta aspa simples que pertence a string. >>> S6 = ´Brasil´ >>> S7 = ´Terra’ >>> S8 = S6 + “ : “ + S7 + “ Abençoada” Concatenação de strings, através do operador +. O conteúdo de S8 será ‘Brasil : Terra Abençoada’ 6 Strings • O tamanho de uma string pode ser obtido utilizando-se a função len >>> print(len(“A”)) 1 >>> print(len(“AB”)) 2 >>> print(len(“”)) 0 >>> print(len(“O rato roeu a roupa”)) 19 7 Strings • Uma string é um conjunto caracteres e é possível acessar seu conteúdo caractere a caractere • Utiliza um número inteiro para representar a posição de cada caractere • Esse número é chamado de índice 8 Strings • Python manipula esta string em duas direções (da esquerda para a direita ou da direita para a esquerda) • O índice inicial da esquerda para a direita é zero (0) • O índice inicial da direita para a esquerda é menos 1 (-1) x= C O M 0 1 2 -10 -9 -8 P 3 -7 U 4 -6 T 5 -5 A 6 -4 D 7 -3 O 8 -2 R 9 -1 9 Strings • Para indicar o índice usamos um número entre colchetes [ ] x= C O M P U T A D O R 0 1 2 3 4 5 6 7 8 9 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 >>> print (x[0]) C >>> print (x[5]) T >>> print (x[-10]) C >>> print (x[-5]) T 10 Strings • Strings são imutáveis. Uma vez criada não pode ser alterada. >>> S1 = "abcdefg" >>> print S1[3] d >>> S1[3] = 'h' Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'str' object does not support item assignment Este comando acusará um erro, pois é uma tentativa de modificar uma string! 11 Operações com Strings • As variáveis do tipo string suportam operações como: – Fatiamento: utilizar apenas parte de uma string (uma fatia) – Concatenação: poder juntar duas ou mais strings em uma maior – Composição: utilizar strings como modelos onde podemos inserir outras strings 12 Strings Fatiamento Utilização de parte da string. Ao fatiar um string , usa-se a notação [n:m]. Onde n é a posição inicial (inclusivo) e m é a posição final (exclusivo). x= C O M P U T A D O R 0 1 2 3 4 5 6 7 8 9 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 >>> print (x[0:2]) >>> print(x[-4:-2]) CO >>> print (x[4:8]) UTAD AD >>> print(x[-10:-7]) COM 13 Strings Fatiamento A ausência dos parâmetros n ou m indica o uso da posição inicial ou final da string x= C O M P U T A D O R 0 1 2 3 4 5 6 7 8 9 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 >>> print (x[:8]) COMPUTAD >>> print (x[8:]) OR >>> print (x[:]) COMPUTADOR 14 Strings • O que é impresso? a) b) c) d) t h c n 15 Strings • O que é impresso? a) b) c) d) t h c n 16 Strings • O que é impresso? a) b) c) d) tr ps nn ck 17 Strings • O que é impresso? a) b) c) d) tr ps nn ck 18 Strings Concatenação Para concatenar duas strings, utilizamos o operador de adição (+) >>> s = “ABC” >>> print (s+”C”) ABCC >>> print (s+”ABC”) ABCABC 19 Strings Concatenação O operador de multiplicação (*) é utilizado quando queremos repetir a string várias vezes >>> s = “ABC” >>> print (s+”D”*4) ABCDDDD >>> print (“X"+”-”*10+”X”) X----------X 20 Strings • O que é impresso? a) b) c) d) python rocks python pythonrocks Python rocks 21 Strings • O que é impresso? a) b) c) d) python rocks python pythonrocks Python rocks 22 Strings • O que é impresso? a) b) c) d) python!!! python!python!python! pythonpythonpython! !!!python 23 Strings • O que é impresso? a) b) c) d) python!!! python!python!python! pythonpythonpython! !!!python 24 Strings Composição • Quando se deseja escrever “João tem X anos”, onde X é uma variável numérica • Usando a composição em Python, podemos escrever: “João tem %d anos” % X • O símbolo % é utilizado para indicar a composição da string anterior com o conteúdo da variável X 25 Strings Composição • Python suporta diversas operações com marcadores Marcador Tipo %d Números inteiros %s Strings %f Números decimais >>> nome = “João” >>> idade = 22 >>> grana = 51.34 >>> print (”%s tem %d anos e R$%f no bolso.” % (nome,idade,grana)) João tem 22 anos e R$51.340000 no bolso. 26 Strings Composição • Como representar um número como 001 ou 002, mas que também pode ser algo como 050 ou 561? • Podemos utilizar “%03d” %X • Se não desejar 0s a esquerda basta utilizar “%3d” % X >>> idade = 22 >>> print (”[%d]” % idade) [22] >>> print (”[%03d]” % idade) [022] >>> print (”[%3d]” % idade) [ 22] >>> print (”[%-3d]” % idade) [22 ] 27 Strings Composição • • • Para formatar números decimais, podemos utilizar 2 valores entre os símbolos de % e a letra f O primeiro indica o tamanho total em caracteres a reservar, e o segundo, o número de casas decimais. Ex: %5.2f imprime um número decimal utilizando 5 posições, sendo que 2 são para a parte decimal >>> print (”%5.2f” % 5) 5.00 >>> print (”%10.5f” % 5) 5.00000 28 Strings • Os caracteres não imprimíveis (expressos usando notação “barra-invertida” (\)) podem compor uma string. o \n é o mesmo que new line o \t é o mesmo que tab o \\ é o mesmo que \ 29 Strings 30 Strings • É possível escrever constantes string em várias linhas incluindo as quebras de linha usando três aspas (simples ou duplas) como delimitadores 31 Métodos String • Manipulação de string é uma atividade frequente em programas Python • Existem diversas funcionalidades prontas para trabalhar com string 32 Métodos String count(item) – retorna o número de ocorrências do item replace(old,new) – substitui todas as ocorrências da substring velha pela nova 33 Métodos String find(item) – retorna o índice mais a esquerda que a substring foi encontrada rfind(item) – retorna o índice mais a direita que a substring foi encontrada 34 Métodos String len(string) – retorna o tamanho da string, ou seja, o número de caracteres que ela tem 35 Métodos String count(item) – retorna o número de ocorrências do item replace(old,new) – substitui todas as ocorrências da substring velha pela nova find(item) – retorna o índice mais a esquerda que a substring foi encontrada rfind(item) len(string) – retorna o tamanho da string 36 Métodos String • que é impresso? a) 0 b) 2 c) 3 37 Métodos String • que é impresso? a) 0 b) 2 c) 3 38 Métodos String • que é impresso? a) b) c) d) 0 -1 1 Erro 39 Métodos String • que é impresso? a) b) c) d) 0 -1 1 Erro 40 Comparação de String • Para comparar duas strings utilizamos os operadores a seguir: Comparações Igual (==) Diferente (!=) Maior (>) Menor (<) Maior ou igual (>=) Menor ou igual (<=) 41 Comparação de String • A comparação segue a ordem da tabela ASCII: 17:16:03 Janaína Gomide & Danilo Freitas 42 Comparação de String 43 Comparação de String 44 Comparação de String • que é impresso? a) True b) False 45 Comparação de String • que é impresso? a) True b) False 46 Comparação de String • que é impresso? a) True b) False 47 Comparação de String • que é impresso? a) True b) False 48 Comparação de String • que é impresso? a) True b) False 49 Comparação de String • que é impresso? a) True b) False 50 Comentários em Programa • É muito importante comentar o código de um programa, para que em manutenções futuras o mesmo seja de fácil entendimento. • Em Python existem 3 formas de gerar estes comentários : – Comentários em uma linha; – Comentários em múltiplas linhas; – Comentários ao lado dos comandos ou instruções. 51 Comentários em Programa • Para fazer comentários em uma única linha, deve-se colocar o caractere # (tralha) na primeira coluna e escrever o comentário em seguida. >>> # Calculando Imposto de Renda • Para fazer comentários ao lado de um comando, deve-se colocar o caractere # (tralha) após o comando desejado. >>> total = total + x # somando o valo de x a variável total 52 Comentários em Programa • Para múltiplas linhas de comentários deve-se colocar 3 aspas na primeira coluna das linhas limítrofes dos comentários. Entre estas linhas digita-se quantas linhas de comentários forem necessários. "“” Este programa possui múltiplas linhas de comentários. Os comentários são iniciados com 3 aspas E devem terminar com 3 aspas Desta forma você documenta o que quiser no seu programa, Tornando-o fácil de entender e de lembrar """ 53 MAW112 – Introdução à Computação Prof. Isac Mendes Lacerda [email protected] (08/2016 – 01/2017) 54