No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Operador lógico not

19/38
Recursos

Aportes 82

Preguntas 12

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

print(not True)
print(not False)

# not 
print('NOT AND')
print('True and True =>', not (True and True)) # False
print('True and False =>', not (True and False)) # True
print('False and True =>', not (False and True)) # True
print('False and False =>', not (False and False)) # True

stock = input('Ingrese el numero de stock =>')
stock = int(stock)

print(not (stock >= 100 and stock <= 1000))

**Especiales
**

  • Existen otros operadores especiales que veremos y utilizaremos comúnmente en bucles o para comprobar si una variable es exactamente igual a otra o no, o por ejemplo para saber si un elemento se encuentra dentro de otros, etc…

Algoritmo típico. Me ayudó a entenderlo mejor. Si eres menor de 18, no puedes votar.

try:
    age = int(input('¿Edad? '))
    puede_votar = not age < 18
    print('¿Puede votar?: ', puede_votar)
except:
    print('Escribe tu edad en número entero')

El operador Not niega un condición y cambia su valor arrojando el booleano inverso
not True = False
not False = True

print( not True)
print( not False)

print('NOT AND')
print('not True and True =>', not (True and True))
print('not True and False =>', not (True and False))
print('not False and True =>', not (False and True))
print('not False and False =>', not (False and False))

stock = input('Ingrese el número de stock => ')
stock = int(stock)

print(not (stock >= 100 and stock <= 1000))

Habría que ver en que momento del desarrollo de código puede ser útil utilizar la negación de operaciones lógicas.

Un aporte para la clase anterior donde se compara el rol en una empresa y se determina si es un rol requerido para poder ingresar.

role = input("Ingrese su rol en la empresa: ").capitalize()
ar_t = role == “Admin” or role == “Owner”

if ar_t == True:
print(“Acceso concedido.”)

else:
print(“Acceso denegado.”)
quit()

Ha faltado el operador XOR que en python es “^”

True ^ True #resultado->False
True ^ False #resultado->True
False ^ True #resultado->True
False ^ False #resultado->False

El operador lógico “not” (no) se utiliza para negar o invertir el valor de una condición. Su función es simple: si una condición es verdadera, “not” la convierte en falsa, y si una condición es falsa, “not” la convierte en verdadera.

🧠**Operadores lógicos:**



print(not True)
print(not False)

# and
print('NOT AND')
print('True and True => ', not(True and True))
print('True and True => ', not(True and False))
print('True and True => ', not(False and True))
print('True and True => ', not(False and False))

stock = input('ingrese el numero de stock =>' )
stock = int(stock)
print(not(stock >= 100 and stock <= 1000))
*****Logical operator: "NOT OR"*****

not (True or True) = False
not (True or False) = False
not (False or True) = False
not (False or False) = True
Para lo que queramos profundizar en tablas de verdad aqui encontré un completo resumen, está genial. Las tablas de verdad a veces se subestiman, pero el potencial es grande en la vida práctica. <https://www.uhu.es/rafael.lopezahumada/descargas/tema3_fund_0405.pdf>
```python # NOT user = input("Usuario => ").lower() print(not (user == "hacker" or user == "malware")) ```
![](https://static.platzi.com/media/user_upload/image-95783a76-2ddb-4de3-b811-31961f9a7621.jpg)
Las tablas de verdad seran toda la vida en la logica de programación. 😁
Las tablas de verdad son herramientas eficientes para comprender el comportamiento de los operadores lógicos `and`, `or` y `not` en Python y, en general, en lógica booleana. Estos operadores son fundamentales para construir expresiones condicionales y lógicas en programas.
# negación de operaciones
print('NOT AND')
print( " not True and True  =>", not (True and True))
print( " not True and False =>", not(True and False))
print( " not False and True  =>", not(False and True))
print( " not False and False  =>", not(False and False))

#Ejemplo practico
stock = input ('Ingrese el numero de stock:')
stock = int(stock)
print(not(stock  >= 100 and stock  <= 1000))


Buena explicación del operador lógico not

12_not.py
print(not True) #niega

El operador NOT invierte el resultado booleano, es algo así como cuando cierras una llave de agua y sale el agua, y cuando la quieres abrir se cierra.

print((1 not in [2,3,4,5]))
print((1 not in [1,2,3,4,5]))
print(not True)
print(not False)
print((not 1 == 1))
print((not 1 != 1))

Aca les dejo

from re import X

def  my_gen():
    #elemplo de generadores 
    print("hola mundo")
    n = 0
    yield n

    print("hello heavenl")
    n = 1
    yield n

    print("hello helli")
    n = 1
    yield n

a = my_gen()
print(next(a))
print(next(a))
print(next(a))
print(next(a))
# todo este codigo es lo mismo que un iterador pero es mucho mas fasil
# de copilar 

# generadores expression
my_list = [0,1,2,3,4,5,6,7,8,9]

my_second_list = [X*2 for x in my_list]
my_second_gen = (x*2 for x in my_list)

#ventajas de usar generadores, es mucho mas facil 
#de escrivir que un interador y tine todas las ventajas de los 
#iteradores (Horrar memoria, recursos, tiempo y puedo 
# cuardar secuencias infinitas )
El operador lógico **NOT** se utiliza para invertir el valor de verdad de una expresión booleana. Si tienes un valor **TRUE** y le aplicas **NOT**, obtienes **FALSE**. De manera similar, si aplicas **NOT** a **FALSE**, obtienes **TRUE**. Este operador es útil para crear condiciones que deben cumplirse cuando una afirmación no es verdadera. Por ejemplo, en una validación de stock, puedes usarlo para verificar que un valor no esté dentro de un rango específico, invirtiendo así la lógica de las condiciones. Aquí tienes un ejemplo en Python: ```python stock = 50 if not (stock > 100 and stock <= 1000): print("El stock está fuera del rango.") ``` Esto verifica si el stock no está entre 100 y 1000. Si no lo está, se ejecuta el bloque de código.
Esto se utilizaba en la clase de circuitos, genial, ya se me habian olvidado estos conceptos de programacion
¿Alguien podria ponerme un ejemplo de para que usaria el "NOT"? Porque no lo veo muy util en este momento
Se revive todo el tema de compuertas lógicas
el not se incluye dentro de la operación , para definir la negación. \#not print(not True) print(not False) print('NOT AND') print('not True and True =>', not (True and True)) print('not True and False =>', not (True and False)) print('not False and True =>', not (False and True)) print('not False and False =>', not (False and False)) stock = input('Ingrese el numero de stock => ') stock = int(stock) print(not (stock >= 100 and stock <= 1000))
Al mantener presionado la tecla de alt y luego dando click en varias líneas, se puede editar a la vez todas las líneas a la vez, es mucho más practico que editar cada línea.
TIPS para el uso del operador NOT:  * **Evita dobles negaciones:** En general, es mejor evitar las dobles negaciones en tus condiciones, ya que pueden hacer que el código sea más difícil de entender. Por ejemplo, en lugar de if not (x != y):, es mejor escribir if x == y:. * **Aprovecha NOT para verificar si una lista o string está vacía:** En Python, las listas, strings y otros contenedores vacíos se consideran False cuando se evalúan en un contexto booleano. Por lo tanto, puedes usar NOT para verificar si están vacíos. Por ejemplo, if not lista: se evaluará como True si la lista está vacía.
Los operadores lógicos equivalen a las compuertas se utilizan en la construcción de circuitos digitales, que a su vez forman la base de los sistemas informáticos modernos. ![](https://static.platzi.com/media/user_upload/image-364bdcc3-b94a-4675-8ed9-65545093c74a.jpg)
Empleando la herramiena de IA integrada ahora en Replit, quise modificar un poco el ejemplo del stock available. Este fue el codigo que empleé: `stock = int(input('Ingrese la cantidad de unidades que desea comprar => '))` `if stock >= 100 and stock <= 1000:` ` print("Tenemos dicha cantidad, nos pondremos en contacto contigo")` `else:` ` print(f"No tenemos {stock} unidades disponibles, regresa en otra ocasión")` Fue interesante, porque del curso de programación básica que había tomado hace algunos años, medio había entendido los procesos, y creía entender cosas. Antes del resultado anterior, cometí algunos errores, y la IA me ayudó a depurar. Por ejemplo, este fue uno de los errores: yo agregué este código: print(if stock >= 100 and stock <= 1000) "No tenemos dicha cantidad, regresa en otra ocasión") Pero la IA me explicó el errore y me dijo que lo correcto sería algo así: if stock >= 100 and stock <= 1000: print("No tenemos dicha cantidad, regresa en otra ocasión") Y me explicó: The error in the code snippet is due to the incorrect use of the `if` statement within the `print` function. The `if` statement should not be used inside the `print` function directly. Lo mismo sucedió con el resto del texto. Fue muy interesante. Y me agrada que existan ahora este tipo de complementos para tener a "alguien" que horiente a la hora de enfrentarse a hacer código. El resultado: ![](https://static.platzi.com/media/user_upload/Ejemplo%20de%20Stock%20con%20operadores%20l%C3%B3gicos-9b12988c-5bdc-4a64-a7c3-947c03776f3e.jpg)
El operador 'not' se utiliza para negar un valor booleano. Si se aplica a un valor 'True', devuelve 'False', y si se aplica a un valor 'False', devuelve 'True'. Esto es útil para cambiar el estado de una condición o para verificar si una condición no se cumple. Ejemplo: ```python valor = True negando = not valor print(negando) # Output: False ```
El operador lógico `not` es un operador unario que se utiliza para negar una expresión booleana. Es decir, si la expresión que se evalúa es `True`, `not` la convertirá en `False`, y si la expresión es `False`, `not` la convertirá en `True`. Aquí te muestro cómo funciona: pythonCopy code`x = True` `if not` x: ` print("x es False"`) `else`: ` print("x es True"`) En este caso, `x` es `True`, pero al usar `not`, la expresión se niega, por lo que la salida será "x es False". También puedes usar `not` con expresiones más complejas: pythonCopy code`edad = 20` `if not (edad < 18`): ` print("Es mayor de edad"`) `else`: ` print("Es menor de edad"`) En este ejemplo, `not (edad < 18)` niega la expresión `(edad < 18)`, por lo que si la edad no es menor que 18, se imprimirá "Es mayor de edad". El operador `not` es útil para invertir el valor de una expresión booleana, lo que puede simplificar las expresiones condicionales y hacer que el código sea más legible.
me hace recordar bastante a la clase de algebra booleana, se me hace mas fácil pensar, como si fuera una recta cuando hay AND es una intersección, cuando hay OR se respeta cualquiera de ambos
Leyes de De Morgan: NOT (A AND B) = (NOT A) OR (NOT B) NOT (A OR B) = (NOT A) AND (NOT B) Básicamente, para negar un AND, ponemos un OR y negamos las dos proposiciones. Y lo mismo con OR, ponemos un AND y negamos las dos proposiciones.
Ahora mismo no le veo mucha lógica pero imagino que en un futuro lo tendrá.

en la clase nos podrian haber dicho en que casos se usa not, es útil saber como funciona pero igual es útil saber en que casos particulares en preferible usarlo

\# not: es negacion decir invertir el valor print(not True) print(not False) \# and print('NOT AND') print('true and true =>', not(True and True)) print('true and false =>', not(True and False)) print('False and true =>', not(False and True)) print('False and False =>', not(False and False)) stock = input('Ingrese el numero de stock =>') stock = int(stock) print(not (stock >= 100 and stock <= 100))

No hay que olvidarse del hermano del OR, el XOR (Exclusive OR)

ahora si me quedo claro

En este ejercicio, se debera analizar todo lo avanzado hasta el momento y como este puede ser empleado.

Una forma sencilla de entender los operadores logicos es tomarlos como operaciones aritmeticas.
AND: Es multiplicacion, por eso solo daN true si los dos son verdaderos (1):
11 = 1
1
0 = 0
01 = 0
0
0 = 0
OR: Es una suma, por eso al menos unos de los dos valores debe ser verdadero (1), en este caso asumamos que uno mas 1 no es dos, si no que 1 mas 1 sigue siendo 1 (True)
1+1 = 1
1+0 = 1
0+1 = 1
0+0 = 0
NOT: Multplicar por -1
False *-1 = True
True *-1 = False

print(not True) print(not False) \# and print('NOT AND') print('True and True => ', not(True and True)) print('True and True => ', not(True and False)) print('True and True => ', not(False and True)) print('True and True => ', not(False and False)) stock = input('ingrese el numero de stock =>' ) stock = int(stock) print(not(stock >= 100 and stock <= 1000))
Un aporte para la clase anterior donde se compara el rol en una empresa y se determina si es un rol requerido para poder ingresar. role = input("Ingrese su rol en la empresa: ").capitalize() ar\_t = role == "Admin" or role == "Owner" if ar\_t == True: print("Acceso concedido.") else: print("Acceso denegado.") quit()

Algoritmo de negacion NOT aplicado a una fiesta solo para menores de edad.

edad = int(input("Cual es tu edad we ? "))
if not (edad >= 18):
   print(" Bienvenido a mi fiesta ")
else:
  print(" No estas invitado :() ")

En este ejerccio altero la logica natural del programa con el uso de NOT


#Boletin de noticias por correo algoritmo con NOT 

suscripcion  = int(input("Deseas recibir las noticias si(1) no(0)"))

if not suscripcion:
  print("Te haz suscrito con exito al boletin de noticias")
else:
  print("No haz podido suscribirte")
<code> 
# OPERADORES LOGICOS

print("#" * 100)
print("#" * 33, " " * 6, "OPERADORES LOGICOS", " " * 6, "#" * 33)
print("#" * 100)

# AND

print(" " * 10, '"AND"')
print(" " * 10, '*****')
print("")

print(" " * 3, 'True and True =>', True and True)
print("")
print(" " * 3, 'rue and False =>', True and False)
print("")
print(" " * 3, 'False and True =>', False and True)
print("")
print(" " * 3, 'False and False =>', False and False)
print("")

print(" " * 3, '"Ejemplos de uso"')
print(" " * 3, '*****************')
print("")

print(" " * 3, '10 > 5 and 5 < 10 =>', True and True)
print("")
print(" " * 3, '10 > 5 and 5 > 10 =>', True and False)
print("")
print(" " * 3, '10 < 5 and 5 < 10 =>', False and True)
print("")
print(" " * 3, '10 < 5 and 5 > 10 =>', False and False)
print("")

'''
stock = input('Ingrese el numero de estock: =>')
stock = int(stock)
print(" " * 3, 'Estock: =>', stock >= 100 and stock <= 1000)
'''

print("")
print("")
print("#" * 100)

# OR

print(" " * 10, '"OR"')
print(" " * 10, '****')
print("")

print(" " * 3, 'True or True =>', True or True)
print("")
print(" " * 3, 'rue or False =>', True or False)
print("")
print(" " * 3, 'False or True =>', False or True)
print("")
print(" " * 3, 'False or False =>', False or False)
print("")

print(" " * 3, '"Ejemplos de uso"')
print(" " * 3, '*****************')
print("")

print(" " * 3, '10 > 5 or 5 < 10 =>', True or True)
print("")
print(" " * 3, '10 > 5 or 5 > 10 =>', True or False)
print("")
print(" " * 3, '10 < 5 or 5 < 10 =>', False or True)
print("")
print(" " * 3, '10 < 5 or 5 > 10 =>', False or False)
print("")

'''
role = input('Digita tu rol en minuscula: =>')
print(" " * 3, 'Role =>', role == 'admin' or role == 'seller')
'''

print("")

print("#" * 100)

# NOT

print(" " * 10, '"NOT"')
print(" " * 10, '*****')
print("")

print(" " * 3, 'not True =>', not True)
print("")
print(" " * 3, 'not False =>', not False)
print("")

print(" " * 3, '"Ejemplos de uso"')
print(" " * 3, '*****************')
print("")
 
print(" " * 3, 'not (True and True) =>', not (True and True))
print("")
print(" " * 3, 'not (rue and False) =>', not (True and False))
print("")
print(" " * 3, 'not (False and True) =>', not (False and True))
print("")
print(" " * 3, 'not (False and False) =>', not (False and False))
print("")

print(" " * 3, 'not (True or True) =>', not (True or True))
print("")
print(" " * 3, 'not (rue or False) =>', not (True or False))
print("")
print(" " * 3, 'not (False or True) =>', not (False or True))
print("")
print(" " * 3, 'not (False or False) =>', not (False or False))
print("")



print("#" * 100)
print(not True, "<= not true")
print(not False, "<= not false")
print(not True)
print(not False)

# and negación de todas las combinaciones de operaciones

print('NOT AND')
print('not True and True =>', not (True and True))
print('not True and False =>', not (True and False))
print('not False and True =>', not (False and True))
print('not False and False =>', not (False and False))


#or negación de todas las combinaciones de operaciones

print('NOT OR')
print('True or True =>', not (True or True))
print('True or False =>', not (True or False))
print('False or True =>', not (False or True))
print('False or False =>', not (False or False))

stock = input('Ingrese el numero de stock => ')
stock = int(stock)

print(not (stock >= 100 and stock <= 1000))

Pequeño resumen de la clase

print(not True)
print(not False)

# not
print('NOT AND')
print('not True and True =>', not (True and True)) #False
print('not True and False =>',not (True and False)) #True
print('not False and True =>', not (False and True)) #True
print('not False and False =>',not (False and False)) #True


stock = input('Ingrese el número de stock => ')
stock = int(stock)

print(not (stock >= 100 and stock <= 1000))

espero que mas adelante podamos ver los demas operadores y como se aplican en la vida real

si ingresan estas líneas de código en la terminal deberían obtener True, independientemente del valor de A y B

A = True
B = True
not(A and B) == not(A) or not(B)
not(A or B) == not(A) and not(B)

o sea que en el int de stock si pongo un numero par me tira True si es numero alto imper me tira False

NOT
not True = False
not False = True

True or True = True
True or False = True
False or True = True
False or False = False

AND

True and True = True
True and False = False
False and True = False
False and False = False

Realmente lo que se quiso decir fue lo siguiente:

# AND y NOT
print('NOT AND')
print('NOT (True AND True) --> ', not(True and True))
print('NOT (True AND False) --> ', not(True and False))
print('NOT (False AND True) --> ', not(False and True))
print('NOT (False AND False) --> ', not(False and False))

ya que al usar not True AND True, se resolvería de la siguiente manera:

not  True AND True
False AND True
False
class18 = 'No entendi'
print(not(class18 == 'No entendi'))

print (not True)
print (not False)

print (“NOT And”)
print (“True and True =>”, not (True and True ))
print (“True and False =>”, not (True and False ))
print (“False and True =>”, not (False and True ))
print (“False and False =>”, not (False and False ))

stock = input(" Ingrese el numero de stock")
stock = int(stock)
print(not(stock>=100 and stock<=1000))

# Operador not
print(not True) #False
print(not False) #True
print("not True and True", not(True and True)) #False
print("not True and False", not(True and False)) #True
print("not False and True", not(False and True)) #True
print("not False and False", not(False and False)) #True

stock = int(input("Ingrese el numero de stock =>"))

print(not (stock >= 100 and stock <= 1000))
print(not True)
print(not False)

# and
print('NOT AND ')
print('not True and True =>', not(True and True)) #Uno de los dos debe ser falso para true
print('not True and False =>', not(True and False)) #niega toda una operación
print('not False and True =>', not(False and True))
print('not False and False =>', not(False and False))

stock = int(input('Ingrese el numero de stock => '))
print(not (stock >= 100 and stock <= 1000))

Buena explicación del operador lógico not

Gran aporte ❤️

En Python, los operadores lógicos AND, OR y NOT se utilizan para evaluar expresiones booleanas y producir un resultado booleano. El operador AND retorna True si ambos operandos son verdaderos, el operador OR retorna True si al menos uno de los operandos es verdadero, y el operador NOT invierte el valor booleano del operando.

Mi aporte en notion

Interesante todo el tema de compuertas logicas y algebra de boole

Mi Codiguito 😉

# NOT
print("\n" + "-" * 10 + " NOT " + "-" * 10 + "\n")
print (not True)
print (not False)

# NOT AND
print("\n" + "-" * 10 + " NOT AND " + "-" * 10 + "\n")

print("True and True =>", not (True and True))
print("True and False =>", not(True and False))
print("False and True =>", not(False and True))
print("False and False =>", not(False and False))


stock = input('Engrese el numero de stock => ')
stock = int(stock)

print(not (stock >= 100 and stock <= 1000))

NOT

print(’#’*5,’ NOT ‘, ‘#’*5)
print(’’)

print(not True)
print(not False)
print(’’)

print(‘NOT AND’)

print(‘True and True =>’, not (True and True)) # False
print(‘True and False =>’, not (True and False)) # True
print(‘False and True =>’, not (False and True)) # True
print(‘False and False =>’, not (False and False)) # True

stock = input(‘Ingrese el numero de stock =>’)
stock = int(stock)

print(not (stock >= 100 and stock <= 1000))

print(not True)
print(not False)

# and
print('NOT AND')
print('not True and True =>', not (True and True))
print('not True and false =>', not (True and False))
print('not False and True =>', not (False and True))
print('not False and False =>', not (False and False))

stock = input('Ingrese el número de stock => ')
stock = int(stock)

print(not (stock >=100 and stock <= 1000))
print(not True)
print(not False)

# and
print(' notand')
print(' not True and True =>',not (True and True))
print('not True and False =>',not (True and False))
print('not False and True =>',not (False and True))
print('not False and False =>',not (False and False))

stock = input('Ingrese el numero de stock => ')
stock = int(stock)

print(not (stock >= 100 and stock <= 1000))

Operadores de identidad en Python
|

is
is not

|
Operadores de membresía de Python
|

in
not in
""" not """
print("not True =", not True)
print("not False =", not False)

# Examples
print("-" * 35)
print("Examples")
print("13 <= 18 and not (34 > 18): ", 13 <= 18 and not (34 > 18))
print("not (17 <= 18) and 12 > 23: ", not (17 <= 18) and 12 > 23)
print("2 == pez or not (2 + 2 == 4): ", 2 == 'pez' or not (2 + 2 == 4))
print("not (2 + 2 == pez) or 0 ** 0 == 1: ", not (2 + 2 == 'pez') or 0**0 == 1)
print(not True)
print(not False)

#* and
print('NOT AND')
print('NOT True and True => ', not(True and True))
print('NOT True and True => ', not(True and False))
print('NOT True and True => ', not(False and True))
print('NOT True and True => ', not(False and False))

stock = int(input('ingrese el numero de stock =>' ))
print(not(stock >= 100 and stock <= 1000))