Los condicionales son una muy buena forma de tomar decisiones preguntando si algo es igual a True o no. Pero a menudo una condición no es suficiente. Podríamos querer tomar lo opuesto a nuestro resultado. O por ejemplo si queremos tomar una decisión sobre turtle.xcor()
y turtle.ycor()
debemos combinarlos. Esto puede realizarse con operadores lógicos.
Si queremos que algo sea False podemos usar not
. Es un operador lógico:
x = False
if not x :
print("condition met")
else:
print("condition not met")
El programa turtle nos da una función muy útil para saber si se está dibujando o no: turtle.isdown()
. Esta función retorna True si la tortuga está dibujando. Como hemos visto anteriormente, la función turtle.penup()
y turtle.pendown()
conmuta entre dibujar mientras se está moviendo, o solo moverse sin dejar trazo.
Podemos escribir una función que permita ir adelante solamente si el lápiz está levantado?
Dos operadores fáciles de entender son and
y or
. Ellos hacen exactamente lo que dicen sus nombres::
if 1 < 2 and 4 > 2:
print("condition met")
if 1 > 2 and 4 < 10:
print("condition not met")
if 4 < 10 or 1 < 2:
print("condition met")
No está restringido a un operador lógico. Puede combinar tantos como quiera.
Antes pusimos a la tortuga en una prisión circular. Ahora hagamos la prisión cuadrada. Si la tortuga intenta ir a más de 100 en el eje X or en el eje Y, entonces retornemos a la tortuga de vuelta al centro.