Opa, tudo bem?? Hoje vou tentar te explicar sobre strings no Python :D
Eu tenho um repositório no GitHub que você pode baixar o código e ver ele funcionando ;)
https://github.com/joaocosta956/Estudos/blob/main/Strings.py
Todas Strings em Python são iteráveis, ou seja, todas letras são endereçadas o que nos permite acessar por índice. Cada letra possui um número.
Podemos selecionar o inicio e o fim dos indices e também podemos selecionar de quantos em quantos queremos, por exemplo de 2 em 2.
Code:
print(string_um[9:19:1])
Output:
você está
i = Inicio
f = Fim
p = Passos (Por padrão vem 1)
Mas lembre-se, a letra do índice 9, não vai aparecer, é a partir dele.
E caso não informe o index final, irá a partir do 9 até o último índice.
Code:
print(string_um[9::2])
Output:
oêet?
É possível omitir/ignorar o inicio, o fim e os passos.
Caso ignore o índice do inicio, vai começar do índice 0, que é o início, caso omita o índice final, ele ira até o ultimo índice, caso omita os passos, ele por padrão seguira com 1, ou seja, de 1 em 1
Se você colocar um número negativo a string é iterada ao contrário
Não é necessário informar os números neste caso, veja:
Code:
print(string_um[::-1])
Output:
?átse êcov omoc ,álO
Agora vamos ver um palíndromo
A palindromia é um conceito linguístico e matemático que se refere a uma sequência de caracteres, seja uma palavra, frase ou número, que pode ser lida da mesma maneira da esquerda para a direita e da direita para a esquerda. Em outras palavras, é um padrão simétrico em que os caracteres são dispostos de forma que formam a mesma sequência quando lidos de trás para frente. Alguns exemplos de palíndromos em português incluem "radar", "asa", "reter" e "anilina". Palíndromos podem ser uma curiosidade interessante na linguagem e na matemática.
Code:
palindromo = 'socorram me subi no onibus em marrocos'
print(palindromo[::-1])
Output:
socorram me subino on ibus em marrocos
Aqui veremos um loop while, poderia ser com for também.
Onde a função "len()" retorna o número de letras/indices. Então enquanto "len_string_um" for menor que i (que começa no 0 e é incrementado no loop while)
Code:
len_string_um = len(string_um)
i = 0
print(10'-','Por loop While',10'-')
while i < len_string_um:
print(f'Indice: {i}')
print(string_um[i])
i += 1
Output:
Indice: 0
O
Indice: 1
l
Indice: 2
á
Indice: 3
,
Indice: 4
Indice: 5
c
Indice: 6
o
Indice: 7
m
Indice: 8
o
Indice: 9
Indice: 10
v
Indice: 11
o
Indice: 12
c
Indice: 13
ê
Indice: 14
Indice: 15
e
Indice: 16
s
Indice: 17
t
Indice: 18
á
Indice: 19
?
OBS: Tive que apagar os espaços para não atrapalhar na estética. Mas os espaçoes existem e tem valor.
Então... talvez seja um pouco complicado de entender, mas vou tentar explicar.
Eu defini a variável "i" como 0, antes do loop, ou seja, só vai ser somado dentro do loop, afinal se você definir "i" dentro do loop, ele sempre será 0, e nunca saíra desta posição, o que irá gerar um loop infinito.
A partir do momento que entra no loop é feita a verificação se "i" é maior que o número de letras, se não for é mostrado a letra e o índice (é difícil entender por texto, então é melhor rodar o código)
Quando em strings, o operador "+", de soma, se torna de concatenação, ou seja, irá juntar as letras/palavras (não dá pra concatenar strings com inteiros).
Code:
palavra = 'Oi'
print(palavra+', como você está?')
Output:
Oi, como você está?
ATENÇÃO!!
Não estou entrando no mérito em ser eficiente, é apenas didático isso, pra ficar mais claro ;)
No código abaixo, manualmente coloquei os indices para mostrar que, caso os indices colocados não existam, irá levantar uma exceção/erro e o código irá quebrar.
Por isso, não utilizem iterações de strings de maneira manual, não é uma boa prática.
Code:
print(string_um[0])
print(string_um[1])
print(string_um[2])
print(string_um[3])
print(string_um[4])
print(string_um[5])
print(string_um[6])
print(string_um[7])
print(string_um[8])
print(string_um[9])
print(string_um[10])
print(string_um[11])
print(string_um[12])
print(string_um[13])
print(string_um[14])
print(string_um[15])
print(string_um[16])
print(string_um[17])
print(string_um[18])
print(string_um[19])
Vai até aqui, apartir daqui gera um Erro IndexError: string index out of range
Ou seja o index da palavra está fora do "range", da "pool".
print(string_um[20])
Output:
O
l
á
,
c
o
m
o
v
o
c
ê
e
s
t
á
?
Traceback (most recent call last):
File "c:\Users\joaov\Estudos\Strings.py", line 76, in
print(string_um[20])
IndexError: string index out of range
Perceba que até os espaços são contatos. (na imagem)
Muito obrigado por ler até aqui :D 🥰🥰🥰.
Caso veja algum erro, alguma sugestão, alguma critica, deixei um comentário ;D
Lembrando que não sou desenvolvedor Pleno em Python, então sou passível a errar, por isso, não me julguem :(
Abraços!!!