¿Qué significan los símbolos “=” y “==” en python?

¿Cuándo debo usar el símbolo ‘==’ y cuando solo el símbolo ‘=’ es suficiente? ¿Qué significa el símbolo ‘==’ en python?

Comencé a codificar en Python hace 2 semanas y estos dos símbolos me confundían a veces. Varias veces cuando usé ‘=’, recibía un mensaje de error. Después de cambiarlo a ‘==’, ya no aparece ningún mensaje de error. Parece que ‘==’ se puede utilizar en cualquier situación cuando ‘=’ funciona. ¿Es verdad? ¿Puede alguno de ustedes explicar el principio de usar estos dos símbolos?

Aprecio mucho su ayuda!

= es el operador de asignación , se usa para asignar algo a una variable:

 A = 67 #this is called assignment. With this, A has a value of 67 

== es un operador de comparación , se usa para comparar un artículo con otro artículo para ver si son iguales. Resulta en verdadero o falso

 A == 65 #Is A equal to 65? This does NOT assign A to 65. If A was previously assigned as 67, it still retains its 67 value 

La respuesta simple es = es un operador de asignación, == es un operador de comparación. Y se equivoca al decir que == puede usarse en cualquier situación cuando = funciona. Por ejemplo, si quisiera crear la variable my_string y establecerla como "something" , usaría el operador = .

 my_string = "something" 

Estoy asignando la variable a un objeto usando ese operador.

Si quiero comparar dos cadenas (u otros tipos de datos) como esta:

 if "something" == "nothing": #perform a function 

Estoy comparando las dos cadenas.

Sin embargo, si trato de asignar una variable con el operador == para la asignación inicial de la variable, no funcionará. Si ya está asignado, funcionará pero no hará lo que usted espera. Por ejemplo:

 my_string == "something" 

Levantará un error un error de nombre.

Del mismo modo, si intenta comparar dos cadenas (u otros tipos de datos) con el operador = esta manera:

 if "something" = "nothing": #perform a function 

Esto provocará un error de syntax.

Espero que esto te ayude a entender este concepto. Feliz progtwigcion

== es un operador de comparación, mientras que = asignará un valor a dicha variable.

Puede usar == para ver si dos elementos, siempre que sean del mismo tipo, son equivalentes:

 if a == 2: # Compares whether a is equal to 2 print a 

Ahora aquí está la cosa. Si está comparando dos elementos como estos, aparecerá un error:

  • Cadena con entero

  • Entero con una cuerda

  • Cuerda y flotador

  • Flotador y cuerda

Los flotantes y los enteros son comparables, ya que son números, pero generalmente no son iguales entre sí, excepto cuando el flotador es básicamente el entero pero con .0 agregado al final. Cuando se usa == , si los dos elementos son iguales, devolverá True . De lo contrario, devolverá False .

Puedes usar = para asignar valores a las variables. Usar == no hará nada o lanzará un error (si la variable no está definida). Por ejemplo, usted quería que la variable hi tuviera el valor de 2. Luego use = :

 hi = 2 

Ahora hi es igual a 2. Puede combinar = con operaciones como + y - asumiendo que la variable es un entero o flotante:

 hi += 1 hi -= 1 

Ahora, usando += o -= como arriba, la variable ya debe estar definida ya que estos operadores cambiarán directamente el valor de la variable. Básicamente, son así:

 hi += 1 # is the same as hi = hi + 1 hi -= 1 # is the same as hi = hi - 1 

Así que en conclusión, son diferentes como:

  • == es un operador de comparación: devuelve True los dos elementos son iguales, devuelve False si no, arroja un error si se usa para asignar una variable antes de la definición y si los dos elementos no son compatibles

  • = es un operador de asignación: asignará valores como cadenas o números a las variables. Se puede usar en formas como += cuando el valor de la variable es un número y ya está definido.

La única forma en que se pueden usar al mismo tiempo es que se pueden usar en cadenas:

 "hi = hello" "2 == 3 probably returns False don't you think?" 

La diferencia es que name = value le dice a Python que el name ahora es igual al value . name == value , por otro lado, está preguntando a Python si el name es igual al value . Hay lugares donde no puedes decirle a Python a qué name es igual, pero puedes preguntar. Por ejemplo, si quieres imprimirlo:

 >>> x = 4 >>> print x = 4 File "", line 1 print x = 4 ^ SyntaxError: invalid syntax 

Eso es porque estamos imprimiendo algo, pero x = 4 no tiene valor. Es x quien tiene el valor, por lo que queremos saber si x es igual a 4 ; No queremos decirle a Python que lo es. En ese caso, necesitas doble = :

 >>> x = 4 >>> print x == 4 True 

En cualquier lugar que pueda usar = , puede usar == ; Pero tendrá un significado diferente. Por ejemplo:

 >>> x = 4 >>> print x 4 >>> x == 4 True 

x = 4 le dice a Python que x es igual a 4 . No se muestra nada más porque es solo un comando. x == 4 por otro lado está preguntando si x es igual a 4 . Cuando hacemos una pregunta, el shell de Python nos dirá la respuesta, por lo que se imprime en True .

Como ya dijo MarkyPython. Asignación significa que usa el = para asignar el valor en el lado derecho a una variable a en el lado izquierdo. a=10 significa que a es igual a 10 de aquí en adelante.

La expresión a==10 prueba si una variable a es igual a 10. El resultado de tal prueba es un booleano (Verdadero o Falso). Tales pruebas se usan típicamente en if...then decisiones.

 a=10 # a is assigned the value of 10, and per duck-typing the type integer print a # --> 10 print type(a) # --> int print a==10 # --> True print a==11 # --> False if a==10: # if the condition is True do something else: do something else