[Python] Tutoriales de la serie Python: tipos de datos básicos de Python3 (5)

prefacio

Revisión pasada:

Las variables en Python no necesitan ser declaradas. A cada variable se le debe asignar un valor antes de su uso, y la variable no se creará hasta que se asigne la variable.

En Python, una variable es una variable, no tiene un tipo, lo que queremos decir con "tipo" es el tipo de objeto en la memoria al que se refiere la variable.

El signo igual (=) se utiliza para asignar valores a las variables.

El lado izquierdo del operador del signo igual (=) es un nombre de variable, y el lado derecho del operador del signo igual (=) es el valor almacenado en la variable. Por ejemplo:

Ejemplo (Python 3.0+)

#!/usr/bin/python3

counter = 100          # 整型变量
miles   = 1000.0       # 浮点型变量
name    = "runoob"     # 字符串

print (counter)
print (miles)
print (name)

Ejecute el ejemplo»
Ejecute el programa anterior y se mostrarán los siguientes resultados:

100
1000.0
runoob

asignación de múltiples variables

Python te permite asignar valores a múltiples variables al mismo tiempo. Por ejemplo:

a = segundo = c = 1

En el ejemplo anterior, cree un objeto entero con un valor de 1 y asigne valores de atrás hacia adelante, y a las tres variables se les asigna el mismo valor.

También puede especificar múltiples variables para múltiples objetos. Por ejemplo:

a, b, c = 1, 2, “runoob”

En el ejemplo anterior, dos objetos enteros 1 y 2 se asignan a las variables ayb, y el objeto de cadena "runoob" se asigna a la variable c.

tipo de datos estándar

Hay seis tipos de datos estándar en Python3:

  • Número
  • Cadena (cadena)
  • lista (lista)
  • tupla
  • Conjunto (colección)
  • Diccionario

Entre los seis tipos de datos estándar de Python3:

  • Datos inmutables (3): Número (número), Cadena (cadena), Tupla (tupla);
  • Datos variables (3): List (lista), Dictionary (diccionario), Set (colección).

Número

Python3 admite int, float, bool, complex (números complejos).

En Python 3, solo hay un tipo de entero int, que se representa como un entero largo, y no hay Long en python2.

Como la mayoría de los lenguajes, la asignación y evaluación de tipos numéricos es sencilla.

La función integrada type() se puede utilizar para consultar el tipo de objeto al que se refiere una variable.

>>> a, b, c, d = 20, 5.5, True, 4+3j
>>> print(type(a), type(b), type(c), type(d))
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>

Además, isinstance también se puede utilizar para juzgar:

ejemplo

>>> a = 111
>>> isinstance(a, int)
True
>>>

La diferencia entre isinstance y type es:

  • type() no considerará que la subclase sea un tipo de superclase.
  • isinstance() considerará que la clase secundaria es un tipo de clase principal.
>>> class A:
...     pass
... 
>>> class B(A):
...     pass
... 
>>> isinstance(A(), A)
True
>>> type(A()) == A 
True
>>> isinstance(B(), A)
True
>>> type(B()) == A
False

Nota: en Python3, bool es una subclase de int, True y False se pueden agregar a los números, True1, falso0 devolverá True, pero el tipo puede juzgarse por is.

>>> issubclass(bool, int) 
True
>>> True==1
True
>>> False==0
True
>>> True+1
2
>>> False+1
1
>>> 1 is True
False
>>> 0 is False
False

No hay un tipo booleano en Python2, usa el número 0 para representar Falso y 1 para representar Verdadero.

Los objetos numéricos se crean cuando especifica un valor:

var1 = 1
var2 = 10

También puede eliminar algunas referencias a objetos utilizando la instrucción del.

La sintaxis de la instrucción del es:

del var1[,var2[,var3[…,varN]]]

Puede eliminar uno o varios objetos mediante la instrucción del. Por ejemplo:

parte var parte var_a, var_b

Operaciones numéricas

ejemplo

>>> 5 + 4  # 加法
9
>>> 4.3 - 2 # 减法
2.3
>>> 3 * 7  # 乘法
21
>>> 2 / 4  # 除法,得到一个浮点数
0.5
>>> 2 // 4 # 除法,得到一个整数
0
>>> 17 % 3 # 取余
2
>>> 2 ** 5 # 乘方
32

Aviso:

1. Python puede asignar valores a múltiples variables al mismo tiempo, como a, b = 1, 2.
2. Una variable puede apuntar a diferentes tipos de objetos a través de la asignación.
3. La división numérica contiene dos operadores: / devuelve un número de coma flotante, // devuelve un número entero.
4. Durante los cálculos mixtos, Python convertirá números enteros en números de punto flotante.

Instancia de tipo numérico

En t flotar complejo
10 0.0 3,14 años
100 15.20 45.j
-786 -21,9 9.322e-36j
080 32.3e+18. 876j
-0490 -90. -.6545+0J
-0x260 -32.54e100 3e+26J
0x69 70.2E-12 4.53e-7j

Python también admite números complejos. Un número complejo consta de una parte real y una parte imaginaria. Puede representarse mediante a + bj, o complejo(a,b). La parte real a y la parte imaginaria b de un número complejo son ambos tipos de punto flotante.

Cadena (cadena)

Las cadenas en Python están encerradas entre comillas simples ' o comillas dobles ", y los caracteres especiales se escapan con una barra invertida \.

El formato gramatical de la intercepción de cadenas es el siguiente:

variable [subíndice principal: subíndice final]

Los valores de índice comienzan en 0 y comienzan en -1 desde el final.

inserte la descripción de la imagen aquí

El signo más + es el conector de la cadena, el asterisco * significa copiar la cadena actual y el número combinado con él es la cantidad de veces que se copia. Los ejemplos son los siguientes:

ejemplo

#!/usr/bin/python3

str = 'Runoob'

print (str)          # 输出字符串
print (str[0:-1])    # 输出第一个到倒数第二个的所有字符
print (str[0])       # 输出字符串第一个字符
print (str[2:5])     # 输出从第三个开始到第五个的字符
print (str[2:])      # 输出从第三个开始的后的所有字符
print (str * 2)      # 输出字符串两次,也可以写成 print (2 * str)
print (str + "TEST") # 连接字符串

Ejecutar el programa anterior generará los siguientes resultados:

Runoob
Runoo
R
noo
noob
RunoobRunoob
RunoobTEST

Python usa la barra invertida \ para escapar de los caracteres especiales. Si no desea que la barra invertida se escape, puede agregar una r delante de la cadena para representar la cadena original:

ejemplo

>>> print('Ru\noob')
Ru
oob
>>> print(r'Ru\noob')
Ru\noob
>>>

Además, la barra invertida () se puede utilizar como carácter de continuación, lo que indica que la línea siguiente es una continuación de la línea anterior. También puede usar """…""" o '''…''' para abarcar varias líneas.

Tenga en cuenta que Python no tiene un tipo de carácter separado, un carácter es una cadena de longitud 1.

ejemplo

>>> word = 'Python'
>>> print(word[0], word[5])
P n
>>> print(word[-1], word[-6])
n P

A diferencia de las cadenas de C, las cadenas de Python no se pueden cambiar. Asignar un valor a una posición de índice, como palabra[0] = 'm', provocará un error.

Aviso:

1. Las barras diagonales inversas se pueden usar para escapar, y r se puede usar para evitar que se escapen las barras diagonales inversas.
2. Las cadenas se pueden concatenar con el operador + y repetir con el operador *.
3. Las cadenas en Python tienen dos métodos de indexación, comenzando con 0 de izquierda a derecha y comenzando con -1 de derecha a izquierda.
4. Las cadenas en Python no se pueden cambiar.

lista (lista)

List (lista) es el tipo de datos más utilizado en Python.

Las listas pueden completar la implementación de la estructura de datos de la mayoría de las clases de colección. Los tipos de elementos en la lista pueden ser diferentes, admite números, las cadenas pueden incluso contener listas (el llamado anidamiento).

Una lista es una lista de elementos separados por comas escritos entre corchetes [].

Al igual que las cadenas, las listas también se pueden indexar y truncar. Después de truncar la lista, se devuelve una nueva lista que contiene los elementos necesarios.

El formato de sintaxis de la interceptación de listas es el siguiente:

variable [subíndice principal: subíndice final]

Los valores de índice comienzan en 0 y comienzan en -1 desde el final.

inserte la descripción de la imagen aquí

El signo más + es el operador de concatenación de listas y el asterisco * es la operación de repetición. Los ejemplos son los siguientes:

ejemplo

#!/usr/bin/python3

list = [ 'abcd', 786 , 2.23, 'runoob', 70.2 ]
tinylist = [123, 'runoob']

print (list)            # 输出完整列表
print (list[0])         # 输出列表第一个元素
print (list[1:3])       # 从第二个开始输出到第三个元素
print (list[2:])        # 输出从第三个元素开始的所有元素
print (tinylist * 2)    # 输出两次列表
print (list + tinylist) # 连接列表

La salida del ejemplo anterior:

['abcd', 786, 2.23, 'runoob', 70.2]
abcd
[786, 2.23]
[2.23, 'runoob', 70.2]
[123, 'runoob', 123, 'runoob']
['abcd', 786, 2.23, 'runoob', 70.2, 123, 'runoob']

A diferencia de las cadenas de Python, los elementos de las listas se pueden cambiar:

ejemplo

>>> a = [1, 2, 3, 4, 5, 6]
>>> a[0] = 9
>>> a[2:5] = [13, 14, 15]
>>> a
[9, 2, 13, 14, 15, 6]
>>> a[2:5] = []   # 将对应的元素值设置为 []
>>> a
[9, 2, 6]

List tiene muchos métodos integrados, como append(), pop(), etc., que se mencionarán más adelante.

Aviso:

1. La lista se escribe entre corchetes y los elementos se separan con comas.
2. Al igual que las cadenas, las listas se pueden indexar y dividir.
3. La lista se puede empalmar usando el operador +.
4. Los elementos de la Lista se pueden cambiar.
La intercepción de la lista de Python puede recibir el tercer parámetro, que es el tamaño de paso de la intercepción. El siguiente ejemplo está en el índice 1 al índice 4 y establece el tamaño de paso en 2 (una posición aparte) para interceptar la cadena:

inserte la descripción de la imagen aquí

Si el tercer parámetro es negativo, significa lectura inversa, el siguiente ejemplo se utiliza para invertir la cadena:

ejemplo

def reverseWords(input):
     
    # 通过空格将字符串分隔符,把各个单词分隔为列表
    inputWords = input.split(" ")
 
    # 翻转字符串
    # 假设列表 list = [1,2,3,4],  
    # list[0]=1, list[1]=2 ,而 -1 表示最后一个元素 list[-1]=4 ( 与 list[3]=4 一样)
    # inputWords[-1::-1] 有三个参数
    # 第一个参数 -1 表示最后一个元素
    # 第二个参数为空,表示移动到列表末尾
    # 第三个参数为步长,-1 表示逆向
    inputWords=inputWords[-1::-1]
 
    # 重新组合字符串
    output = ' '.join(inputWords)
     
    return output
 
if __name__ == "__main__":
    input = 'I like runoob'
    rw = reverseWords(input)
    print(rw)

La salida es:

runoob like I

tupla

Una tupla es similar a una lista, excepto que los elementos de una tupla no se pueden modificar. Las tuplas se escriben entre paréntesis (), y los elementos se separan por comas.

Los tipos de elementos en la tupla también pueden ser diferentes:

ejemplo

#!/usr/bin/python3

tuple = ( 'abcd', 786 , 2.23, 'runoob', 70.2  )
tinytuple = (123, 'runoob')

print (tuple)             # 输出完整元组
print (tuple[0])          # 输出元组的第一个元素
print (tuple[1:3])        # 输出从第二个元素开始到第三个元素
print (tuple[2:])         # 输出从第三个元素开始的所有元素
print (tinytuple * 2)     # 输出两次元组
print (tuple + tinytuple) # 连接元组

La salida del ejemplo anterior:

('abcd', 786, 2.23, 'runoob', 70.2)
abcd
(786, 2.23)
(2.23, 'runoob', 70.2)
(123, 'runoob', 123, 'runoob')
('abcd', 786, 2.23, 'runoob', 70.2, 123, 'runoob')

Al igual que las cadenas, las tuplas se pueden indexar y el índice del subíndice comienza desde 0, y -1 es la posición desde el final. También se puede realizar la intercepción (ver arriba, no hay más detalles aquí).

De hecho, las cadenas se pueden considerar como un tipo especial de tupla.

ejemplo

>>> tup = (1, 2, 3, 4, 5, 6)
>>> print(tup[0])
1
>>> print(tup[1:5])
(2, 3, 4, 5)
>>> tup[0] = 11  # 修改元组元素的操作是非法的
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>>

Aunque los elementos de una tupla son inmutables, puede contener objetos mutables, como listas.

La construcción de tuplas con 0 o 1 elementos es especial, por lo que existen algunas reglas de sintaxis adicionales:

tup1 = ()    # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号

cadena, lista y tupla pertenecen a secuencia (secuencia).

Aviso:

1. Al igual que las cadenas, los elementos de las tuplas no se pueden modificar.
2. Las tuplas también se pueden indexar y cortar de la misma manera.
3. Preste atención a las reglas de sintaxis especiales para construir tuplas que contienen 0 o 1 elementos.
4. Las tuplas también se pueden concatenar usando el operador +.

Conjunto (colección)

Un conjunto se compone de uno o varios todos de diversas formas y tamaños, y las cosas u objetos que constituyen un conjunto se denominan elementos o miembros.

La funcionalidad básica es realizar pruebas de pertenencia y eliminar elementos duplicados.

Puede usar llaves { } o la función set() para crear una colección. Nota: para crear una colección vacía, debe usar set() en lugar de { }, porque { } se usa para crear un diccionario vacío.

Crear formato:

parame = {
    
    value01,value02,...}
或者
set(value)

ejemplo

#!/usr/bin/python3

sites = {
    
    'Google', 'Taobao', 'Runoob', 'Facebook', 'Zhihu', 'Baidu'}

print(sites)   # 输出集合,重复的元素被自动去掉

# 成员测试
if 'Runoob' in sites :
    print('Runoob 在集合中')
else :
    print('Runoob 不在集合中')


# set可以进行集合运算
a = set('abracadabra')
b = set('alacazam')

print(a)

print(a - b)     # a 和 b 的差集

print(a | b)     # a 和 b 的并集

print(a & b)     # a 和 b 的交集

print(a ^ b)     # a 和 b 中不同时存在的元素

La salida del ejemplo anterior:

{
    
    'Zhihu', 'Baidu', 'Taobao', 'Runoob', 'Google', 'Facebook'}
Runoob 在集合中
{
    
    'b', 'c', 'a', 'r', 'd'}
{
    
    'r', 'b', 'd'}
{
    
    'b', 'c', 'a', 'z', 'm', 'r', 'l', 'd'}
{
    
    'c', 'a'}
{
    
    'z', 'b', 'm', 'r', 'l', 'd'}

Diccionario

Los diccionarios son otro tipo de datos incorporado muy útil en Python.

Una lista es una colección ordenada de objetos y un diccionario es una colección desordenada de objetos. La diferencia entre los dos es que se accede a los elementos del diccionario por clave, no por desplazamiento.

Un diccionario es un tipo de asignación, y el diccionario está marcado con { }, que es una colección de clave (clave): valor (valor) desordenada.

Las claves deben usar tipos inmutables.

Dentro del mismo diccionario, las claves deben ser únicas.

ejemplo

#!/usr/bin/python3

dict = {
    
    }
dict['one'] = "1 - 菜鸟教程"
dict[2]     = "2 - 菜鸟工具"

tinydict = {
    
    'name': 'runoob','code':1, 'site': 'www.runoob.com'}


print (dict['one'])       # 输出键为 'one' 的值
print (dict[2])           # 输出键为 2 的值
print (tinydict)          # 输出完整的字典
print (tinydict.keys())   # 输出所有键
print (tinydict.values()) # 输出所有值

La salida del ejemplo anterior:

1 - 菜鸟教程
2 - 菜鸟工具
{
    
    'name': 'runoob', 'code': 1, 'site': 'www.runoob.com'}
dict_keys(['name', 'code', 'site'])
dict_values(['runoob', 1, 'www.runoob.com'])

El constructor dict() puede construir directamente un diccionario a partir de una secuencia de pares clave-valor de la siguiente manera:

ejemplo

>>> dict([('Runoob', 1), ('Google', 2), ('Taobao', 3)])
{
    
    'Runoob': 1, 'Google': 2, 'Taobao': 3}
>>> {
    
    x: x**2 for x in (2, 4, 6)}
{
    
    2: 4, 4: 16, 6: 36}
>>> dict(Runoob=1, Google=2, Taobao=3)
{
    
    'Runoob': 1, 'Google': 2, 'Taobao': 3}

{x: x**2 para x en (2, 4, 6)} Este código usa comprensión de diccionario. Para obtener más contenido de derivación, consulte: Derivación de Python.

Además, el tipo de diccionario también tiene algunas funciones integradas, como clear(), keys(), values(), etc.

Aviso:

1. Un diccionario es un tipo de mapeo cuyos elementos son pares clave-valor.
2. Las palabras clave del diccionario deben ser inmutables y no pueden repetirse.
3. Cree un diccionario vacío usando { }.

Conversión de tipos de datos de Python

A veces, necesitamos convertir el tipo de datos incorporado. Para la conversión de tipos de datos, solo necesita usar el tipo de datos como el nombre de la función. En el próximo capítulo, se presentará en detalle la conversión de tipos de datos de Python3.

Las siguientes funciones integradas pueden realizar conversiones entre tipos de datos. Estas funciones devuelven un nuevo objeto que representa el valor convertido.

función describir
int(x [,base]) convertir x a un entero
flotar(x) Convertir x en un flotante
complejo (real [, imagen]) crear un plural
cadena(x) convertir el objeto x en una cadena
repetición(x) Convierta el objeto x en una cadena de expresión
evaluar(cadena) Evalúa una expresión de Python válida en una cadena y devuelve un objeto
tupla(s) convertir la secuencia s en una tupla
liza) convertir la secuencia s a una lista
conjunto(s) convertir a una colección mutable
dictado (d) Crea un diccionario. d debe ser una secuencia de tuplas (clave, valor).
conjunto(s) congelado(s) Convertir a colección inmutable
cr(x) Convertir un número entero en un carácter
ord(x) convierte un caracter a su valor entero
hexadecimal(x) Convertir un número entero a una cadena hexadecimal
oct(x) convierte un entero en una cadena octal

Supongo que te gusta

Origin blog.csdn.net/u011397981/article/details/130999519
Recomendado
Clasificación