Directorio de artículos
conjunto de caracteres
Las computadoras solo pueden procesar números (de hecho, los números 0 y 1). Si desea procesar texto, primero debe convertir el texto en números antes de poder procesarlo. Las primeras computadoras usaban 8 bits (bit) como un byte (byte), por lo que el número entero más grande que puede representar un byte es 255 (binario 11111111 = decimal 255), 0 - 255 se usa para representar el tamaño. Escriba letras, números y algunos símbolos, esta tabla de códigos se llama código ASCII.
La tabla de códigos ASCII utiliza binario de 7 bits para representar un carácter, y su rango va de 0 a 127. Solo puede representar 128 caracteres en total y solo admite inglés. Con el desarrollo de la informática, también se han agregado a la tabla de códigos caracteres de idiomas de Europa occidental, griego, tailandés, árabe, hebreo y otros idiomas, formando una nueva tabla de códigos ISO8859-1 (también conocida como Latin1) tabla de códigos . ISO8859-1 utiliza binario de 8 bits para representar una cadena de caracteres, que es totalmente compatible con la tabla de códigos ASCII.
Unicode (Unicode, Universal Code, Unicode) es un estándar de la industria en el campo de la informática, que incluye conjuntos de caracteres, esquemas de codificación, etc. Unicode se creó para resolver las limitaciones de los esquemas de codificación de caracteres tradicionales. Establece una codificación binaria única y unificada para cada carácter en cada idioma para cumplir con los requisitos de procesamiento y conversión de texto entre idiomas y plataformas.
Convertir entre caracteres y codificaciones
Usando los métodos chr y ord, se puede realizar la conversión mutua entre caracteres y códigos.
print(ord('a')) # 使用ord方法,可以获取一个字符对应的编码
print(chr(100)) # 使用chr方法,可以获取一个编码对应的字符
reglas de codificación
El uso de Unicode establece un código binario único para cada carácter en cada idioma, pero aún tiene ciertos problemas y no es perfecto.
Por ejemplo, el resultado de convertir el carácter chino "usted" en un carácter es 0x4f60, y convertirlo en binario es 01001111 01100000. En este momento, hay dos problemas:
- ¿1001111 01100000 es un carácter chino "usted" o dos caracteres latinos1?
- Si Unicode estipula que cada carácter está representado por n ocho bits, para los caracteres Latin1, se desperdiciará mucho espacio de almacenamiento.
Para resolver este problema, han surgido algunas reglas de codificación y los números Unicode se calculan de acuerdo con ciertas reglas de codificación para obtener una nueva codificación. Las codificaciones de caracteres comúnmente utilizadas en China incluyen GBK, Big5 y utf8.
Usando el método de codificación de una cadena, la cadena se puede convertir en binario de acuerdo con el formato de codificación especificado; usando el método de decodificación, los datos binarios se pueden convertir en una cadena de acuerdo con el formato de codificación 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)
Pensamiento: Las razones y soluciones para texto distorsionado.
objetivo de aprendizaje
- Representación de cadenas
- Subíndice y corte de cadenas
- Operaciones comunes en cadenas
- Conjuntos de caracteres y codificaciones
- operador miembro
- método de formato de cadena
operador miembro
Los operadores de pertenencia (en y no en) se pueden usar para determinar rápidamente si un elemento está en un objeto iterable específico y si el elemento que se evaluará en el formato de sintaxis es un objeto iterable.
en operador
Pensando: ¿Cómo juzgar si un carácter está en la cadena especificada?
msg = 'hello'
char = input('请输入一个字符:')
# 使用字符串的 find 方法可以判断字符是否存在
if msg.find(char) != -1:
print('您输入的字符存在')
else:
print('您输入的字符不存在')
# 使用 in 运算符可以更加方便的查看字符是否存在
if char in msg:
print('您输入的字符存在')
else:
print('您输入的字符不存在')
no en operador
Se usa de la misma manera que el operador in, excepto que not in se usa para determinar si el elemento no está en la cadena especificada.
Nota: No todos los datos pueden usar el operador de identidad, y el operador de identidad solo puede ir seguido de un objeto iterable.
'h' in 'hello'
'zhangsan' in ['lisi','henry','merry','jack']
1 in 123 # 报错,数字 123 不是一个可迭代对象
Caso avanzado
[Python] Python se da cuenta del juego de adivinanzas: ¡desafía tu inteligencia y tu suerte!
[python] Use Selenium para obtener entradas (2023 Blog Star)
[Xiaobai debe ver] Python rastrea un ejemplo de datos de jugadores de la NBA
[Xiaobai debe ver] Visualización y procesamiento de datos del rastreador de Python
[Imprescindible para Xiaobai] Use Python para generar una lista personalizada de documentos de Word
Procesamiento y visualización de datos geoespaciales usando geopandas y shapely (.shp)
Utilice selenio para rastrear los datos de la lista de películas de Maoyan
Explicación detallada del principio y la implementación del algoritmo de mejora de imagen Retinex
Primeros pasos con los reptiles (1): aprenda los conceptos básicos y las habilidades de los reptiles
Conceptos básicos de programación orientada a objetos de Python y código de muestra
Guía de operación de archivos de Python: codificación, lectura, escritura y manejo de excepciones
Conjunto de herramientas de automatización de Selenium - Guía completa y tutoriales
Tutorial de los conceptos básicos del rastreador web de Python avanzados al combate real
Tutorial de procesamiento y análisis de datos de Pandas: desde lo básico hasta el combate real
Explicación detallada de los tipos de datos de uso común y las operaciones relacionadas en Python