NOME DURAÇÃO
Curso de Python
Primeira Aula de Python
Como Instalar o Python no Windows
Características do Python
Recursos do Python
IDLE - Modo Interativo do Python
Instalando o PyCharm no Windows
Primeiro programa em Python
Comentários em Python
Indentação do código Python
Variáveis em Python
Características das Variáveis em Python
Nomenclatura das Variáveis em Python
Tipos de dados em Python
Variáveis do tipo Ponto Flutuante do Python
Entrada de Dados em Python
Operadores Aritméticos do Python
Módulo da Divisão em Python
Potenciação e Radiciação em Python
Operadores Relacionais do Python
Tomada de Decisão em Python
Estrutura if e else em Python
Depurando código Python
Operadores Relacionais Compostos do Python
Operadores Relacionais na Prática em Python
Operadores Lógicos em Python
Blocos de Instrução em Python
Blocos de Instrução em Python (Parte II)
Blocos de Instrução Python na Prática
Escopo de Nomes em Python
Estrutura de Atribuição Simples do Python
Atribuição Múltipla em Python
Operadores de Atribuição Compostos do Python
Atribuição Condicional em Python
Iteração em Python
Laços de Repetição do Python
Estrutura de repetição while em Python
A instrução for em Python
A função range() do Python
O for loop e a função range() do Python
Instrução break do Python
Instrução continue em Python
Estruturas de Dados Lista em Python
Lista, Pilha, Array, Set em Python
A classe list do Python
Classe list - Conceitos Avançados do Python
Funções da Classe list do Python
Iteração de Listas em Python
Fatiando Listas em Python
Incluindo, Alterando e Excluindo Elementos no Python
Ordenamento de Listas em Python
Quantidade de Itens em Python
Tuplas em Python
Operadores in e not in do Python
Operadores and, or e in do Python
Exemplo com Operador in em Python
Introdução às Strings em Python
Fatiando Strings com Python
Funções das Strings no Python
Comparação de Strings em Python
Iterando Strings em Python
Introdução aos Dicionários do Python
Dicionários na Prática com Python
Funções dos Dicionários no Python
Introdução às Funções em Python
Parâmetros de Função em Python
Parâmetros default em Python
Argumento de Função Nomeado vs Posicional em Python
Retornando Valores pelas Funções em Python

Nesta aula, aprenderemos, como funciona a comparação de string no Python, e também, veremos o como que é definido, internamente, quando é solicitado a relação entre 2 caracteres.

INTRODUÇÃO

Para entendermos como o Python estabelece a relação entre 2 caracteres, precisamos entender alguns conceitos sobre o princípio da computação. Então, nessa aula, iremos estudar alguns conceitos que não estão relacionados diretamente a linguagem Python, e sim, a computação propriamente dita.

A seguir, temos um código de "degustação", onde as expressões serão o resultado da relação entre 2 caracteres.

>>> "A" == "A"
True
>>> "b" == "b"
True
>>> "a" > "c"
False
>>> "C" > "a"
False

TABELA ASCII

A tabela ASCII contém os caracteres vinculados a um número inteiro positivo. Essa tabela decorre do fato de que o computador só manipula números, logo, cada caractere, possui, um número que o identifique.

O termo ASCII é um acrônimo de American Standard Code for Information Interchange que numa tradução livre, seria, "Código Padrão Americano para o Intercâmbio de Informação".

Podemos obter o código ASCII de um caractere ou então, através de um caractere, obter o seu respectivo código. Geralmente, trabalhamos com os códigos ASCII quando estamos definindo funcionalidades para determinadas teclas, como por exemplo, na construção de um jogo.

A tabela ASCII é a convenção que define o valor decimal e binário de cada caractere. Nesse momento, não aprofundaremos o estudo sobre a tabela ASCII ou então, o padrão UNICODE. Porém, estudaremos detalhadamente numa próxima situação. Agora, o que nós temos que saber, é que cada letra do nosso teclado está associado a um valor numérico.

Veja neste link uma explicação da relação do Python com o sistema UNICODE .

Por exemplo, a letra A maiúscula recebe o código 65, a letra B o código 66 e assim por diante. A letra a minúscula, recebe o código 97, e a letra b minúscula o código 98 e assim por diante.

Esses valores serão utilizados, por exemplo, quando comparamos 2 String distintas. Por exemplo, se digitar a seguinte expressão, qual o valor lógico retornado?

>>> "a" > "X"
True

Temos que o valor lógico retornado será True, até porque, o código ASCII do caractere a minúsculo (65) é maior do que o caractere X maiúsculo.

O Python disponibiliza 2 funções que são bastante uteis quando estamos trabalhando com o sistema ASCII. A primeira é a função ord() , que recebe uma letra como parâmetro e retorna o código ASCII da mesma. A segunda função, é a chr() , onde passamos o código ASCII e nos é retornado a respectiva letra.

A seguir, temos 2 exemplos utilizando as funções builtin do Python ord() e chr().

>>> ord('a')
97
>>> chr(97)
'a'

No exemplo acima, inicialmente, confirmamos que o código ASCII da letra a minúscula é 97. Em seguida, passamos o código 97 como argumento da função chr() e, como resposta, tivemos o caractere a.

EXEMPLO - IMPRIMINDO A TABELA ASCII

A seguir, temos um exemplo em que é impresso, na saída padrão, o código ASCII e a respectiva letra dos 122 primeiros caracteres.

>>> for c in range(123):
    str(c) + " - " + chr(c)


'0 - \x00'
'1 - \x01'
'2 - \x02'
'3 - \x03'
'4 - \x04'
'5 - \x05'
'6 - \x06'
'7 - \x07'
'8 - \x08'
'9 - \t'
'10 - \n'
'11 - \x0b'
'12 - \x0c'
'13 - \r'
'14 - \x0e'
'15 - \x0f'
'16 - \x10'
'17 - \x11'
'18 - \x12'
'19 - \x13'
'20 - \x14'
'21 - \x15'
'22 - \x16'
'23 - \x17'
'24 - \x18'
'25 - \x19'
'26 - \x1a'
'27 - \x1b'
'28 - \x1c'
'29 - \x1d'
'30 - \x1e'
'31 - \x1f'
'32 -  '
'33 - !'
'34 - "'
'35 - #'
'36 - $'
'37 - %'
'38 - &'
"39 - '"
'40 - ('
'41 - )'
'42 - *'
'43 - +'
'44 - ,'
'45 - -'
'46 - .'
'47 - /'
'48 - 0'
'49 - 1'
'50 - 2'
'51 - 3'
'52 - 4'
'53 - 5'
'54 - 6'
'55 - 7'
'56 - 8'
'57 - 9'
'58 - :'
'59 - ;'
'60 - <'
'61 - ='
'62 - >'
'63 - ?'
'64 - @'
'65 - A'
'66 - B'
'67 - C'
'68 - D'
'69 - E'
'70 - F'
'71 - G'
'72 - H'
'73 - I'
'74 - J'
'75 - K'
'76 - L'
'77 - M'
'78 - N'
'79 - O'
'80 - P'
'81 - Q'
'82 - R'
'83 - S'
'84 - T'
'85 - U'
'86 - V'
'87 - W'
'88 - X'
'89 - Y'
'90 - Z'
'91 - ['
'92 - \\'
'93 - ]'
'94 - ^'
'95 - _'
'96 - `'
'97 - a'
'98 - b'
'99 - c'
'100 - d'
'101 - e'
'102 - f'
'103 - g'
'104 - h'
'105 - i'
'106 - j'
'107 - k'
'108 - l'
'109 - m'
'110 - n'
'111 - o'
'112 - p'
'113 - q'
'114 - r'
'115 - s'
'116 - t'
'117 - u'
'118 - v'
'119 - w'
'120 - x'
'121 - y'
'122 - z'

CARACTERES DE ESCAPE

Os caracteres de escape é uma definição para adicionar as strings, marcações que não possuem um desenho (representação visual) propriamente dito. Ainda que estes caracteres não tenham uma simbologia que os justifiquem, os mesmos possuem representações na forma em que nossos textos serão exibidos ou impressos. Assim, temos que os Caracteres de Escape desempenham tarefas bastante importantes na formatação e exibição dos textos. Tomemos por exemplo, uma quebra de linha, ou seja, o pressionamento da tecla Enter.

A quebra de linha não possui um caractere que a represente visualmente, até porque, a sua representação visual, é o posicionamento do cursor no canto esquerto da linha seguinte. O mesmo acontece com a tabulação, onde não há um desenho que a represente, até porque, o objetivo, é o posicionamento do texto mais a direita do vídeo.

É interessante notar, que os Caracteres de Escape, fazem um trabalho semelhante, ao encontrado em linguagem de marcação moderna, como por exemplo, o HTML, que utiliza para a representação de quebra de linha, a Tag <br>.

NOTAÇÃO DE ESCAPE

A notação utilizada e o que define os Caracteres de Escape, é a barra invertida. Todo Caractere de Escape é formado por uma barra invertida e outro caractere que definirá a ação.

O primeiro caractere, no caso, a barra, define que estamos utilizando a notação de Caracteres de Escape, enquanto que o segundo caractere, representa a ação a ser realizada.

EXEMPLOS

  • /n - quebra de linha
  • /t - tabulação

POSSÍVEIS ERROS

Alguns Caracteres de Escape, talvez, não funcionem no editor que estejas utilizando, e também, não tente utilizar os Caracteres de Escape dentro de editores de texto puro, como por exemplo, o Bloco de Notas do Windows, até porque, ao invés de obteres um o resultado aqui descrito, terás somente, os digitos em sua representação textual.

Os Caracteres de Escape, como por exemplo, o Carriage Return, cuja notação é \r, normalmente, não funciona na plataforma Windows e nem nos Prompts de Comando modernos. O mesmo foi amplamente utilizado, na época das impressoras matriciais, até porque, praticamente todo o controle era feito com uso de Caracteres de Escape, e o funcionamento da manipulação das impressoras, ocorria de forma semelhante a maneira como manipulamos o prompt atutalmente. A diferença, é que ao invés de enviarmos o texto para o o Prompt, enviávamos para um arquivo virtual, que era na verdade, a saída padrão da impressora.

A TABELA DE CARACTERES DE ESCAPE

A seguir, temos as principais Escape Sequence da linguagem C. Os dois primeiro itens, que nos caso, são a quebra de linha n e a tabulação t são os mais utilizados. Porém, é importante observar que muitas vezes precisaremos, por exemplo, imprimir a barra invertida, e então, precisaremos "escapar" a mesma, isto é, precisaremos utilizar um caractere especial para inserir num texto que a barra deve ser utilizada visualmente, e não como um Caractere de Escape.

n - Nova página (line feed) t - Tabulação (tab)

' - Aspa simples " - Aspa dupla

0 - Caractere null (fim de uma String)

? - Interrogação \ - backslash a - Emissão de som b - backspace f - Nova página (form feed) r - Retorno do cursor (carriage return) v - Tabulação Vertical

É comum, por exemplo, precisarmos imprimir um texto e em seguida, posicionar o cursor na linha seguinte. Para isso, basta adicionarmos ao término da string um \n, que no caso, é a notação que representa uma quebra de linha.

ESTUDO DE CASO PRÁTICO

Vamos supor que queiramos imprimir um texto onde uma parte estará numa linha e a outra parte, na linha seguinte. No código a seguir, estamos supondo a situação utilizando um código que possui erro.

#include <stdio.h>

int main() {
    printf("Fala,
galera.");
}

O código acima, simplesmente quebrou a expressão, o que não é permitido pela Linguagem C.

A solução para o código do exemplo anterior, é a utilização de um Caractere de Escape NewLine representado pela notação \n. Assim, corrigindo o exemplo anterior, teríamos um código em que a primeira parte seria impresso numa linha, enquanto a segunda, na linha seguinte.

#include <stdio.h>

int main() {
    printf("Fala, \ngalera.");
}

Observe no código acima, que o Caractere de Escape n está junto a palavra galera, porém o mesmo, será interpretado pela compilador e então, uma quebra de linha será adicionada.



Tags curso, python, caractere, ascii, unicode, escape sequence

Comentários

comments powered by Disqus