Está en la página 1de 11

Inicio Libros Tutoriales Eventos Foro Buscar

Libros / Algoritmos de Programacin con Python / Captulo 4. Decisiones / 4.2. Comparaciones simples

4.2. Comparaciones simples


Volvemos al problema que nos plantearon: Debemos leer un nmero y, si el nmero es
positivo, debemos escribir en pantalla el mensaje "Numero positivo" .

Utilizando la instruccin if que acabamos de introducir y que sirve para tomar


decisiones simples. Dijimos que su formato ms sencillo es:

if <condicin>:
<hacer algo si se da la condicin>

cuyo significado es el siguiente: se evala <condicin> y si el resultado es True


(verdadero) se ejecutan las acciones indicadas como <hacer algo si se da la
condicin> .

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Como ahora ya sabemos tambin cmo construir condiciones de comparacin, estamos
en condiciones de implementar nuestra solucin. Escribimos la funcin es_positivo()
que hace lo pedido:

def es_positivo():
x = input("Ingrese un numero: ")
if x > 0:
print "Numero positivo"

y la probamos:

>>> es_positivo()
Ingrese un numero: 4
Numero positivo
>>> es_positivo()
Ingrese un numero: -25
>>> es_positivo()
Ingrese un numero: 0
>>>

Problema 4.2. En la etapa de mantenimiento nos dicen que, en realidad, tambin se


necesitara un mensaje "Numero no positivo" cuando no se cumple la condicin.
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Modificamos la especificacin consistentemente y modificamos el diseo:

1. Solicitar al usuario un nmero, guardarlo en x .

2. Si x > 0 , imprimir "Numero positivo"

3. Si no se cumple x > 0 , imprimir "Numero no positivo"

La negacin de x > 0 es (x > 0) que se traduce en Python como not (x > 0) , por lo
que implementamos nuestra solucin en Python como:

def positivo_o_no():
x = input("Ingrese un numero: ")
if x > 0:
print "Numero positivo"
if not (x > 0):
print "Numero no positivo"

Probamos la nueva solucin y obtenemos el resultado buscado:

>>> positivo_o_no()
Ingrese un numero: 4
Numero positivo
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
>>> positivo_o_no()
Ingrese un numero: -25
Numero no positivo
>>> positivo_o_no()
Ingrese un numero: 0
Numero no positivo
>>>

Sin embargo hay algo que nos preocupa: si ya averiguamos una vez, en la segunda lnea
del cuerpo, si x > 0 , Es realmente necesario volver a preguntarlo en la cuarta?.

Existe una construccin alternativa para la estructura de decisin:

Si se da la condicin C, hacer S, de lo contrario, hacer T. Esta estructura tiene la


forma:

if <condicin>:
<hacer algo si se da la condicin>
else:
<hacer otra cosa si no se da la condicin>

Donde if y else son palabras reservadas. Su significado es el siguiente: se evala

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
<condicin> , si el resultado es True (verdadero) se ejecutan las acciones indicadas
como <hacer algo si se da la condicin> , y si el resultado es False (falso) se
ejecutan las acciones indicadas como <hacer otra cosa si no se da la
condicin> .

Volvemos a nuestro diseo:

1. Solicitar al usuario un nmero, guardarlo en x .

2. Si x > 0 , imprimir "Numero positivo"

3. De lo contrario, imprimir "Numero no positivo"

Este diseo se implementa como:

def positivo_o_no_nue():
x = input("Ingrese un numero: ")
if x > 0:
print "Numero positivo"
else:
print "Numero no positivo"

y lo probamos:
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
>>> positivo_o_no_nue()
Ingrese un numero: 4
Numero positivo
>>> positivo_o_no_nue()
Ingrese un numero: -25
Numero no positivo
>>> positivo_o_no_nue()
Ingrese un numero: 0
Numero no positivo
>>>

Es importante destacar que, en general, negar la condicin del if y poner else no son
intercambiables, no necesariamente producen el mismo efecto en el programa. Notar
qu sucede en los dos programas que se transcriben a continuacin. Por qu se dan
estos resultados?:

Programa 1

>>> def pn():


... x = input("Ingrese un numero: ")
... if x > 0:

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
... print "Numero positivo"
... x = -x
... if x < 0:
... print "Numero no positivo"
...
>>> pn()
Ingrese un numero: 25
Numero positivo
Numero no positivo
>>>

Programa 2

>>> def pn1():


... x = input("Ingrese un numero: ")
... if x > 0:
... print "Numero positivo"
... x = -x
... else:
... print "Numero no positivo"
...
>>> pn1()
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Ingrese un numero: 25
Numero positivo
>>>

Anterior Siguiente
4.1. Expresiones booleanas 4.3. Mltiples decisiones consecutivas

Copyright (c) 2011-2014 Rosita Wachenchauzer, Margarita Manterola, Maximiliano Curia, Marcos Medrano,
Nicols Paez. La copia y redistribucin de esta pgina se permite bajo los trminos de la licencia Creative
Commons Atribucin - Compartir Obras Derivadas Igual 3.0 siempre que se conserve esta nota de copyright.

INDICE DE CONTENIDOS

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
1. Algunos conceptos bsicos

2. Programas sencillos

3. Funciones

Captulo 4. Decisiones

4.1. Expresiones booleanas

4.2. Comparaciones simples

4.3. Mltiples decisiones consecutivas

4.4. Ejercicios

4.5. Resumen

4.6. Ejercicios

5. Ms sobre ciclos

6. Cadenas de caracteres

7. Tuplas y listas

8. Algoritmos de bsqueda

9. Diccionarios

10. Contratos y Mutabilidad

11. Manejo de archivos

12. Manejo de errores y excepciones

13. Procesamiento de archivos

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
14. Objetos

15. Polimorfismo, Herencia y Delegacin

16. Listas enlazadas

17. Pilas y colas

18. Modelo de ejecucin de funciones y recursividad

19. Ordenar listas

20. Algunos ordenamientos recursivos

3.757
2006-2017 LibrosWeb.es Contacto Novedades Condiciones Privacidad

das online

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com

También podría gustarte