No tienes acceso a esta clase

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

Operadores lógicos: and y or

18/38
Recursos

Aportes 112

Preguntas 10

Ordenar por:

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

A la hora de solicitarle un numero al usuario podemos hacerlo así:

int(input("Dime un numero: "))

Y nos ahorrariamos tener que convertirlo.

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

print(10 > 5 and 5 < 10) # True
print(10 > 5 and 5 > 10) # False


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

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

# or o
print('OR')
print('True or True =>', True or True) # True
print('True or False =>', True or False) # True
print('False or True =>', False or True) # True
print('False or False =>', False or False) # False

role = input('Digaita el rol => ')
print(role == 'admin' or role == 'seller') # Es administrado o vendedor

Lógicos

  • Los operadores lógicos son and (y) or (o) not (no) y sirven para comprobar si dos o más operandos son ciertos (True) o falsos (false) y nos devolverá como resultado True o False. Normalmente los solemos utilizar mucho en los condicionales para devolver un booleano comparando varios elementos.Lógica

Otro operador importante

  • En cambio el operador Not sirve para indicar el contrario de un booleano como True / False. Si colocamos un Not True estaríamos diciendo “No verdadero” y Not False “No falso”. En una condición si no es verdadero nos devolverá false y si no es false nos devolverá verdadero!
Not

El operador “not” es unario, de negación por ende
solo dará True si su elemento
es False y viceversa.

not True
not False	False
True

Espero les sirva.

les comparto el siguiente link
https://logica.fcalzado.es/tema/27-el-condicional
aquí se habla de forma bastante más profunda sobre la lógica condicional, a mí me ha ayudado bastante en entender cómo usar los condicionales y aplicarlos a los if

Si bien es sencillo seguir el paso a paso de los procedimientos que se explican, se siente este curso como cualquier otro curso en youtube de python, solo se muestran una serie de procesos y de operaciones o de acciones posibles a realizar, pero no se explica el contenido, el profesor empieza a escribir codigo sin explicar con mucho detalle por que se utiliza o de que manera se hace esto practico, seria igualmente importante tener algun tipo de ejercicio practico para poder aplicar los conceptos vistos de manera mas dinamica.

Les dejo un artículo de Platzi sobre tablas de verdad donde se profundiza en el tema y el funcionamiento de los booleanos.
Literal está explicado con peras y manzanas, así que está buenísimo para complementar el curso.

de nuevo mi humilde aporte 😃


##* and

print('AND')
print('True and True ==> ', True and True)
print('True and False ==> ', True and False)
print('False and True ==> ', False and True)
print('False and False ==> ', False and False)
print (10 > 5 and 5 > 10)
stock = int(input(' Ingrese el numero de stock => '))
print(stock >= 100 and stock <= 1000 )


##* OR 

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

role = input('Dijita el rol ==> ')

print(role == 'admin' or role =='seller')

profe muy enredado y sin contexto en la explicación

```python Operadores Lógicos en Python: and & or 🚦 Los operadores lógicos and y or son fundamentales en Python para combinar condiciones booleanas. Aquí te explico cómo usarlos y qué tener en cuenta. El Operador and 🤝 Función: El operador and devuelve True solo si ambas condiciones son verdaderas. Tabla de Verdad: A B A and B True True True True False False False True False False False False Uso Práctico: python Copy code a = 5 b = 10 if a < 10 and b < 15: print("Ambas condiciones son verdaderas!") # Esto se imprimirá Consejo: Usar and es como decir "esto Y también esto otro" deben suceder. El Operador or 🤲 Función: El operador or devuelve True si al menos una de las condiciones es verdadera. Tabla de Verdad: A B A or B True True True True False True False True True False False False Uso Práctico: python Copy code a = 20 b = 5 if a > 15 or b > 15: print("Al menos una condición es verdadera!") # Esto se imprimirá Consejo: Usar or es como decir "esto O eso" puede suceder. Consejos y Trucos 🔍 Cortocircuito: Con and, Python evalúa la segunda condición solo si la primera es True. Con or, Python evalúa la segunda condición solo si la primera es False. Legibilidad: Encierra las condiciones entre paréntesis para mejorar la legibilidad, especialmente si son complejas. Ejemplo Avanzado 🎓 python Copy code edad = 25 tiene_licencia = True # Combinando and y or if (edad >= 18 and edad <= 70) or tiene_licencia: print("Puedes conducir!") else: print("No puedes conducir.") En este ejemplo, una persona puede conducir si su edad está entre 18 y 70 o si tiene licencia de conducir. El uso de paréntesis ayuda a entender el orden en que se evalúan las condiciones. Buenas Prácticas ✅ Evalúa lo más barato primero: Si una condición es más rápida de evaluar o tiene más probabilidades de ser False, colócala antes en un and. Usa or para valores por defecto: python Copy code nombre = input("Cuál es tu nombre?") or "Usuario Desconocido" print("Hola, " + nombre) Si la entrada está vacía, nombre será "Usuario Desconocido". No compares booleanos con True o False: ❌ Incorrecto: if (condicion == True) ✅ Correcto: if condicion Resumen 📌 Recuerda que and es tu operador para cuando necesitas que todas las condiciones se cumplan, y or es tu opción cuando con que se cumpla una es suficiente. Utilizarlos correctamente es esencial para controlar el flujo de tu programa en Python de forma eficiente y efectiva. ¡Haz pruebas y verás cómo facilitan la toma de decisiones en tu código! 🐍💡 ```Operadores Lógicos en Python: `and` & `or` 🚦 Los operadores lógicos `and` y `or` son fundamentales en Python para combinar condiciones booleanas. Aquí te explico cómo usarlos y qué tener en cuenta. ## El Operador `and` 🤝 * **Función**: El operador `and` devuelve `True` solo si **ambas** condiciones son verdaderas. * **Tabla de Verdad**:ABA and BTrueTrueTrueTrueFalseFalseFalseTrueFalseFalseFalseFalse * **Uso Práctico**:pythonCopy code`a = 5` `b = 10` `if a < 10 and b < 15`: ` print("Ambas condiciones son verdaderas!") # Esto se imprimirá` * **Consejo**: Usar `and` es como decir **"esto Y también esto otro"** deben suceder. ## El Operador `or` 🤲 * **Función**: El operador `or` devuelve `True` si **al menos una** de las condiciones es verdadera. * **Tabla de Verdad**:ABA or BTrueTrueTrueTrueFalseTrueFalseTrueTrueFalseFalseFalse * **Uso Práctico**:pythonCopy code`a = 20` `b = 5` `if a > 15 or b > 15`: ` print("Al menos una condición es verdadera!") # Esto se imprimirá` * **Consejo**: Usar `or` es como decir **"esto O eso"** puede suceder. ## Consejos y Trucos 🔍 * **Cortocircuito**: * Con `and`, Python evalúa la segunda condición solo si la primera es `True`. * Con `or`, Python evalúa la segunda condición solo si la primera es `False`. * **Legibilidad**: * Encierra las condiciones entre paréntesis para mejorar la legibilidad, especialmente si son complejas. ## Ejemplo Avanzado 🎓 pythonCopy code`edad = 25` `tiene_licencia = True` `# Combinando and y or` `if (edad >= 18 and edad <= 70) or` tiene\_licencia: ` print("Puedes conducir!"`) `else`: ` print("No puedes conducir."`) En este ejemplo, una persona puede conducir si su edad está entre 18 y 70 **o** si tiene licencia de conducir. El uso de paréntesis ayuda a entender el orden en que se evalúan las condiciones. ## Buenas Prácticas ✅ * **Evalúa lo más barato primero**: Si una condición es más rápida de evaluar o tiene más probabilidades de ser `False`, colócala antes en un `and`. * **Usa** `or` **para valores por defecto**:pythonCopy code`nombre = input("Cuál es tu nombre?") or "Usuario Desconocido"` `print("Hola, "` + nombre) Si la entrada está vacía, `nombre` será `"Usuario Desconocido"`. * **No compares booleanos con** `True` **o** `False`: * ❌ Incorrecto: `if (condicion == True)` * ✅ Correcto: `if condicion` ## Resumen 📌 Recuerda que `and` es tu operador para cuando necesitas que todas las condiciones se cumplan, y `or` es tu opción cuando con que se cumpla una es suficiente. Utilizarlos correctamente es esencial para controlar el flujo de tu programa en Python de forma eficiente y efectiva. ¡Haz pruebas y verás cómo facilitan la toma de decisiones en tu código! 🐍💡

Tablas de verdad

El álgebra de boole, es álgebra creada por george boole, el cual solo tiene 2 dígitos, el “1” y el “0”, mediante estos dos dígitos se plantea representar todos los números y las operaciones entre estos.
Para realizar las operaciones se utilizan compuertas lógicas (operadores lógicos), los cuales nos ayudan a operar.
Existen más compuertas lógicas, por mencionar algunas: nand, nor, xor, xnor, etc.

Si tienen curiosidad por este tema, les recomiendo el libro de Introducción Al Análisis De Circuitos del autor robert l. boylestad y/o buscar información relacionada con los circuitos lógicos.

Mi aporte

Estaba teniendo problemas con la última parte del ejercicio porque aunque colocaba en role admin o seller, el resultado de decía: False.

El error estaba en:

role = input(‘Digita el rol =>’) estaba escribiendo esto así y debía ser así
role = input('Digita el rol => '), es decir, con la última comilla separa de la flecha

Buena clase!

AND => Conjuncion
Or => Disjuncion
Not => Negacion

Esta clase está relacionada con las **Tablas de Verdades,** especialmente con los conceptos de **Conjugación (AND) y Disyunción** **(OR).** Pueden aprender de estas tablas en la clase 7 del curso: Algoritmos y Diagramas de Flujos. Seguro les ayuda mucho a profundizar estos temas.

es mejor con redondeaos que con tolerancias

Probando otras opciones:

stock = int(input("Ingresa el número de stock: "))

if (stock >= 100 and stock <= 1000)==True:
  print("Podemos continuar")
else:
  print("Corregir stock")

Esto me lo enseñaron con las tablas de verdad, con esta herramienta se consideran todos los posibles resultados para los distintos operadores lógicos y me parece que el curso estaría mucho mejor si en los recursos pusieran algo referente a las tablas de verdad

Resumen con ejemplos

Comentario sobre los operadores OR y AND 1. **No confundas and/or con &/|:** Los operadores and y or son operadores lógicos que operan en valores booleanos, mientras que & y | son operadores a nivel de bit que operan en los bits individuales de un número. Asegúrate de usar el correcto para tu caso. **Aprovecha la evaluación de cortocircuito:** Dado que Python realiza una evaluación de cortocircuito, puedes usar esto a tu favor para evitar errores. Por ejemplo, if lista and len(lista) > 0: primero verifica si la lista no es None o vacía antes de intentar obtener su longitud.
Esto me recordó a la ley de los signos de algebra: ![](https://static.platzi.com/media/user_upload/image-1970f941-b704-45de-9e0e-f43332f9c801.jpg)
Querida comunidad he leido los comentarios, los que preguntaban como hacian si no colocaban un numero, hay esta jaja, se puede jugar con el and y el or al tiemop y he encontrado el isdigit.recuerden no quedarse con lo que les dice un video y hacer lo que su imaginacion cree, un abrazo.. ![](https://static.platzi.com/media/user_upload/Captura%20de%20pantalla%202023-12-27%20184824-397207e7-4c46-4c39-a67b-a90e38e6dbcf.jpg)

Operadores lógicos AND y OR


Operador and

El operador and, retornará False, si una de las condiciones es False.

print(False and True) # False
print(True and True) # True
print(True and True and False) # False

Operador or

El operador or, retornará True, si una de las condiciones es True

print(False or True) # True
print(True or True) # True
print(True or True or False) # True
print(False or False) # False

LÓGICA DE AND
True AND True = True
True AND False = False
False AND True = False
False AND False = False

LÓGICA DE OR
True OR True = True
True OR False = True
False OR True = True
False OR False = False

comparacion de numeros decimales o flotantes

x = 3.3
y = 1.1 + 2.2
print(y)
print(x==y)

usamos un valor de tolerancia

tolerance = 0.00001
print(abs(x-y)<tolerance)
z = 5.20
Q = 5 + 0.20
print(z==Q)

para seleccionar el mismo elemento en el codigo puede usar control + F, o control + D.

operador and significa Y

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

print(10 > 5 and 5 < 10)
print(10 > 5 and 5 > 10)

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

operador Or significa o

print (“OR”)
print (“True or True =>”, True or True )
print (“True or False =>”, True or False )
print (“False or True =>”, False or True )
print (“False or False =>”, False or False )

role = input(" ¿ digite el rol =>")
print (role ==“admin” or role == “seller” )

11_logic.py
print(True and True) #Da true or false como resultado
print(10>5 and 5<10) #incluyendo comparadores

print(True or True) #Da true or false como resultado
print(10>5 or 5<10) #incluyendo comparadores

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

Me encantó esta clase, fue muy clara la verdad. Hace poco vi este mismo contenido en otro lado y me costó más entenderlo. Gracias

# AND - TODAS las operaciones deben ser True, para obtener True
print('#'*5,' AND ', '#'*5)
print('AND')
print('True and True => ', True and True)
print('True and False => ', True and False)
print('False and True => ', False and True)
print('False and False => ', False and False)

print(10 > 5 and 5 < 10)
print(10 > 5 and 5 > 10)

print("-"*10)

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

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

print('')
print('#'*5,' OR ', '#'*5)

# OR - Al menos una de las operaciones debe ser True, para obtener True
print('OR')
print('True or True => ', True or True)
print('True or False => ', True or False)
print('False or True => ', False or True)
print('False or False => ', False or False)

role = input('Digita el rol => ')

print(role == 'Admin' or role == 'Seller')

Mi codiguito… 😉

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

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

print(10 > 5 and 5 < 10)
print(10 > 5 and 5 > 10)

print("\n" + "-" * 10 + " Ejemplo " + "-" * 10 + "\n")

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

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

# OR
print("\n" + "-" * 10 + " OR " + "-" * 10 + "\n")

print("True or True =>", True or True)
print("True or False =>", True or False)
print("False or True =>", False or True)
print("False or False =>", False or False)

print("\n" + "-" * 10 + " OR String " + "-" * 10 + "\n")

role = input('Digita un rol => ')

print (role == 'admin' or role == 'seller')

Seguro ya saben pero para comentar el código escrito puedes utilizar:
Ctrl + /

Se pone bueno en el curso de matemáticas discretas estas tablas.
Aplicada en el análisis de grafos y árboles en ciencia de datos, interesante.

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

print(10 > 5 and 5 < 10)
print(10 > 5 and 5 > 10)

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

print(stock >= 100 and stock <= 1000)
print('   ')
#or
print("OR")
print('True or True =>', True or True)
print('True or False =>', True or False)
print('True or False =>', True or False)
print('False or True =>', False or False)
print('False or False =>', False or False)

role = input('Digita el role =>')
print(role == 'admin' or role == 'seller')

Me encanto esta clase. Dejo mi código:

# and

print('AND')
print('True and True => ', True and True)
print('True and False => ', True and False)
print('False and True => ', False and True)
print('False and False => ', False and False)
print(f'10 > 5 and 5 < 10 {10 > 5 and 5 < 10}')
print(f'10 < 5 and 5 < 10 {10 < 5 and 5 < 10}')

stock = int(input('Dime tu stock: '))
print(f'Tu stock debe estar entre 100 y 1000. Este stock es:  {stock >= 100 and stock <= 1000}')

# or
print('OR')
print('True or True => ', True or True)
print('True or False => ', True or False)
print('False or True => ', False or True)
print('False or False => ', False or False)

stock = int(input('Dime tu stock: '))
print(f'Tu stock debe ser menor o igual 100 o mayor o igual a 1000. Este stock es:  {stock <= 100 or stock >= 1000}')
El operador lógico `or` evalúa dos condiciones y devuelve `True` si al menos una de ellas es verdadera. En el contexto de programación en Python, si tienes `A or B`, el resultado será `True` si `A` es `True`, `B` es `True` o ambos son `True`. Solo devolverá `False` si ambas condiciones son `False`. Por ejemplo: ```python x = 5 y = 10 result = (x > 3) or (y < 5) # Esto es True porque x > 3 es True ``` Este operador es muy útil para validar múltiples condiciones donde al menos una debe cumplirse.
El operador lógico `and` se utiliza para combinar dos condiciones y evaluar su resultado. La expresión solo retornará `True` si ambas condiciones son verdaderas. Por ejemplo, en el código `True and True`, el resultado es `True`, mientras que `True and False` o `False and False` resultan en `False`. Este comportamiento se basa en el álgebra booleana, donde para que una expresión `and` sea verdadera, ambas partes deben ser verdaderas. En programación, es común usarlo para validaciones, como verificar rangos de valores o múltiples condiciones en una decisión.
```python try: stock = int(input("Ingrese el stock que desea ingresar: ")) print(stock = 100 and stock <= 1000) except ValueError: print("El valor ingresado no es un número entero") try: role = input("Digite su rol: ") if (not role.isalpha()): raise ValueError("El rol no puede contener números, signos o espacios") print(role == "admin" or role == "seller") except ValueError as error: print("Error:", error) ```
Ejercicio con validaciones: ```js try: stock = int(input("Ingrese el stock que desea ingresar: ")) print(stock >= 100 and stock <= 1000) except ValueError: print("El valor ingresado no es un número entero") try: role = input("Digite su rol: ") if (not role.isalpha()): raise ValueError("El rol no puede contener números, signos o espacios") print(role == "admin" or role == "seller") except ValueError as error: print("Error:", error) ```
Ejercicio con validaciones: ```python try: stock = int(input("Ingrese el stock que desea ingresar: ")) print(stock >= 100 and stock <= 1000) except ValueError: print("El valor ingresado no es un número entero") try: role = input("Digite su rol: ") if (not role.isalpha()): raise ValueError("El rol no puede contener números, signos o espacios") print(role == "admin" or role == "seller") except ValueError as error: print("Error:", error) ```try: stock = int(input("Ingrese el stock que desea ingresar: ")) print(stock >= 100 and stock <= 1000) except ValueError: print("El valor ingresado no es un número entero") try: role = input("Digite su rol: ") if (not role.isalpha()): raise ValueError("El rol no puede contener números, signos o espacios") print(role == "admin" or role == "seller") except ValueError as error: print("Error:", error)
Código de ingreso de stock donde verifico si el valor ingresado es un número: ```js try: stock = int(input("Ingrese el stock que desea ingresar: ")) print(stock >= 100 and stock <= 1000) except ValueError: print("El valor ingresado no es un número entero") ```
Los operadores logicos son determinantes en las reglas de negocio y los de comparacion complementan para que sean mas precisos
\# and print('AND') print('True and True =>', True and True) print('True and False =>', True and False) print('False and True =>', False and True) print('False and False =>', False and False) ''' print(10 > 5 and 5 < 10) print(10 > 5 and 5 > 10) stock = input('Ingrese el numero de stock => ') stock = int(stock) print(stock >= 100 and stock <= 1000) ''' \# OR print('OR') print('True or True =>', True or True) print('True or False =>', True or False) print('False or True =>', False or True) print('False or False =>', False or False) role = input('Digita el rol => ') print(role == 'admin' or role == 'seller')
los 2 tienen que cumplir la condicion solo uno puede cumplir la condicion
Interviene en nuestro arbol de decisiones, muy importante, tenerlo en cuenta para lo que viene.
Los operadores permiten realizar comparaciones y tomar decisiones basadas en el resultado de esas comparaciones: 1. **Operador 'and' (y):** El operador 'and' devuelve 'True' si ambas condiciones son verdaderas. 2. **El Operador 'or' (o):** El operador 'or' devuelve 'True' si al menos una de las condiciones es verdadera. 3. **Operador 'not' (no):** El operador 'not' invierte el valor de la condición. Si la condición es 'True', devuelve 'False', y viceversa.
Los operadores lógicos `and` y `or` son fundamentales en programación y lógica booleana. Permiten combinar múltiples expresiones booleanas y evaluar si todas o al menos una de ellas es verdadera. Aquí te explico cómo funcionan: ### Operador `and`: El operador `and` devuelve `True` si y solo si ambas expresiones que se están evaluando son verdaderas. De lo contrario, devuelve `False`. Ejemplo: pythonCopy code`x = 5` `y = 10` `if x > 0 and y < 15`: ` print("Ambas condiciones son verdaderas"`) `else`: ` print("Al menos una condición es falsa"`) En este caso, como tanto `x > 0` como `y < 15` son verdaderas, la salida sería "Ambas condiciones son verdaderas". ### Operador `or`: El operador `or` devuelve `True` si al menos una de las expresiones que se están evaluando es verdadera. Solo devuelve `False` si ambas expresiones son falsas. Ejemplo: pythonCopy code`x = 5` `y = 20` `if x == 5 or y < 15`: ` print("Al menos una condición es verdadera"`) `else`: ` print("Ambas condiciones son falsas"`) En este caso, como `x == 5` es verdadero aunque `y < 15` es falso, la salida sería "Al menos una condición es verdadera". ### Prioridad de operadores: En Python, el operador `and` tiene una mayor precedencia que el operador `or`. Esto significa que las operaciones con `and` se evaluarán antes que las operaciones con `or`. Sin embargo, siempre puedes usar paréntesis para cambiar el orden de evaluación si es necesario. Es importante comprender cómo funcionan estos operadores para construir expresiones condicionales efectivas y controlar el flujo de tu programa según las condiciones dadas.
```js #and print("AND") print ("True and True=>", True and True) #True print ("True and False=>", True and False) #False print ("False and True=>", False and True) #False print ("False and False=>", False and False) #False print (10 > 5 and 5 < 10) #True print (10 > 5 and 5 > 10) #False stock = input("Ingrese el numero de stock =>") stock = int(stock) print(stock >= 100 and stock <= 1000) #OR print("or") print ("True or True=>", True or True) #True print ("True or False=>", True or False) #False print ("False or True=>", False or True) #False print ("False or False=>", False or False) #False role = input("digita el rol =>") print(role == "admin" or role == "seller") ```#and print("AND") print ("True and True=>", True and True) #True print ("True and False=>", True and False) #False print ("False and True=>", False and True) #False print ("False and False=>", False and False) #False print (10 > 5 and 5 < 10) #True print (10 > 5 and 5 > 10) #False stock = input("Ingrese el numero de stock =>") stock = int(stock) print(stock >= 100 and stock <= 1000) \#OR print("or") print ("True or True=>", True or True) #True print ("True or False=>", True or False) #False print ("False or True=>", False or True) #False print ("False or False=>", False or False) #False role = input("digita el rol =>") print(role == "admin" or role == "seller")
```python # OR print("OR") print("True or True => ", True or True) #true print("True or False => ", True or False) #true print("False or True => ", False or True) #true print("False or False => ", False or False) #false role = input("Ingresa tu rol => ").lower() print(role == "admin" or role == "seller") ```Al usar el metodo lower() pasamos toda la cadena introducida a minusculas, evitandonos asi la necesidad de tener que comparar todos los casos posibles en los que haya una letra mayuscula.
Una forma interesante de hacer el ejercicio del role es usar el metodo lower() en python. Asi si escribimos ADMIN o cualquier cosa en mayuscula se pasará de forma automatica a minuscula.# OR print("OR")print("True or True => ", True or True) #trueprint("True or False => ", True or False) #trueprint("False or True => ", False or True) #trueprint("False or False => ", False or False) #false role = input("Ingresa tu rol => ").lower()print(role == "admin" or role == "seller") Si no lo hacemos, nos dara False al introducir Admin o si usamos cualquier letra mayuscula como por ejemplo al escribir adMin: Significa lo mismo, pero no estamos comparando todos los posibles casos.```js # OR print("OR") print("True or True => ", True or True) #true print("True or False => ", True or False) #true print("False or True => ", False or True) #true print("False or False => ", False or False) #false role = input("Ingresa tu rol => ").lower() print(role == "admin" or role == "seller") ```
```python Operadores Lógicos en Python: and & or 🚦 ```Operadores Lógicos en Python: and & or 🚦
![](https://static.platzi.com/media/user_upload/image-c1eebb2a-cf95-4158-9b5d-44d6de05b970.jpg) Considero que esta clase es útil para trabajar con números decimales en el ámbito de electrónica de control automático. En este ejemplo pretendo determinar si una respuesta de un sistema es estable en una banda de error de **±**2%.
para que no solo les aparezca false, mientras practicaba hize esto: clave = input("digita la clave ") print(clave == "admin" or clave == "seller" or clave == "usuario" or "clave incorrecta")
lo que entendi: 1. +\*+=+ 2. +\*-=- 3. -\*+=- 4. -\*-=+
![](https://static.platzi.com/media/user_upload/image-c142c20c-d1a1-45f4-9e8d-d77bd26e2b2d.jpg) ![](https://static.platzi.com/media/user_upload/image-1a052cd3-4a49-432b-ad3b-1c8f73902866.jpg)
```python ```
![](https://static.platzi.com/media/user_upload/image-5fc55216-5ee2-48c3-bb5e-965e77b1abb2.jpg)
![](https://static.platzi.com/media/user_upload/image-6a455da2-df65-4e8b-819f-1aa566f5b5af.jpg)**a mi me aparece este error y no me deja correr el codigo, alguien por favor que me ayude**

Mis apuntes:
Los operadores lógicos son utilizados para evaluar ciertas condiciones, donde podemos comprobar si dos o mas operandos son (true) o (false). Estos operadores nos retornan un valor True o False.

(and): Va a retornar True si ambos son True.
(or): Va a retornar True si alguno de los 2 contiene True.

```js # Programa que verifica si un usuario es administrador o tiene al menos 18 años es_administrador = True edad = int(input("Ingrese su edad: ")) if es_administrador or edad >= 18: print("Acceso permitido.") else: print("Acceso denegado.") ```# Programa que verifica si un usuario es administrador o tiene al menos 18 años es\_administrador = Trueedad = int(input("Ingrese su edad: ")) if es\_administrador or edad >= 18: print("Acceso permitido.")else: print("Acceso denegado.")
```js # Programa que verifica si un número está entre 10 y 20 numero = int(input("Ingrese un número: ")) if numero > 10 and numero < 20: print("El número está entre 10 y 20.") else: print("El número no está entre 10 y 20.") ```# Programa que verifica si un número está entre 10 y 20 numero = int(input("Ingrese un número: ")) if numero > 10 and numero < 20: print("El número está entre 10 y 20.") else: print("El número no está entre 10 y 20.")
Hola les comparto un ejemplo de un programa que he implementado \# Programa que verifica si un número está entre 10 y 20 numero = int(input("Ingrese un número: ")) if numero > 10 and numero < 20: print("El número está entre 10 y 20.") else: print("El número no está entre 10 y 20.")

False and … Retorna False, ya no sigue evaluando.

Tip rápido para cuando deban modificar varias líneas al mismo valor: Opción 1: Presionar ctrl + f y escribir el valor buscado, luego dan a la flecha de la izquierda y escriben el valor que debe reemplazarlo. Esto reemplaza todos los valores que coincidan con lo buscado. Opción 2: Presionar alt y dar clic en las lineas a modificar. Por ejemplo en los and luego borran y escriben or en todas las líneas al mismo tiempo sin afectar la tabla de arriba

and = Devuelve True si ambos operandos son True
or = Devuelve True si alguno de los operandos es True

Que curioso los ejemplos de ejercicios “and” y “or”. Estos son muy usados en todos los LP. Es mejor saberlos para luego aplicarlos en cualquier otro.

Cambiaron la aprencia del entorno Platzi, pero se olvidaron los recursos donde nos guiamos para aprender mas
# and
print("and")
print("True and True =>", True and True)
print("True and True =>", True and False)
print("False and Ture =>", False and True)
print("False and False =>", False and False)
print("_ . _" * 5)
stock = input('Ingrese el numero de stock')
stock = int(stock)
print(stock >= 10 and stock <= 1000)
print("_ . _" * 5)
# or
print("and")
print("True or True =>", True or True)
print("True or True =>", True or False)
print("False or Ture =>", False or True)
print("False or False =>", False or False)

role = input('Escribe el rol =>')
print(role == 'admin' or role == 'seller')

Esperaba: && y ||
y no literalmente texto: and y or.

“”"
Python tiene los siguientes tipos de datos integrados de forma predeterminada, en estas categorías:

Tipo de texto: str
Tipos numéricos: int, float, complex
Tipos de secuencia: list, tuple, range
Tipo de mapeo: dict
Establecer tipos: set,frozenset
Tipo booleano: bool ( la prmera letra es en mayuscula)
Tipos binarios: bytes, bytearray, memoryview
Ninguno Tipo: NoneType

type.variable
"""
"""
Operadores de Comparación:

==: Igual a
!=: No igual a
<: Menor que
<=: Menor o igual que
>: Mayor que
>=: Mayor o igual que

Operadores Lógicos:

and: Operador lógico "Y" (conjunction). Devuelve True si ambos operandos son True.
or: Operador lógico "O" (disjunction). Devuelve True si al menos uno de los operandos es True.
not: Operador lógico "NO" (negation). Devuelve el valor contrario del operando.

Funciones relacionadas con Booleanos:

bool(): Convierte un valor en un valor booleano (True o False). Por ejemplo, bool(0) devuelve False, y bool(1) devuelve True.
isinstance(obj, bool): Comprueba si un objeto es de tipo booleano.
all(iterable): Devuelve True si todos los elementos en el iterable son True, o False si al menos uno de ellos es False.
any(iterable): Devuelve True si al menos un elemento en el iterable es True, o False si todos son False.

Funciones de conversión a booleanos:

int(): Convierte un valor en un entero. Los valores no nulos se convierten en True, mientras que el valor cero se convierte en False.
float(): Convierte un valor en un número de punto flotante. Los valores no nulos se convierten en True, mientras que el valor cero se convierte en False.
str(): Convierte un valor en una cadena. Los valores no nulos se convierten en True, mientras que la cadena vacía se convierte en False.

“”"
"""
operciones
(+) Suma
(-) Resta
(*) Multiplicación
(/) División
(%) Modulo o Residuo
(//) Division con valor entero
(**) Exponenciación

Existen 7 grupos de operadores en Python:

Operadores de asignación: =,
    += (suma a valor), -=, *=,
        /=,
        %=,
        **= (potencia),
        //= (division de entero)

Operadores de comparación: ==, !=, >, <, >=, <=

Operadores lógicos: and, or, not

Operadores de identidad: is, is not

Operadores de pertenencia: in, not in

Operadores de bit: &, |, ^, ~, <<, >>

Operadores de membresía: . (punto), [] (corchetes), (), {} (llaves)

“”"

Ejerccio AND (*) otra maneja de interpretar el operador logico AND es tomarlo como una multiplicacion. Ejemplo
1 * 1 = 1
0 * 1 = 0
1 * 0 = 0
0 * 0 = 0

Les comparto un ejerccio que hice con el operador AND (*)

#ejerccio and 

premium = int(input("marque 1 si es premium "))
valor = int(input("De cuanto es su consumo "))

if premium and valor >= 100:
  print("Descuento aprobado ")
else:
  print("No valido")

Ejerccio OR (+) En este caso el operador OR es una suma ejemplo
1+1 = 1
1+0 = 1
0+1 = 1
0+0 = 0

# or (+)

#ejerccio 
usuario = "nato.js"
gmail = "[email protected]"
id = input("Cual es tu nombre de usuario o gmail ?")

if id == usuario or  id == gmail:
   print("usuario valido ")
else:
 print("acceso denegado")

Siendo sincero, nunca pensé que lo aprendido en la materia “Lógica” del colegio me funcionara para algo ;V

Eso lo ví hace 14 años y me sigue siendo tan últil…No se debe dar por malo algún aprendizaje ;V

# Los operadores lógicos son and (y) or (o) not (no) y sirven para comprobar 
# si dos o más operandos son ciertos (True) o falsos
# (false) y nos devolverá como resultado True o False.
# Normalmente los solemos utilizar mucho en los
# condicionales para devolver un booleano comparando
# varios elementos en la lógica

# Otro operador importante

# En cambio el operador Not sirve para indicar el contrario de un booleano como 
# True / False. Si colocamos un Not True estaríamos
# diciendo “No verdadero” y Not False “No falso”. En
# una condición si no es verdadero nos devolverá false
# y si no es false nos devolverá verdadero!

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

print(10 > 5 and 5 < 10)
print(10 > 5 and 5 > 10)

stock = input('Ingrese el numero de stock => ')
#input siempre devuelve string asi que si es 
#necesario debe cambiar a int
stock = int(stock)

#regla de negocio, para establecer triggers/alertas
print(stock >= 100 and stock <= 1000)


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

#validando el rol del usuario usando or
role = input('Digita el rol => ')

#si tiene alguno de estos roles, los dejo ingresa, caso contrario, no
print(role == 'admin' or role == 'seller')

Tablas de verdad
El Curso de Pensamiento Lógico es buena opción para profundizar en el tema de True y False 😉
https://platzi.com/cursos/pensamiento-logico/

##programa para login, si el username y la password son correctas nos autoriza, sino nos denega el acessor


usuario = input('Ingresa tu usuario: ')
contraseña = input("Ingresa tu contrasela: ")



user = 'vegetta777'
password = '1234'

if usuario == user and password == contraseña:
    print('Login correcto')
    print("Disfruta de la red social :)")
    
else:
    print('Acceso denegado')
###Un programa de inicio de sesion donde el nivel de usuario sea 
# s  y u me envie al dasbhboard , si es otro nivel no me deje entrar


## s = admin
## u == user

nombre = input('ingresa el usuario: ')
nivel = input('ingresa en nivel del  usuario: ')



if nivel == 's' or nivel == 'u':
    print('---------------------------------------------------')
    print('|                                                  |')
    print('|                                                  |')
    print('|                                                  |')
    print('|                                                  |')
    print('|                                                  |')
    print('|                                                  |')
    print(f'|       Bienvenido al sistema {nombre}                |')
    print('|                                                  |')
    print('|                                                  |')
    print('|                                                  |')
    print('|                                                  |')
    print('|                                                  |')
    print('---------------------------------------------------')
    
else:
    print('acceso no autorizado')

Pequeño resumen de la clase

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

print(10 > 5 and 5 < 10)
print(10 > 5 and 5 > 10)

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

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

print('*' * 50)


# or
print('OR')
print('True or True =>', True or True)
print('True or False =>', True or False)
print('False or True =>', False or True)
print('False or False =>', False or False)

role = input('Digita el rol => ')

print(role == 'admin' or role == 'seller')

A mí siempre me emociona usar el AND o el OR en situaciones complejas. Me da la sensación de estar automatizando algo. El NOT casí no me gusta usarlo pero si es necesario pues hay que tiparlo. Nunca he mezclado la teoría de circuitos digitales con estos operadores, pero son totalmente compatibles y simularlo sería interesante y provechoso.

Aqui aprendiste como usar los operadores logicos:
and, or, not.
and es un operador que en su logica dice:
LOS DOS EVENTOS TIENEN QUE CUMPLIRSE, SI UNO SOLO NO SE CUMPLE ENTONCES ES FALSO.
or es un operador que dice:
Uno de los dos eventos tiene que cumplirse, de lo contrario es falso.
not es un operador que en su logica dice:
“Bueno, si es verdad lo convierto en falso y si es falso lo convierto en Verdad BRUAH😂”

El operador AND opera sobre dos valores, el único caso en el que retorna **True** es si ambos son True, en cualquier otro caso retorna False.

Expresión1 Expresión2 Resultado
False False False
False True False
True False False
True True True

Por el contrario, el operador OR, el único caso en el que retorna False es cuando los dos operadores son False, en cualquier otro caso retorna True.

Expresión1 Expresión2 Resultado
False False False
False True True
True False True
True True True

para los que no entiendes operadores logicos, les recomiendo estudiar logica proporcional con echos de la vida real, dicho en otras palabras, con oraciones de verdad o falsedad

Cómo podria realizar esta validación. Usuario digita role Admin, admin o ADMIN siento los tres el mismo.

<print(role == "admin" or role == "user" or role == "Admin" or role == "User")> 
#Operadores logicos

# and

print('AND')
print( " True and True  =>", True and True)
print( " True and False =>", True and False)
print( " False and True  =>", False and True)
print( " False and False  =>", False and False)

print(10 > 5 and 5 < 10)
print(10 > 5 and 5 > 10)

#Ejemplo practico
stock = input ('Ingrese el numero de stock:')
stock = int(stock)
print(stock  >= 100 and stock  <= 1000)
#Ayuda a que se encuentre dentro de mi regla

print('OR')
print( " True or True  =>", True or True)
print( " True or False =>", True or False)
print( " False or True  =>", False or True)
print( " False or False  =>", False or False)

role = input('Digita el  rol :')
print( role == "admin or role == "seller")


Un pequeño aporte: si quieren dejar de tener que escribir línea por línea, pueden utilizar el comando en Mac: Option y click / ⎇ y click. Alguien puede intentar verlo en Windows y ponerlos en los comentarios, seria muy útil para las otras personas.

Dame un like si te sirvió y un comentario si no te sirvió, estaré encantado de ayudarte 🤗

El operador and se utiliza para combinar dos o más condiciones, y solo devuelve “verdadero” si todas las condiciones son verdaderas. Si alguna de las condiciones es falsa, el resultado será “falso”.

El operador or se utiliza para combinar dos o más condiciones, y devuelve “verdadero” si al menos una de las condiciones es verdadera. Si todas las condiciones son falsas, el resultado será “falso”.

and requiere que todas las condiciones sean verdaderas, mientras que or solo requiere que al menos una condición sea verdadera.

super

role = input('Type rol: ').lower()
print(role == 'admin' or role == 'seller')
# Operador and
print("True and True", True and True) #True
print("True and False", True and False) #False
print("False and True", False and True) #False
print("False and False", False and False) #False

print(10 > 5 and 5<10) #True
print(10 > 5 and 5 > 10) #False

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

print(stock >= 100 and stock <= 1000) # Si ingreso un numero entre 100 y 1000, me imprime True, si sale fuera de estos parametros me imprime False.

# Operador or
print("True or True", True or True) #True
print("True or False", True or False) #True
print("False or True", False or True) #True
print("False or False", False or False) #False

role = input("Digita el rol =>")

print(role == "admin" or role == "seller")

# and
print('AND ')
print('True and True =>', True and True) #Los dos deben ser verdaderos para true
print('True and False =>', True and False)
print('False and True =>', False and True)
print('False and False =>', False and False)

print(10>5 and 5<10)
print(10>5 and 5>10)

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

print('OR ')
print('True or True =>', True or True) #Alguno de los dos deben ser verdaderos para true
print('True or False =>', True or False)
print('False or True =>', False or True)
print('False or False =>', False or False)

role = input('Digita el rol => ')
print(role == 'admin' or role == 'seller')

and

print((’’ * 25))
print((’
’ * 10),‘AND’,(’’ * 10))
print((’
’ * 25))
print('True and True => ',True and True)
print('True and False => ',True and False)
print(‘False and True =>’,False and True)
print('False and False => ',False and False)

print('10 > 5 and 5 < 10 => ',10 > 5 and 5 < 10)
print('10 > 5 and 5 > 10 => ',10 > 5 and 5 > 10)

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

print('Su estock: ‘,stock,’ es > 100 y < 1000 => ',stock >= 100 and stock <=1000)

OR

print((’’ * 25))
print((’
’ * 10),‘OR’,(’’ * 10))
print((’
’ * 25))
print('True and True => ',True or True)
print('True and False => ',True or False)
print(‘False and True =>’,False or True)
print('False and False => ',False or False)

Roll = input('Digite Roll de Usuario (admin) o (seller) => ')
print('Usted digito roll: ‘,Roll,’ Su roll es Igual a (admin) o (seller) => ',Roll == ‘admin’ or Roll==‘seller’)

Para las OR:

Si el valor de la izquierda es un valor “falsy” retornará el de la derecha.
Si el valor de la izquierda es un valor “truthy” retornará el de la izquierda

Para las AND:

Si el valor de la izquierda es un valor “falsy” devuelve el de la izquierda
Si el valor de la izquierda es un valor “truthy” devuelve el de la derecha

# OR
# Devuelve el de la izquierda
my_var = 'V1' or False
print('my_var es', my_var) # my_var es V1
# Devuelve el de la derecha
my_var = False or 'V2'
print('my_var es', my_var) # my_var es V2
# Devuelve el de la derecha
my_var = False or ''
print('my_var es', my_var, type(my_var)) # my_var es <class 'str'>
# Devuelve el de la derecha
my_var = '' or False
print('my_var es', my_var, type(my_var)) # my_var es False <class 'bool'>

# AND
# Devuelve el valor de la izquierda
my_var = '' and False
print('my_var es', my_var, type(my_var)) # my_var es  <class 'str'>
# Devuelve el valor de la derecha
my_var = True and ''
print('my_var es', my_var, type(my_var)) # my_var es  <class 'str'>
# Devuelve el valor de la derecha
my_var = True and 'V1'
print('my_var es', my_var, type(my_var)) # my_var es V1 <class 'str'>
# Devuelve el valor de la derecha
my_var = 'V1' and 'V2'
print('my_var es', my_var, type(my_var)) # y_var es V2 <class 'str'>
# Devuelve el valor de la derecha
my_var = 'V1' and False
print('my_var es', my_var, type(my_var)) # my_var es False <class 'bool'>
#.

Print(True and True) #true and false
print(10>5 and 5<10)

print(True or True) #true or false
print(10>5 or 5<10)

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