sexta-feira, 13 de maio de 2022

AD 17

 

AD 17

COMO INDEXAR E FATIAR STRINGS

Uma string em Python é uma sequência composta por um ou mais caracteres individuais que podem consistir em letras, números, caracteres de espaço em branco ou símbolos;

Como uma string é uma sequencia, ela pode ser acessada da mesma maneira que outros tipos de dados baseados em sequencias, através de indexação e fatiamento;

Como o tipo de dado de lista possuem itens que correspondem a um número de índice, cada um dos caracteres de uma string também corresponde a um número de índice, começando com o numero de índice 0;

=> Para a string "Olá Mundo" o detalhamento dos índices fica assim:

Olá Mundo!

0123456789

 

A primeira letra começa no índice 0 e a string termina no índice 9 com o símbolo de "!"

O fato de cada caractere em uma string Python ter um número de índice correspondente nos permite acessar e manipular strings da mesma maneira que podemos fazer com outros tipos de dados sequenciais;

Ao fazer a referencia a números de índice podemos isolar um dos caracteres em uma string

Fazemos isso colocando o número de índice entre colchetes:

> msg = "Olá mundo!"

> print (msg[5])

> u

Quando nos referimos a um numero de índice específico de uma string o Python retorna o caractere que está nessa posição;

Se tivermos uma sequência longa e queremos identificar um item no final, também podemos contar de trás para frente a partir do final da sequência, começando no número de índice -1;

Para a string "Olá Mundo!" o detalhamento dos índices negativos fica assim:

O

l

á

 

M

u

n

d

o

!

-10

-9

-8

-7

-6

-5

-4

-3

-2

-1

Usando números de índice negativo, podemos imprimir o caractere "d" referindo-se à sua posição no índice -3, da seguinte forma:

> msg = "Olá Mundo!"

> print (msg[-3])

> d

O uso de números de índice negativo pode ser vantajoso para isolar um único caractere no final de uma string longa;

Se não tivesse a opção de trabalhar com números negativos seria preciso combinar com a função len() e subtrair 1 para poder ter o mesmo efeito.

FATIANDO STRINGS

Também podemos obter um intervalo de caracteres da string;

Digamos que gostaríamos de imprimir apenas a palavra "Mundo";

Podemos fazer isso criando uma fatia (outras linguagens chamam isso de substring), que é uma sequencia de caracteres dentro de uma string original;

Fatias são definidas por um intervalo de números de índice separados por dois pontos [x:y]:

> msg = "Olá Mundo!"

> print (msg[4:9])

> Mundo

O x é incluído e o y é exclusive. Por isso, o índice 9 não aparece na resposta.

Ao construir uma fatia, como em [4:9] o primeiro índice é onde a fatia começa (inclusive) e o segundo número de índice é onde a fatia termina (exclusivo);

Ao fatiar strings, estamos criando uma substring, que é essencialmente uma string que existe dentro de outra string;

Se quisermos incluir qualquer extremidade de uma cadeia, podemos omitir um dos números na sintaxe da cadeia:

> msg = "Olá#Mundo!"

> print (msg[:4])

> Olá#

Para imprimir uma substring que começa no meio de uma string e é impressa até o final podemos fazer isso incluindo apenas o número do índice antes dos dois pontos:

> msg = "Olá Mundo!"

> print (msg[4:])

> Mundo!

Também se pode usar números de índice negativo para fatiar uma string

Ao usar números de índice negativo começaremos com o número mais baixo primeiro, como ocorre no início da string:

> msg = "Olá Mundo!"

> print (msg[-6:-1])

> Mundo

=> Recurso mais poderoso do Python em relação às opções oferecidas por outras linguagens.

A divisão de strings pode aceitar um terceiro parâmetro além de dois números de índice;

O terceiro parâmetro especifica o passo, que se refere a quantos caracteres avançar depois que o primeiro caractere for recuperado da string. Até o momento, omitimos o parâmetro passo, e o Python assume o padrão 1, para que todos os caracteres entre dois números de índice sejam recuperados:

> msg = "Olá Mundo!"

> print (msg[0:7])

> Olá Mun

> print (msg[0:7:1])

> Olá Mun

Então, um passo de 1 terá cada caractere entre dois números de índice de uma fatia;

Se, em vez disso, aumentarmos o passo veremos que os caracteres são ignorados:

> msg = "Olá Mundo!"

> print (msg[0:7:2])

> OáMn

Podemos indicar um valor numérico negativo para o passo, que podemos usar para imprimir a sequencia original na ordem inversa, se definirmos o passo como -1:

> msg = "Olá Mundo!"

> print (msg[::-1])

> !odnuM álO

=> Se não informar nem o caractere inicial, nem o final, nem o passo, vc repete a string original.

MÉTODOS DE CONTAGEM

Como outros tipos de dados sequenciais, as strings de caracteres podem ser contadas por vários métodos;

Primeiro, examinaremos o método len() que pode obter o tamanho de qualquer tipo de dado que seja uma sequência, ordenada ou não, incluindo strings, listas, tuplas e dicionários:

> msg = "Olá Mundo!"

> print (len(msg))

> 10

Em vez de usar uma variável também podemos passar uma string diretamente para o método len():

Print(len("Vamos imprimir o comprimento dessa string."))

> 42

O método len() conta o número total de caracteres (espaços ou símbolos) dentro de uma string

Se quisermos contar o numero de vezes que um caractere específico ou uma sequência de caracteres aparece em uma string podemos fazer isso com o método str.count ():

>print ("Vamos estudar Python".count("a"))

>2

>print ("Vamos estudar Python".count("p"))

>0

Embora a letra P esteja na string é importante ter em mente que o Python faz distinção entre maiúsculas e minúsculas;

O computador não entende os caracteres, só entende números, então todos os caracteres são convertidos para códigos da tabela ASC para o computador poder trabalhar com eles.

Caracteres maiúsculos e minúsculos possuem códigos diferentes, por isso, o computador entende como elementos diferentes.

 Se quisermos procurar todas as letras em uma string, independentemente da capitalização, podemos usar o método str.lower() para converter a string em todas as minúsculas primeiro:

>>print ("Vamos estudar Python".lower().count("p"))

>1

Também podemos encontrar em que posição um caractere ou sequencia de caracteres ocorre em uma string. Podemos fazer isso com o método str.find();

>print ("Vamos estudar Python".find("e"))

>6

Podemos verificar onde a primeira string "Python" ocorre:

>print ("Vamos estudar Python".find("Python"))

>14

A primeira instancia da string "Python" começa na posição do número de índice 14, que é onde o caractere P de Python está posicionado;

E se quisermos ver onde começa a segunda sequencia? Podemos fazer isso passando um segundo parâmetro para o método str.find() que iniciará em um número de índice específico:

>print ("Vamos estudar Python".find("a",5))

>11

Além disso, podemos especificar um final para o intervalo como um terceiro parâmetro;

Assim como o fatiamento, podemos fazer isso contando para trás usando um número de índice negativo:

>print ("Vamos estudar Python".find("t", 2, -5))

>8

Este último exemplo procura a posição de "t" entre os números de índice de 2 e -5. Como o parâmetro final digitado é um número negativo, ele será contado a partir do final da string original;

Os métodos de string len(), str.count() e str.find() podem ser usados para determinar o comprimento, a contagem de caracteres ou strings e as posições de índice de caracteres ou string em uma string;

A capacidade de acessar números de índices específicos de string, ou uma fatia especifica de uma string, nos oferece maior flexibilidade ao trabalhar com esse tipo de dados;

Strings assim como listas e tuplas, são um tipo de dados baseado em sequências, podem ser acessadas por meio de indexação e fatiamento;

Aula 17 – completa

INDEX

Nenhum comentário:

Postar um comentário

Visite também:


____________________
ADMINISTRAÇÃO FINANCEIRA E ORÇAMENTÁRIA
AFO_01_02    AFO_03    AFO_04    AFO_05
____________________
ADMINISTRAÇÃO PÚBLICA
AP_01    AP_02    AP_03    AP_04   
____________________
AUDITORIA
AUD_01   
____________________
AUDITORIA GOVERNAMENTAL
AUDG_01    AUDG_02    AUDG_03    AUDG_04
____________________
CURSO B3 INVESTIMENTOS
Aula 1 curso b3
____________________
CONTABILIDADE APLICADA AO SETOR PÚBLICO
CASP_01    CASP_02    CASP_03
____________________
CONTROLE EXTERNO
CE_01    CE_02    CE_03    CE_04
____________________
CERTIFICAÇÃO DE ESPECIALISTAS EM INVESTIMENTOS
CEA_01    CEA_02     CEA_03     CEA_04     CEA_05     CEA_06     CEA_07     CEA_08     CEA_09    CEA_09A     CEA_10     CEA_11     CEA_12     CEA_13     CEA_14     CEA_15     CEA_16     CEA_17    CEA_18     CEA_19     CEA_20     CEA_21     CEA_22    CEA_23
____________________
REVISÃO CEA
CEA_R0101   
____________________
SIMULADO CEA
CEA_S_001    CEA_S_002    CEA_S_003   
____________________
CONTABILIDADE GERAL
Contab_01_02    Contab_03    Contab_04    Contab_05    Contab_06    Contab_07_08
____________________
DIREITO TRIBUTÁRIO
D_Tribut_01    D_Tribut_02    D_Tribut_03    D_Tribut_04     D_Tribut_05    D_Tribut_06    D_Tribut_07    D_Tribut_08     D_Tribut_09
____________________
DIREITO ADMINISTRATIVO
DADM_TCU_01
DADM_AL_01
DADM_AL 303_01
DADM_G_02    DADM_G_03     DADM_G_04
____________________
DIREITO CIVIL
DCIV_01    DCIV_02    DCIV_03
DCIV_AL_01    DCIV_AL_02
____________________
DIREITO CONSTITUCIONAL
DCON_02    DCON_03     DCON_04
____________________
DCON-RN_01
____________________
DIREITO DE PROCESSO CIVIL
DPC 01_TCU    DPC 02_TCU
____________________
ECONOMIA DO SETOR PÚBLICO
ECOSP_02    ECOSP_03    ECOSP_04
____________________
ESTATÍSTICA
EST_01    EST_02    EST_03    EST_04    EST_05    EST_06    EST_07_08    EST_09    EST_10
____________________
EXTRA_TCU_01    EXTRA_TCU_02
____________________
Git_Github
____________________
MATEMÁTICA FINANCEIRA COM HP12C
HP12C_01    HP12C_02    HP12C_03    HP12C_04    HP12C_05 HP12C_06 HP12C_07
____________________
HISTÓRIA DO RIO GRANDE DO NORTE
HRN 01
____________________
INGLÊS
ING_01    ING_02    ING_03
____________________
JAVA
JAVA_01    JAVA_02    JAVA_03    JAVA_04    JAVA_05
____________________
LEGISLAÇÃO ADUANEIRA
Legs aduana 02
____________________
SE AFASTANDO DA MANADA, ANDRÉ MORAES
Manada 01    Manada 02
____________________
MATEMÁTICA
MAT_AL 01
____________________
MATEMÁTICA FINANCEIRA
MF_01    MF_02
____________________
Numerador Frasal
____________________
PORTUGUÊS
PT_02    PT_03    PT_04    PT_05    PT_06     PT_07
PT_RFB 01
____________________
PYTHON
Python_01     Python_02    Python_03    Python_04
AD_11    AD_12    AD_13    AD_14    AD_15    AD_16    AD_17    AD_18   
____________________
REDAÇÃO
Redação 01_02    Redação_03     Redação_04
____________________
REGIMENTO INTERNO DA ASSEMBLEIA LEGISLATIVA DO RN
RI_AL_01    RI_AL_02
____________________
LEGISLAÇÃO ANTICORRUPÇÃO
SNANT_03
____________________
TEOLOGIA
Teo 02