clase4

Páginas: 10 (2413 palabras) Publicado: 5 de mayo de 2015
Clase 4: Modularizando código
Ejercicio preparatorio: Determinar si un número es primo o no
El siguiente código verifica si un número es primo. Hay muchas maneras de hacer esto y esta está lejos
de ser la mejor, solo se muestra a modo de ejemplo.
n = int(raw_input('Verificar si este nro. es primo: '))
primo = True
for i in xrange(2,n):
if n%i == 0:
print '%s no es primo' %n
primo = False
break
ifprimo:
print '%s es primo' %n
El uso de la variable primo sirve para "marcar" que el flujo del programa pasó por un lugar determinado. A
eso se lo denomina "flag".
Ejemplo de uso de este código:
>>>
Verificar si este nro. es primo: 25
No es primo
>>>
Verificar si este nro. es primo: 61
61 es primo
Usando else en el for. El bloque bajo el else se ejecuta en el caso que todos los elementos delciclo se
hayan recorrido (o sea, que no haya salido por break). Esto evita usar el flag del ejemplo anterior.
n = int(raw_input('Verificar si este nro. es primo: '))
for i in range(2,n):
if n%i == 0:
print '%s no es primo' %n
break
else:
print '%s es primo' %n
Ejemplo de uso:
>>>
Verificar si este nro. es primo: 25
No es primo
>>>
Verificar si este nro. es primo: 61
61 es primo

Funciones
Ya hemosusado funciones si consideramos a las funciones incoorporadas en Python (built-in).
Ejemplos:

>>> len([2,3,4,5])
4
>>> max([1,6,98,2,32,21,8])
98
>>> range(5)
[0, 1, 2, 3, 4]
>>> dir(str)
['__add__', '__class__', '__contains__', '__delattr__', '__doc__',
'__eq__', '__format__', '__ge__', '__getattribute__',
'__getitem__', '__getnewargs__', '__getslice__', '__gt__',
'__hash__', '__init__', '__le__','__len__', '__lt__', '__mod__',
'__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__',
'__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__',
'__str__', '__subclasshook__', '_formatter_field_name_split',
'_formatter_parser', 'capitalize', 'center', 'count', 'decode',
'encode', 'endswith', 'expandtabs', 'find', 'format', 'index',
'isalnum', 'isalpha', 'isdigit', 'islower','isspace', 'istitle',
'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition',
'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit',
'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase',
'title', 'translate', 'upper', 'zfill']
Las funciones len() (de lenght, longitud), max(), y min() tienen nombres bastante autoexplicativos. La
función dir() lista los métodos (funciones)asociadas a un objeto, en este caso vemos los métodos
asociado a las cadenas.
Las funciones usan parámetros o argumentos (buscarlos en los ejemplos de arriba). Se pueden usar
funciones sin parametros:
>>> dir()
['__builtins__', '__doc__', '__file__', '__name__', '__package__',
'esprimo', 'i', 'main', 'n', 'primo']
En el caso de dir() sin parámetros, se muestran los nombres de las variables que están enmemoria en el
momento de ser llamada.
Otras funciones requieren parámetros de manera obligatoria:
>>> range()
Traceback (most recent call last):
File "", line 1, in
range()
TypeError: range expected at least 1 arguments, got 0
El concepto es el mismo: Un nombre que invoca un conjunto de instrucciones para ser ejecutado. Es una
manera de “modularizar” nuestro código.

Creandofunciones
Forma genérica
def Nombre(param1, param2, ….):
''' DOCSTRING '''

return DATA

Por ejemplo la siguiente función convierte el valor ingresado de pulgadas a centimetros:
def p_cm(p):
''' Ingresa pulgadas, devuelve centimetros '''
cm = p * 2.54
return cm
Ahora estamos en condiciones de "funcionalizar" el código anterior que determinaba si un número es o
no es primo:
def esprimo(n):for i in range(2,n):
if n%i == 0:
return False
return True

Usando funciones
El modo general es:
>>> Nombre(parametro)
Ejemplos:
Usando la función p_cm (función que convierte de pulgadas a centimetros):
>>> print p_cm(5)
12.7
Usando la funcón esprimo (devuelve True si n es primo y False en caso contrario):
>>> print esprimo(2)
True
>>> print esprimo(5)
True
>>> print esprimo(10)
False
Todas las...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • CLASE4
  • clase4
  • Clase4
  • Clase4 TeoriaTransacciones
  • clase4 lipidos
  • Clase4 Torsion
  • Clase4
  • Clase4

OTRAS TAREAS POPULARES

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS