Publicado el Deja un comentario

50 Python. Llamada a funcion con parametros indeterminados

Podemos crear funciones en las que desconocemos cuantos parametros se van a recibir, por ejemplo una funcion que sume los numeros que se le pasen, independientemente si son 2 o 100.
Podriamos realizarlo de la siguiente forma:

#Numero indeterminado de parametros, Suma

def suma(*args):   

    suma=0   

    for arg in args:       

        suma+=arg   

    return suma

#llamamos 2 veces con distintos parametros

print(suma(2,9))

print(suma(2,3,5,4,1,8,9,7))

En la funcion recibimos los parametros con *args, dentro de la funcion los recorremos mediante bucle for y realizamos las operaciones necesarias, devolviendo el valor indicado en la funcion.

Please follow and like us:
Publicado el Deja un comentario

51 Python. Funciones recursivas

Una funcion se dice que es recursiva cuando dentro de la funcion se vuelve a llamar a si misma, segun las condiciones indicadas en el codigo.
Una funcion recursiva debe siempre tener una condicion de parada o salida para que la llamada a si misma no genere un bucle infinito, tiene que llegar un momento donde dicha funcion deje de llamarse y pare su ejecucion obteniendo el resultado esperado.
Normalmente el ejemplo tipico para mostrar esto es el factorial de un numero, pero puede generar mas confusion, por lo que el ejemplo que pongo aqui es una cuenta atras.
Creamos la funcion cuentaAtras donde se ira comprobando si hemos llegado a 0, en caso negativo se vuelve a llamar a la funcion cuentaAtras pero con el parametro anterior – 1, se vuelve a comprobar la condicion, en caso de que el numero ya sea inferior a 1 pararemos su llamada.

Observa el codigo:

#cuenta atras, funcion recursiva

def cuentaAtras(num):   

    if num>0:       

        print(num)       

        num-=1       

        cuentaAtras(num)   

    else:       

        print(“Se acabo la cuenta atras “)

cuentaAtras(10)

Please follow and like us:
Publicado el Deja un comentario

49 Python. Funcion con parametros

Creamos un script que nos muestre la tabla de multiplicar de un numero dado, observa el siguiente codigo:

#funcion con parametro, tablas de multiplicar

def tabla(num):   

    for i in range(1,11):       

    print(“{} * {} = {}”.format(num,i,num*i)

tabla(2)

tabla(8)

Hemos definido una funcion a la que le pasamos un numero como parametro en la llamada a la funcion, tal y como aparece al final del codigo, dentro del cuerpo de la funcion, iniciamos un bucle, en este caso abarca desde el 1 al 10 (11-1) ya que el ultimo no esta incluido.
Dentro del bucle mostramos el valor de la multiplicacion, para ello usamos el metodo format con print, donde estan las llaves se usaran las variables num, i y num*i, en el mismo orden de aparicion.
Llamamos a la funcion dos veces con dos parametros distintos, para ver el resultado.

Please follow and like us:
Publicado el Deja un comentario

45 Python. Listas anidadas

Creamos 3 listas y las unimos, despues mostramos el elemento central y el que esta en ultimo lugar.

a=[1,2,3]
b=[4,5,6]
c=[7,8,9]
anidada=[a,b,c]
print(anidada[1][1])
print(anidada[2][2])

Lo que hemos creado es una lista de listas, a la que podemos acceder indicando fila y columna, como si fuera una matriz.

Please follow and like us:
Publicado el Deja un comentario

02. Juego tres en raya, cronometro

En este video se explica como poner en marcha el cronometro del juego.

El codigo del archivo cronometro.js es:


function LimpiaReloj(){
    //reset cronometro
    clearInterval(cronometro);
}
function IniciaReloj(){
    //iniciar reloj
    s=document.getElementById(“segundos”);
    m=document.getElementById(“minutos”);
    segundos=0;
    cronometro=setInterval(function(){
        segundos++;//incremento segundos
        segs=segundos;
        mins=0;
        while(segs>=60){
            mins++;
            segs-=60;
        }
        //imprimimos min y segs
        if(mins<10)m.innerHTML=”0″+mins;
        else m.innerHTML=mins;
        if(segs<10)s.innerHTML=”0″+segs;
        else s.innerHTML=segs;
        Total_segs=segs;
        Total_mins=mins;
    },1000);
    }

El codigo del archivo ejecutar.js es:

var Total_segs;
var Total_mins;
var cronometro;
function ejecutar(){
    LimpiaReloj();
    IniciaReloj();
}
ejecutar();

El codigo del archivo index.html es:

<!doctype html>
<html lang=”ES”>
<head>
<link rel=”stylesheet” type=”text/css” href=”css/estilos.css”>
<title>
Tres en Raya
</title>
</head>
<body>
<header>
<nav>
</nav>
</header>
<section>
<article>
<hgroup>
<h1>Juego Tres en Raya</h1>
</hgroup>
<div id=”tiempo”>
<p>Contador:</p>
<p id=”contador”>
<span id=”minutos”>00</span>:
<span id=”segundos”>00</span></p>
</div>
<div id=”tablero”>
<div class=”row”>
<div id=”c00″ onClick=”RevisarCelda(0,0)” class=”celda amarillo”></div>
<div id=”c01″ onClick=”RevisarCelda(0,1)” class=”celda rojo”></div>
<div id=”c02″ onClick=”RevisarCelda(0,2)” class=”celda amarillo”></div>
</div><!–row–>
<div class=”row”>
<div id=”c10″ onClick=”RevisarCelda(1,0)” class=”celda amarillo”></div>
<div id=”c11″ onClick=”RevisarCelda(1,1)” class=”celda rojo”></div>
<div id=”c12″ onClick=”RevisarCelda(1,2)” class=”celda amarillo”></div>
</div><!–row–>
<div class=”row”>
<div id=”c20″ onClick=”RevisarCelda(2,0)” class=”celda amarillo”></div>
<div id=”c21″ onClick=”RevisarCelda(2,1)” class=”celda rojo”></div>
<div id=”c22″ onClick=”RevisarCelda(2,2)” class=”celda amarillo”></div>
</div><!–row–>
</div><!–tablero–>
</article>
</section>
<aside>
</aside>
<footer>
</footer>
<script src=”js/cronometro.js”></script>
<script src=”js/ejecutar.js”></script>
</body>
</html>

Espero os sea util, gracias.

Please follow and like us: