Tarea 1 del campo de entrenamiento Ali Tianchi Python

1. Operación de bits

Ejemplo: inverso 4 bit a bit

print(bin(~4),~4)
#运行结果
-0b101 -5

Cálculo: si el calculado de 16 bits, 4 se convierte al primer binario : 0,000,000,000,000,100, cada uno se invierte para dar el resultado final del complemento : 1,111,111,111,111,011, entonces de acuerdo con el complemento para obtener el código original es : 1000 0000 0000 0101, convertido a decimal es -5.

2. Tipo de datos y conversión

2.1 Utilice getcontext (). Prec para ajustar la precisión

Ejemplo: haga 1/3 de reserva de cuatro dígitos.

import decimal
from decimal import Decimal
decimal.getcontext().prec=4
c=Decimal(1)/Decimal(3)
print(c)
#运行结果
0.3333

2.2isinstancia (objeto, información de clase)

objeto- instancia objeto.
classinfo: pueden ser nombres de clase directos o indirectos, tipos básicos o tuplas compuestas por ellos. Determina si un objeto es de un tipo conocido.

print(isinstance(2, int))
print(isinstance(5.7, float))
print(isinstance(True, bool))
print(isinstance('5.22', str))
#运行结果
True True True True

La diferencia entre isinstance () y type () :

type () no considera que la subclase sea un tipo padre y no considera la relación de herencia.

isinstance () considerará que la subclase es un tipo de clase padre y considerará la relación de herencia.

Si desea juzgar si dos tipos son iguales, se recomienda isinstance () .
ejemplo:

class A:
    pass
 
class B(A):
    pass
 
print(isinstance(A(), A))    #True
print(type(A()) == A)        #True
print(isinstance(B(), A))    #True
print(type(B()) == A)        #False

3. Declaración de bucle

3.1 bucle while-else

while 布尔表达式:
	代码块
else:
	代码块

Cuando el tiempo bucle se ejecuta normalmente, la salida demás se ejecuta . Si la afirmación de que salta fuera del bucle se ejecuta en el tiempo de bucle, tales como ruptura , el contenido del otro bloque de código no se ejecutará .
ejemplo:

count = 0
while count < 2:
	print("%d is  less than 2" % count)
	count = count + 1
	#break可直接跳出循环,不执行else语句
else:
	print("%d is not less than 2" % count)
	
# 0 is  less than 2
# 1 is  less than 2
# 2 is not less than 2

3.2 función enumerar ()

La función enumerate () se utiliza para combinar un objeto de datos transitable (como una lista, tupla o cadena) en una secuencia de índice y enumerar datos y subíndices de datos al mismo tiempo. Generalmente se utiliza en un bucle for .

enumerar (secuencia, [inicio = 0])
secuencia : una secuencia, iterador u otro objeto que admita la iteración.
inicio: la posición inicial del subíndice.

Ejemplo:

>>>seasons = ['Spring', 'Summer', 'Autumn', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Autumn'), (3, 'Winter')]
>>> list(enumerate(seasons, start=1))       # 下标从 1 开始
[(1, 'Spring'), (2, 'Summer'), (3, 'Autumn'), (4, 'Winter')]

Ordinario para bucle

>>>i = 0
>>> seq = ['one', 'two', 'three']
>>> for element in seq:
	    print i, seq[i]
     	i +=1

0 one
1 two
2 three

para uso de bucle enumerate ()

>>>seq = ['one', 'two', 'three']
>>> for i, element in enumerate(seq):
...     print i, element
... 
0 one
1 two
2 three

4. Derivado

4.1 Comprensión de listas

Formato de comprensión de listas:

[expr por valor en colección [si condición]

Ejemplo:

x = [-4, -2, 0, 2, 4]
y = [a * 2 for a in x]
print(y) 

#[-8, -4, 0, 4, 8]

x = [[i, j] for i in range(0, 3) for j in range(0, 3)]
print(x)

# [[0, 0], [0, 1], [0, 2], [1, 0], [1, 1], [1, 2], [2, 0], [2, 1], [2, 2]]

a = [(i, j) for i in range(0, 3) if i < 1 for j in range(0, 3) if j > 1]
print(a)

# [(0, 2)]

4.2 Comprensión de tuplas

Formato de comprensión de tuplas:

(Expr por valor en colección [si condición])

Ejemplo:

a=tuple(x for x in range(10))
print(a)

#(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

4.3 Comprensión del diccionario

Formato de comprensión de tuplas:

{key_expr: value_expr para el valor en la colección [si la condición]}

Ejemplo:

b = {
    
    i: i % 2 == 0 for i in range(10) if i % 3 == 0}
print(b)

# {0: True, 3: False, 6: True, 9: False}

4.4 Comprensión de conjuntos

Formato de comprensión de tuplas:

{expr por valor en colección [si condición]

Ejemplo:

c = {
    
    i for i in [1, 2, 3, 4, 5, 5, 6, 4, 3, 2, 1]}
print(c)

# {1, 2, 3, 4, 5, 6}

4.5 función siguiente ()

next () devuelve el siguiente elemento del iterador.
La función next () debe usarse junto con la función iter () que genera iteradores.
gramática:

siguiente (iterable [, predeterminado])

iterable : objeto iterable
predeterminado: opcional, se utiliza para establecer el valor predeterminado que se devolverá cuando no haya un elemento siguiente. Si no está configurado y no hay un elemento siguiente, se activará StopIteration .

Ejemplo:

# 首先获得Iterator对象:
it = iter([1, 2, 3, 4, 5])
# 循环:
while True:
    try:
        # 获得下一个值:
        x = next(it)
        print(x)
    except StopIteration:
        # 遇到StopIteration就退出循环
        break
        
#1 2 3 4 5

5. Manejo de excepciones

5.1 declaración try-except

formato:

try:
	检测范围 
except Exception[as reason]:
	出现异常后的处理代码

Manera de trabajar:

  1. Primero, ejecute la cláusula try ( la declaración entre la palabra clave try y la palabra clave excepto
  2. Si no se produce ninguna excepción, ignore la cláusula except y finalice después de que se ejecute la cláusula try .
  3. Si ocurre una excepción durante la ejecución de la cláusula try , el resto de la cláusula try se ignorará. Si el tipo de excepción coincide con el nombre después de except , se ejecutará la cláusula except correspondiente . Finalmente ejecute el código después de la declaración try-except
  4. Si una excepción no coincide con ninguna excepto , la excepción se pasará al intento superior .

Ejemplo:

try:
	f = open('test.txt')
	print(f.read())
	f.close()
except OSError:
	print('打开文件出错')
	
# 打开文件出错

Una declaración try puede contener múltiples cláusulas except para manejar diferentes excepciones específicas. Solo se ejecutará una rama como máximo.
ejemplo:

dict1 = {
    
    'a': 1, 'b': 2, 'v': 22} 
try:
	x = dict1['y']
except LookupError:
   	print('查询错误')
except KeyError:
   	print('键错误') 
else:
	print(x)
	
# 查询错误

La declaración try-except-else intentó consultar los pares clave-valor que no estaban en el dict , lo que provocó una excepción. Esta excepción debe pertenecer a KeyError con precisión , pero como KeyError es una subclase de LookupError , y LookupError se coloca antes de KeyError , el programa ejecuta primero el bloque de código except . Por lo tanto, cuando utilice varios bloques excepto de código, debe cumplir con el orden de sus especificaciones, desde la excepción más específica hasta la excepción más general.

Una cláusula except puede manejar varias excepciones al mismo tiempo, y estas excepciones se colocarán entre paréntesis como una tupla.
ejemplo:

try:
	...
except (OSError, TypeError, ValueError) as error:
	print('出错了!\n原因是:' + str(error))
	
# 出错了! 
# 原因是:unsupported operand type(s) for +: 'int' and 'str'

5.2 declaración try-excepto-finalmente

formato:

try:
	检测范围
except Exception[as reason]:
	出现异常后的处理代码
finally:
	无论如何都会被执行的代码

Independientemente de si se produce una excepción en la cláusula try , se ejecutará la cláusula finalmente .

5.3 declaración try-except-else

formato:

try:
	检测范围 
except:
	出现异常后的处理代码 
else:
	如果没有异常执行这块代码

Use excepto sin ningún tipo de excepción, esta no es una buena manera, no podemos identificar información de excepción específica a través del programa, porque detecta todas las excepciones.

5.4 declaración de aumento

Utilice la declaración de aumento para lanzar una excepción específica.
ejemplo:

try:   
	raise NameError('HiThere') 
except NameError: 
	print('An exception flew by!')
	
# An exception flew by!

Supongo que te gusta

Origin blog.csdn.net/qq_43965708/article/details/108739459
Recomendado
Clasificación