Baixe Python 04 Strings e outras Slides em PDF para Engenharia de Materiais, somente na Docsity!
Python:
strings
Rodrigo de Toledo
(adaptação do original do prof. Claudio Esperança)
Strings
- (^) São cadeias de caracteres
- (^) Constituem outro tipo fundamental do python
- (^) Constantes string são escritas usando aspas simples ou
duplas
- (^) Ex.: "string" ou 'string'
- (^) O operador “+” pode ser usado para concatenar strings
- (^) Ex.: "a"+"b" é o mesmo que "ab"
- (^) O operador * pode ser usado para repetir strings
- (^) Ex.: "a"*10 é o mesmo que "aaaaaaaaaa"
raw_input
• É semelhante ao input, mas não tenta
interpretar o que foi digitado como uma
expressão
- (^) O resultado é simplesmente uma string com o texto
digitado
- (^) Ex.:
nome = raw_input("Entre com o seu nome: ") Entre com o seu nome: Rodrigo de Toledo nome 'Rodrigo de Toledo‘
• Ou seja, use o RAW_INPUT para ler strings
(uma observação sobre o print)
• Se o comando terminar com vírgula, o próximo
print escreverá na mesma linha.
• Por exemplo:
>>> a, b = 0, 1
>>> while b < 1000:
... print b,
... a, b = b, a+b
Strings – Índices
- (^) Endereçam caracteres individuais de uma string
- (^) Notação: string [ índice ]
- (^) O primeiro caractere tem índice 0
- (^) O último caractere tem índice -
- (^) Ex.:
frase = “Esta eh uma frase!" frase[0] 'E' frase[-1] '!' frase[4] ' '
Percorrendo os caracteres de uma string
- (^) Para saber o tamanho de uma string, usa-se o comando
len()
- (^) Para percorrer, podemos usar o while (fica mais fácil
usar o comando for, como veremos mais tarde)
O que faz o programa abaixo?
letra = raw_input("Entre com uma letra: ") frase = raw_input("Entre com uma frase: ") cont = 0 i= while i<len(frase): if frase[i] == letra: cont+= i+= print cont
ASCII
- (^) Python usa a tabela de caracteres default do S.O.
- (^) Tabela descrevendo os 256 caracteres representáveis, de 0 a 255.
- (^) (1caracter = 1byte = 8 bits = 256).
- (^) Nela estão contidos:
- (^) Letras (maiúsculas ou minúsculas),
- (^) Algarismos,
- (^) Símbolos e
- (^) Caracteres especiais (enter, backspace, tabulação…)
- (^) Informações úteis sobre a tabela ASCII:
- (^) As letras minúsculas estão consecutivas em ordem alfabética.
- (^) As letras maiúsculas estão consecutivas em ordem alfabética.
- (^) Os algarismos estão consecutivos em ordem crescente.
caracteres especiais
- (^) Caracteres não imprimíveis podem ser expressos usando notação “barra-invertida” () - (^) \n é o mesmo que new line - (^) \t é o mesmo que tab - (^) \r é o mesmo que carriage return - (^) \b é o mesmo que backspace - (^) \ é o mesmo que __ - (^) \x41 caracter cujo código hexadecimal é 41 (“A” maiúsculo) >>> print "hello\nworld" hello world >>> print "hello\tworld" hello world >>> print "hello\bworld" helloworld >>> print "hello\rworld" helloworld >>> print "hello\world" hello\world >>> print "hello\x41world" helloAworld Não consegui que funcionassem no Shell do Python 2.7 (windows)
Strings
• A notação barra-invertida () pode ser
desabilitada desde que a constante string
seja precedida por um r (erre minúsculo)
– São chamadas strings raw (cruas)
– Ex.:
>>> print "abc\ncd\tef"
abc
cd ef
>>> print r"abc\ncd\tef"
abc\ncd\tef
Strings
• Constantes string podem ser escritas com várias
linhas desde que as aspas não sejam fechadas e
que cada linha termine com uma barra invertida
• Ex.:
print "abcd\n\
... efgh\n
... ijk" abcd efgh ijk
print "abcd
... efgh
... ijk" abcdefghijk
Exemplo
frase = raw_input("Entre com uma frase: ") minu, maiu, alga = 0,0, i= while i<len(frase): if "a" <= frase[i] <= "z": minu+= elif "A" <= frase[i] <= "Z": maiu+= elif "0" <= frase[i] <= "9": alga+= i+= print "Minusculas:", minu print "Maiusculas:", maiu print "Algarismos:", alga Leia uma string e conte o total de letras minúsculas, letras maiúsculas e algarismos.
Exercícios
- Leia uma string e retorne o número de palavras encontradas: a) Considere que serão entradas apenas letras e sempre um único espaço entre palavras b) Considere os caracteres ‘. ’, ‘ , ’, ‘ ; ’ como separadores de palavras, além do espaço em branco. c) Considere que cada palavra pode estar separada por um ou mais caracteres de espaço.
- Faça um programa que leia uma string e verifique se é um palíndrome, isto é, da esquerda para direita ou da direita para a esquerda têm-se a mesma seqüência de caracteres. Exemplos: ama, ovo, asa, erre, arara.
- DESAFIO:
- (^) Altere o programa anterior para que funcione considerando apenas as letras. Por exemplo, a frase “socorram-me, subi no onibus em marrocos” deve ser considerado uma palíndrome.
Strings – Fatias (slices)
a = 'abcde' a[0:2] 'ab' a [2:] 'cde' a[:] 'abcde' a[-1:] 'e' a[:-1] 'abcd' a [3:1] '' a [-1:-3] ''
Exemplo