Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> python

Dominando Strings em Python: Criação, Acesso e Manipulação

Página Anterior Próxima Página  

Strings estão entre os tipos mais populares em Python. Podemos criá-las simplesmente colocando caracteres entre aspas. O Python trata aspas simples da mesma forma que aspas duplas. Criar strings é tão simples quanto atribuir um valor a uma variável. Por exemplo:

 var1 = 'Hello World!' var2 = "Python Programming" 

Acedendo a Valores em Strings

O Python não suporta um tipo caractere; estes são tratados como strings de comprimento um, assim também considerados uma substring.

Para aceder a substrings, use colchetes para fatiar junto com o índice ou índices para obter a sua substring. Por exemplo:

Live Demo
 #!/usr/bin/python var1 = 'Hello World!' var2 = "Python Programming" print "var1[0]: ", var1[0] print "var2[1:5]: ", var2[1:5] 

Quando o código acima é executado, produz o seguinte resultado:

 var1[0]: H var2[1:5]: ytho 

Atualizando Strings

Pode "atualizar" uma string existente (re)atribuindo uma variável a outra string. O novo valor pode estar relacionado com o seu valor anterior ou a uma string completamente diferente. Por exemplo:

Live Demo
 #!/usr/bin/python var1 = 'Hello World!' print "Updated String :- ", var1[:6] + 'Python' 

Quando o código acima é executado, produz o seguinte resultado:

 Updated String :- Hello Python 

Caracteres de Escape

A tabela seguinte é uma lista de caracteres de escape ou não imprimíveis que podem ser representados com notação de barra invertida.

Um caractere de escape é interpretado; numa string com aspas simples assim como aspas duplas.

Notação de barra invertida Caractere hexadecimal Descrição
\a 0x07 Bell ou alerta
\b 0x08 Backspace
\cx   Control-x
\C-x   Control-x
\e 0x1b Escape
\f 0x0c Formfeed
\M-\C-x   Meta-Control-x
\n 0x0a Nova linha
\nnn   Notação octal, onde n está no intervalo 0.7
\r 0x0d Retorno de carro
\s 0x20 Espaço
\t 0x09 Tab
\v 0x0b Tab vertical
\x   Caractere x
\xnn   Notação hexadecimal, onde n está no intervalo 0.9, a.f, ou A.F

Operadores Especiais de String

Assuma que a variável string a contém 'Hello' e a variável b contém 'Python', então:

Operador Descrição Exemplo
+ Concatenação - Adiciona valores em ambos os lados do operador a + b dará HelloPython
* Repetição - Cria novas strings, concatenando múltiplas cópias da mesma string a*2 dará -HelloHello
[] Fatia - Dá o caractere do índice dado a[1] dará e
[ : ] Fatia de Intervalo - Dá os caracteres do intervalo dado a[1:4] dará ell
in Pertinência - Retorna verdadeiro se um caractere existe na string dada H in a dará 1
not in Pertinência - Retorna verdadeiro se um caractere não existe na string dada M not in a dará 1
r/R String Raw - Suprime o significado real dos caracteres de escape. A sintaxe para strings raw é exatamente a mesma que para strings normais com a exceção do operador de string raw, a letra "r," que precede as aspas. O "r" pode ser minúsculo (r) ou maiúsculo (R) e deve ser colocado imediatamente antes da primeira aspa. print r'\n' imprime \n e print R'\n'imprime \n
% Formatação - Realiza formatação de string Ver na próxima secção

Operador de Formatação de String

Uma das funcionalidades mais fixes do Python é o operador de formatação de string %. Este operador é único para strings e compensa a falta de funções da família printf() do C. Segue um exemplo simples:

Live Demo
 #!/usr/bin/python print "My name is %s and weight is %d kg!" % ('Zara', 21) 

Quando o código acima é executado, produz o seguinte resultado:

 My name is Zara and weight is 21 kg! 

Aqui está a lista do conjunto completo de símbolos que podem ser usados junto com %:

Símbolo de Formato Conversão
%c caractere
%s conversão string via str() antes de formatar
%i inteiro decimal com sinal
%d inteiro decimal com sinal
%u inteiro decimal sem sinal
%o inteiro octal
%x inteiro hexadecimal (letras minúsculas)
%X inteiro hexadecimal (letras MAIÚSCULAS)
%e notação exponencial (com 'e' minúsculo)
%E notação exponencial (com 'E' MAIÚSCULO)
%f número real de ponto flutuante
%g o mais curto de %f e %e
%G o mais curto de %f e %E

Outros símbolos suportados e funcionalidades estão listados na tabela seguinte:

Símbolo Funcionalidade
* argumento especifica largura ou precisão
- justificação à esquerda
+ exibir o sinal
<sp> deixar um espaço em branco antes de número positivo
# adicionar zero inicial octal ( '0' ) ou '0x' ou '0X' hexadecimal inicial, dependendo se 'x' ou 'X' foram usados.
0 preencher à esquerda com zeros (em vez de espaços)
% '%%' deixa você com um único '%' literal
(var) variável de mapeamento (argumentos de dicionário)
m.n. m é a largura total mínima e n é o número de dígitos a exibir após o ponto decimal (se aplicável)

Aspas Triplas

As aspas triplas do Python vêm em socorro ao permitir que strings abranjam múltiplas linhas, incluindo NEWLINEs, TABs verbatim e quaisquer outros caracteres especiais.

A sintaxe para aspas triplas consiste em três aspas simples ou duplas consecutivas.

Live Demo
 #!/usr/bin/python para_str = """this is a long string that is made up of several lines and non-printable characters such as TAB ( \t ) and they will show up that way when displayed. NEWLINEs within the string, whether explicitly given like this within the brackets [ \n ], or just a NEWLINE within the variable assignment will also show up. """ print para_str 

Quando o código acima é executado, produz o seguinte resultado. Note como cada caractere especial foi convertido para a sua forma impressa, até ao último NEWLINE no final da string entre "up." e as aspas triplas de fecho. Note também que NEWLINEs ocorrem quer com um retorno de carro explícito no fim de uma linha ou o seu código de escape (\n):

 this is a long string that is made up of several lines and non-printable characters such as TAB ( ) and they will show up that way when displayed. NEWLINEs within the string, whether explicitly given like this within the brackets [ ], or just a NEWLINE within the variable assignment will also show up. 

Strings raw não tratam a barra invertida como caractere especial. Todo o caractere que colocar numa string raw fica como o escreveu:

Live Demo
 #!/usr/bin/python print 'C:\\nowhere' 

Quando o código acima é executado, produz o seguinte resultado:

 C:\nowhere 

Agora vamos usar string raw. Colocaríamos a expressão em r'expression' da seguinte forma:

Live Demo
 #!/usr/bin/python print r'C:\\nowhere' 

Quando o código acima é executado, produz o seguinte resultado:

 C:\\nowhere 

String Unicode

Strings normais em Python são armazenadas internamente como ASCII de 8-bit, enquanto strings Unicode são armazenadas como Unicode de 16-bit. Isso permite um conjunto de caracteres mais variado, incluindo caracteres especiais da maioria das línguas do mundo. Restringirei o meu tratamento de strings Unicode ao seguinte:

Live Demo
 #!/usr/bin/python print u'Hello, world!' 

Quando o código acima é executado, produz o seguinte resultado:

 Hello, world! 

Como pode ver, strings Unicode usam o prefixo u, tal como strings raw usam o prefixo r.

Métodos Built-in de String

O Python inclui os seguintes métodos built-in para manipular strings:

Sr.No. Métodos com Descrição
1 capitalize()

Capitaliza a primeira letra da string

2 center(width, fillchar)

Retorna uma string preenchida com espaços com a string original centrada num total de colunas width.

3 count(str, beg= 0,end=len(string))

Conta quantas vezes str ocorre na string ou numa substring se índice inicial beg e índice final end forem dados.

4 decode(encoding='UTF-8',errors='strict')

Decodifica a string usando o codec registado para encoding. encoding defaults to the default string encoding.

5 encode(encoding='UTF-8',errors='strict')

Retorna versão codificada da string; em erro, default é levantar ValueError a menos que errors seja dado com 'ignore' ou 'replace'.

6 endswith(suffix, beg=0, end=len(string))

Determina se string ou substring (se índice inicial beg e índice final end forem dados) termina com sufixo; retorna verdadeiro se sim e falso caso contrário.

7 expandtabs(tabsize=8)

Expande tabs na string para múltiplos espaços; default 8 espaços por tab se tabsize não fornecido.

8 find(str, beg=0 end=len(string))

Determina se str ocorre na string ou substring se índice inicial beg e índice final end forem dados retorna índice se encontrado e -1 caso contrário.

9 index(str, beg=0, end=len(string))

Igual a find(), mas levanta exceção se str não encontrado.

10 isalnum()

Retorna verdadeiro se string tem pelo menos 1 caractere e todos caracteres são alfanuméricos e falso caso contrário.

11 isalpha()

Retorna verdadeiro se string tem pelo menos 1 caractere e todos caracteres são alfabéticos e falso caso contrário.

12 isdigit()

Retorna verdadeiro se string contém apenas dígitos e falso caso contrário.

13 islower()

Retorna verdadeiro se string tem pelo menos 1 caractere com caso e todos caracteres com caso estão em minúsculas e falso caso contrário.

14 isnumeric()

Retorna verdadeiro se string unicode contém apenas caracteres numéricos e falso caso contrário.

15 isspace()

Retorna verdadeiro se string contém apenas caracteres de espaço em branco e falso caso contrário.

16 istitle()

Retorna verdadeiro se string é propriamente "titlecased" e falso caso contrário.

17 isupper()

Retorna verdadeiro se string tem pelo menos um caractere com caso e todos caracteres com caso estão em maiúsculas e falso caso contrário.

18 join(seq)

Funde (concatena) as representações string de elementos na sequência seq numa string, com string separadora.

19 len(string)

Retorna o comprimento da string

20 ljust(width[, fillchar])

Retorna string preenchida com espaços com a string original justificada à esquerda num total de colunas width.

21 lower()

Converte todas as letras maiúsculas na string para minúsculas.

22 lstrip()

Remove todos os espaços em branco iniciais na string.

23 maketrans()

Retorna uma tabela de tradução para ser usada na função translate.

24 max(str)

Retorna o caractere alfabético máximo da string str.

25 min(str)

Retorna o caractere alfabético mínimo da string str.

26 replace(old, new [, max])

Substitui todas as ocorrências de old na string com new ou no máximo max ocorrências se max dado.

27 rfind(str, beg=0,end=len(string))

Igual a find(), mas pesquisa para trás na string.

28 rindex( str, beg=0, end=len(string))

Igual a index(), mas pesquisa para trás na string.

29 rjust(width,[, fillchar])

Retorna string preenchida com espaços com a string original justificada à direita num total de colunas width.

30 rstrip()

Remove todos os espaços em branco finais da string.

31 split(str="", num=string.count(str))

Divide string de acordo com delimitador str (espaço se não fornecido) e retorna lista de substrings; divide em no máximo num substrings se dado.

32 splitlines( num=string.count('\n'))

Divide string em todos (ou num) NEWLINEs e retorna lista de cada linha com NEWLINEs removidos.

33 startswith(str, beg=0,end=len(string))

Determina se string ou substring (se índice inicial beg e índice final end forem dados) começa com substring str; retorna verdadeiro se sim e falso caso contrário.

34 strip([chars])

Realiza tanto lstrip() como rstrip() na string.

35 swapcase()

Inverte caso para todas as letras na string.

36 title()

Retorna versão "titlecased" da string, ou seja, todas as palavras começam com maiúscula e o resto minúsculas.

37 translate(table, deletechars="")

Traduz string de acordo com tabela de tradução str(256 chars), removendo aqueles na string del.

38 upper()

Converte letras minúsculas na string para maiúsculas.

39 zfill (width)

Retorna string original preenchida à esquerda com zeros num total de width caracteres; destinado a números, zfill() retém qualquer sinal dado (menos um zero).

40 isdecimal()

Retorna verdadeiro se string unicode contém apenas caracteres decimais e falso caso contrário.

python

  1. Dominando Strings em C#: Fundamentos, Operações e Técnicas Avançadas
  2. Dominando Operadores em Python: Guia Completo
  3. Dominando Dicionários em Python: Criação, Manipulação e Técnicas Avançadas
  4. Domine Operações com Strings em Python: Replace, Join, Split, Reverse e Conversão de Case
  5. Dominando o Método strip() do Python: Guia Completo e Exemplos Práticos
  6. Domine o str.count() do Python: Como Contar Caracteres e Substrings com Exemplos
  7. Domine Strings format() em Python com Exemplos Claros
  8. Python len(): Guia Prático para Medir Comprimento de Objetos
  9. Domine o Método String.find() do Python: Sintaxe, Exemplos e Alternativas
  10. Dominando enumerate() do Python: Loop com Índices para Listas, Tuplas, Strings e Dicionários