Python - Duda asignación variables

 
Vista:
sin imagen de perfil
Val: 7
Ha aumentado su posición en 131 puestos en Python (en relación al último mes)
Gráfica de Python

Duda asignación variables

Publicado por Cristian Felipe (6 intervenciones) el 09/05/2021 15:44:20
Tengo una duda en este código

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#Herencia Practica
 
class Calculadora:
 
	def __init__ (self, numero):
 
		self.n = numero
		self.datos = [0 for i in range (numero)]
 
 
	def ingDato (self):
 
		self.datos = [int(input(f"Ingresar datos : {i+1} = ")) for i in range(self.n)]
 
 
class BasicOperation (Calculadora) :
 
	def __init__ (self):
 
		Calculadora. __init__(self,2)
 
 
 
	def suma (self):
 
		a,b, = self.datos
		s = a+b
		print(f"El resultado es: {s}")
 
 
	def resta (self):
 
		a,b, = self.datos
		r = a-b
		print(f"El resultado es: {r}")
 
 
	def mul (self):
 
		a,b, = self.datos
		m = a*b
		print(f"El resultado es: {m}")
 
 
	def div (self):
 
		a,b, = self.datos
		d = a/b
		print(f"El resultado es: {d}")
 
 
class raiz(Calculadora):
 
	def __init__ (self):
		Calculadora.__init__(self,1)
 
	def cuadrada(self):
 
		import math
 
		a, = self.datos
 
		print("El restulado es: ", math.sqrt(a))
 
 
#Ejecutar Codio
 
ej = BasicOperation()
 
print(ej.ingDato())
print(ej.suma())


La linea 26 dice a,b, = self.datos, no entiendo porque ese tipo de asignación, que significa no debería ser self.datos = a,b, ya que a,b, es una tupla. Cuando se usa esa forma (a,b, = self.datos). Por que se usa, cuando se usa y que entiende python
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Duda asignación variables

Publicado por tincopasan (1082 intervenciones) el 09/05/2021 16:36:02
el código es muy feo, pero bueno.
1) self.datos no es una tupla en este caso es una lista
2) en la lista hay dos valores lo que hace a,b = self.datos es darle a cada variable uno de los valores
3) es lo que se conoce como Desempaquetar un iterable
4) por ejemplo:
1
2
3
4
5
tupla=(7,8,9)
a,b,c=tupla
print(a)
print(b)
print(c)

a vale 7 , b vale 8 etc.

equivale a:

1
2
3
4
5
6
7
d=tupla[0]
e=tupla[1]
f=tupla[2]
 
print(d)
print(e)
print(f)

como se ve la primera forma es más simple y clara

de la primer forma se asigna a una cantidad de variables igual al largo del iterable los valores en una sola línea de código
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 7
Ha aumentado su posición en 131 puestos en Python (en relación al último mes)
Gráfica de Python

Duda asignación variables

Publicado por Cristian Espioa (6 intervenciones) el 09/05/2021 18:36:10
Una excelente respuesta, muchas gracias.

Remitiendome al comentario donde dices que el código es feo. Apenas estoy aprendiendo de manera autonoma. Que textos, videos, actividades, ejercicios manuales, etc me recomendarías para mejorar mi código. Me interesaría mejorar.

Te agradezco mucho
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar