Diretório de artigos
conjunto de caracteres
Os computadores só podem processar números (na verdade, os números 0 e 1).Se você deseja processar texto, deve primeiro converter o texto em números antes de poder processá-lo. Os primeiros computadores usavam 8 bits (bit) como um byte (byte), então o maior número inteiro que um byte pode representar é 255 (binário 11111111=decimal 255), 0 - 255 é usado para representar o tamanho Escreva letras, números e alguns símbolos, esta tabela de códigos é chamada de código ASCII.
A tabela de código ASCII usa um binário de 7 bits para representar um caractere e seu intervalo varia de 0 a 127. Ela pode representar apenas 128 caracteres no total e oferece suporte apenas ao inglês. Com o desenvolvimento da ciência da computação, caracteres de idiomas da Europa Ocidental, grego, tailandês, árabe, hebraico e outros idiomas também foram adicionados à tabela de códigos, formando uma nova tabela de códigos ISO8859-1 (também conhecida como Latin1). . ISO8859-1 usa binário de 8 bits para representar uma cadeia de caracteres, que é totalmente compatível com a tabela de códigos ASCII.
Unicode (Unicode, Universal Code, Unicode) é um padrão da indústria no campo da ciência da computação, incluindo conjuntos de caracteres, esquemas de codificação, etc. O Unicode foi criado para resolver as limitações dos esquemas tradicionais de codificação de caracteres.Ele define uma codificação binária unificada e exclusiva para cada caractere em cada idioma para atender aos requisitos de conversão e processamento de texto entre idiomas e plataformas cruzadas.
Converter entre caracteres e codificações
Usando os métodos chr e ord, a conversão mútua entre caracteres e códigos pode ser realizada.
print(ord('a')) # 使用ord方法,可以获取一个字符对应的编码
print(chr(100)) # 使用chr方法,可以获取一个编码对应的字符
regras de codificação
O uso do Unicode define um código binário exclusivo para cada caractere em cada idioma, mas ainda apresenta alguns problemas e não é perfeito.
Por exemplo, o resultado da conversão do caractere chinês "você" em um caractere é 0x4f60 e da conversão em binário é 01001111 01100000. Neste momento, existem dois problemas:
- 1001111 01100000 é um caractere chinês "você" ou dois caracteres Latin1?
- Se o Unicode estipular que cada caractere é representado por n oito bits, para caracteres Latin1, muito espaço de armazenamento será desperdiçado.
Para resolver este problema, surgiram algumas regras de codificação e os números Unicode são calculados de acordo com certas regras de codificação para obter uma nova codificação. As codificações de caracteres comumente usadas na China incluem GBK, Big5 e utf8.
Usando o método encode de uma string, a string pode ser convertida em binário de acordo com o formato de codificação especificado; usando o método decode, um dado binário pode ser convertido em uma string de acordo com o formato de codificação especificado.
s1 = '你'.encode('utf8') # 将字符 你 按照utf8格式编码称为二进制
print(type(s1)) # <class 'bytes'>
print(s1) # b'\xe4\xbd\xa0'
s2 = s1.decode('utf8') # 将二进制按照utf8格式解码称为字符串
print(s2)
s3 = '你'.encode('gbk') # 将字符 你 按照gbk格式转换称为二进制
print(s3) # b'\xc4\xe3'
s4 = s3.decode('gbk') # 将二进制按照gbk格式解码称为字符
print(s4)
Pensando: as razões e soluções para o texto ilegível.
meta de aprendizagem
- Representação de string
- Subscrição e fatiamento de strings
- Operações comuns em strings
- Conjuntos de caracteres e codificações
- operador membro
- método de formato de string
operador membro
Os operadores de associação (in e not in) podem ser usados para determinar rapidamente se um elemento está em um objeto iterável especificado e o elemento a ser julgado no formato de sintaxe é um objeto iterável.
no operador
Pensando: Como julgar se um caractere está na string especificada?
msg = 'hello'
char = input('请输入一个字符:')
# 使用字符串的 find 方法可以判断字符是否存在
if msg.find(char) != -1:
print('您输入的字符存在')
else:
print('您输入的字符不存在')
# 使用 in 运算符可以更加方便的查看字符是否存在
if char in msg:
print('您输入的字符存在')
else:
print('您输入的字符不存在')
não no operador
É usado da mesma forma que o operador in, exceto que not in é usado para determinar se o elemento não está na string especificada.
Observação: nem todos os dados podem usar o operador de identidade, e o operador de identidade só pode ser seguido por um objeto iterável.
'h' in 'hello'
'zhangsan' in ['lisi','henry','merry','jack']
1 in 123 # 报错,数字 123 不是一个可迭代对象
Caso avançado
[Python] Python realiza o jogo de adivinhação de palavras - desafie sua inteligência e sorte!
[python] Biblioteca Python tkinter implementa programa GUI para conversor de unidade de peso
[python] Use Selenium para obter entradas (2023 Blog Star)
[Xiaobai deve ver] Python rastreia um exemplo de dados do jogador da NBA
[Imperdível para Xiaobai] Exemplo de código para rastrear e salvar áudio do Himalaia usando Python
[Xiaobai deve ver] Processamento e visualização de dados do rastreador Python
[Imperdível para Xiaobai] Use Python para gerar uma lista personalizada de documentos do Word
Processamento e visualização de dados geoespaciais usando geopandas e shapely (.shp)
Use o selênio para rastrear os dados da lista de filmes Maoyan
Algoritmo de aprimoramento de imagem Retinex Princípio e implementação Explicação detalhada
Introdução aos répteis (1): Aprenda o básico e as habilidades dos répteis
Noções básicas de programação orientada a objetos Python e código de amostra
Guia de operação de arquivo Python: codificação, leitura, gravação e tratamento de exceções
Selenium Automation Toolset - Guia Completo e Tutoriais
Noções básicas do rastreador da web Python avançado para tutorial de combate real
Tutorial de processamento e análise de dados do Pandas: do básico ao combate real
Explicação detalhada dos tipos de dados comumente usados e operações relacionadas em Python