Me desculpem pelo hiato, mas é que as provas chegaram aí, já viram, né?
Pois bem, enquanto eu não consigo chegar no Salão do Tempo pra estudar um ano inteiro em um dia, vou fazendo o possível pra manter o blog atualizado.
Então... que tal brincar mais um pouquinho com strings???
Já aprendemos a inverter a string utilizando o [::-1] e também aprendemos a inverter a string de hexa com a biblioteca binascii.
Agora ensinarei aqui a inverter a string hexa sem transformar os dados, ou seja, trabalharemos diretamente com strings o tempo todo.
Supondo que a string seja:
'4b494b4f48c394'
Que traduzindo de HEX para ASCII significa "KIKOHÔ".
Vamos inverter para que o resultado seja:
'94c3484f4b494b' ou seja "ÔHOKIK".
>>> a='4b494b4f48c394'
>>> b=''
>>> for i in range(len(a),0,-2): b=b+a[i-2:i]
>>> b
'94c3484f4b494b'
Muito bom, né?
O que isso quer dizer?
Muito bem. O for todo mundo conhece né? Não?
Então aqui vai:
for i in range(100): .......
Isso quer dizer que 'i' irá receber os números de 0 a 99, pois irá fazer 100 iterações.
for i in range (1,100,1): ........
Isso quer dizer que 'i' irá receber valores de 1 a 100 com passos de 1 em 1.
for i in range (1,100,2): ........
Isso quer dizer que 'i' irá receber os valores de 1 a 100 com passos de 2 em dois, ou seja: 1,3,5,7,...,97,99.
Então voltando ao exemplo:
for i in range(len(a),0,-2): b=b+a[i-2:i]
len(a) é o tamanho da string. No nosso caso 4b494b4f48c394 tem 14 caracteres, então len(a) = 14, daí o range NESSE CASO é: range(14,0,-2), então i recebe valores de 14 a 0 com passos de -2 (2 decrescente).
Aí vemos as instruções: b=b+a[i-2:i].
Na primeira iteração b está vazio (''), mas receberá a concatenação da string b ('') e do fragmento de string a[i-2:i], como o valor de 'i' na primeira iteração é 14, então será a[14-2:14] ou a[12:14]='94'. Ao fim dessa iteração b='94'
Na primeira iteração b contém ('94'), mas receberá a concatenação da string b ('94') e do fragmento de string a[i-2:i], como o valor de 'i' na segunda iteração é 12, então será a[12-2:12] ou a[10:12]='c3'. Ao fim dessa iteração b='94c3'.
E aí vai até que o range chegue a 0, percorrendo toda a string em a.
Por hoje é só, pessoal!
Nenhum comentário:
Postar um comentário