Archivo de la categoría: Programación

Codecademy

  • New Track

    HTML & CSS – Traducción al Español (América Latina)

    Lo que vas a aprender …

    • HTML & CSS
  • New Track

    JavaScript – Traducción al Español (América Latina)

    Lo que vas a aprender …

    • JavaScript
  • New Track

    Python – Traducción al Español (América Latina)

    Python es un lenguaje de programación de uso general, orientado a objetos e interpretado.

    Lo que vas a aprender …

    • Programación dinámica
  • New Track

    jQuery – Traducción al Español (América Latina)

    jQuery es una manera de crear sitios web interactivos.

    Lo que vas a aprender …

    • jQuery es una manera de crear sitios web interactivos.
  • New Track

    Ruby – Traducción al Español (América Latina)

    Ruby es un lenguaje de programación increíblemente popular que hace funcionar infinidad de sitios web alrededor del mundo. Aprende a crear varias aplicaciones útiles rápida y fácilmente.

    Lo que vas a aprender …

    • Fundamentos de Ruby
    • Hermosa sintaxis
    • Prototipos rápidos

vía Codecademy.

Capítulo 4 Traducción http://inventwithpython.com/

Ir al Capítulo 5 – Chistes

Temas tratados en este capítulo:

  • sentencia import
  • Módulos
  • Argumentos
  • sentencia while
  • Condiciones
  • Bloques
  • Booleanos
  • Operadores de comparación
  • La diferencia entre = y ==.
  • sentencia if
  • La palabra clave break.
  • Funciones str() e int().
  • Función random.randint().

El Juego «Adivina el Número»

Vamos a hacer un juego de «Adivina el Número». En este juego, la computadora «pensará» en un número aleatorio entre 1 y 20, y le pedirá al usuario que lo adivine. Usted sólo tiene seis oportunidades, pero la computadora le dirá si su suposición es demasiado alta o demasiado baja. Si adivina el número dentro de los seis intentos, usted gana.

Este es un buen juego para que usted pueda comenzar, ya que utiliza números aleatorios, ciclos, y la entrada del usuario en un programa bastante corto. A medida que escriba este juego, usted aprenderá cómo convertir los valores a diferentes tipos de datos (y por qué necesitaría hacerlo).

Debido a que este programa es un juego, vamos a llamar al usuario el jugador, pero la palabra «usuario» también sería correcta.

Muestra de la ejecución de «Adivina el Número»

Así es como el jugador verá nuestro juego cuando el programa se ejecute. El texto que ingresa el jugador está en negritas.

Hola! ¿Cómo te llamas?
Alberto
Bueno, Alberto, estoy pensando en un número entre 1 y 20.
Adivinalo.
10
Tu intento es demasiado alto.
Adivinalo.
2
Tu intento es demasiado bajo.
Adivinalo.
4
Buen trabajo, Alberto! Has adivinado mi número en 3 intentos!

Introduzca el código exactamente como aparece aquí, y luego guardelo haciendo clic en el menú File y luego en Save As. Dele un nombre al archivo, tal como adivina.py y a continuación, ejecutelo presionando la tecla F5. No se preocupe si no entiende el código por ahora, más adelante voy a explicarlo paso a paso.

Código Fuente de «Adivina el Número»

Aquí está el código fuente de nuestro juego «Adivina el Número». Al introducir este código en el editor de archivos, asegúrese de prestar atención a la sangría de algunas de las líneas. Algunas líneas tienen cuatro u ocho espacios al inicio de ellas. Después de que usted haya escrito el código, guarde el archivo como adivina.py. Puede ejecutar el programa desde el editor de archivos presionando F5. Si ve un mensaje de error, compruebe que ha escrito el programa exactamente como está escrito aqui.

Si no desea escribir todo este código, puede descargarlo en inglés desde el sitio web original de este libro en la dirección URL http://inventwithpython.com/chapter4.

Nota Importante! Asegúrese de ejecutar este programa con Python 3, y no con Python 2. Los programas en este libro utilizan Python 3, obtendrá errores si intenta ejecutarlos con Python 2. Puede hacer clic en Help y luego en About IDLE para averiguar cual es la versión de Python que tiene.

adivina.py
Este código puede descargarse en ingles desde http://inventwithpython.com/guess.py
Si obtiene errores después de escribir este código, puede compararlo con el código del libro con la herramienta en línea desde http://inventwithpython.com/diff o por correo electrónico con el autor en al@inventwithpython.com (N. del T. unicamente en inglés)

  1. # Este es un juego de adivinar el número.
  2. import random
  3. numeroIntentos = 0
  4. print (‘¡Hola! ¿Cuál es tu nombre? ‘)
  5. miNombre = input()
  6. numero = random.randint(1, 20)
  7. print ( ‘Bien, ‘ + miNombre + ‘, estoy pensando en un número entre 1 y 20.’)
  8. while numeroIntentos < 6:
  9.     print ( «Adivinalo.) # Hay cuatro espacios antes de print
  10.     adivina = input()
  11.     adivina = int(adivina)
  12.     numeroIntentos = numeroIntentos + 1
  13.     if adivina < numero:
  14.         print (‘Tu intento es demasiado bajo.’) # Hay ocho espacios antes de print.
  15.     if adivina > numero:
  16.         print ( ‘Tu intento es demasiado alto. ‘ )
  17.     if adivina == numero:
  18.         break
  19. if adivina == numero:
  20.     numeroIntentos = str(numeroIntentos)
  21.     print ( ‘Buen trabajo,’ + miNombre + ‘! Has adivinado mi número en’ + numeroIntentos + ‘ intentos! ‘)
  22. if adivina != numero:
  23.     numero = str(numero)
  24.     print ( ‘No. El número que estaba pensando era ‘ + numero)

A pesar de que estamos entrando en nuestro código fuente en una nueva ventana del editor de archivos, podemos volver a la shell para entrar en las instrucciones individuales para ver lo que hacen. El intérprete de comandos interactivo shell es muy bueno para experimentar con diferentes instrucciones cuando no se está ejecutando un programa. Usted puede regresar al intérprete de comandos interactivo haciendo clic en su ventana o en su botón de la barra de tareas. En Windows o Mac OS X, la barra de tareas está en la parte inferior de la pantalla. En Linux la barra de tareas puede ser localizado en la parte superior de la pantalla.

Si el programa no funciona después de que usted lo ha escrito, compruebe si ha escrito el código exactamente como aparece en este libro. También puede copiar y pegar el código en línea en la herrmienta «diff» en http://inventwithpython.com/diff. esta le mostrará cómo el código es diferente del código fuente de este libro. En el editor de archivos, pulse Ctrl-A para «Seleccionar todo» el texto que has escrito, a continuación, pulse Ctrl + C para copiar el texto en el portapapeles. A continuación, pega este texto haciendo clic en el campo de texto de la herramienta de diferencias en el sitio web y haz clic en el botón «Compare». (NOTA DEL TRADUCTOR: Esta herramienta solo funciona con el código en inglés) El sitio web le mostrará todas las diferencias entre el código y el código en este libro.

Hay una herramienta de diferencias para cada programa en este libro en el sitio web de http://inventwithpython.com.

La sentencia Import

Echemos un vistazo a cada línea de código a su vez, para ver cómo funciona este programa.

  1. # Este es un juego de adivinar el número.

Esta línea es un comentario. Los comentarios se introdujeron en nuestro programa Hola Mundo en el Capítulo 3. Recuerde que Python ignora todo lo que hay después del signo #. Esto sólo nos recuerda lo que hace el programa.

  1. import random

Esta es una sentencia import. Las sentencias no son funciones (note que ni en import ni en random hay paréntesis después de su nombre). Recuerde, las sentencias son instrucciones que realizan alguna acción, pero no se evalúan como un valor. Ya has visto las sentencias: las de asignación almacenan un valor en una variable (pero la sentencia no evalúa nada).

Si bien Python incluye muchas funciones incorporadas, algunas de las funciones existentes en programas separados llamados módulos. Los módulos son programas Python que contienen funciones adicionales. Nosotros usamos las funciones de estos módulos poniendo en nuestros programas la sentencia import. En este caso, estamos importando el módulo random .

La sentencia import se compone de la palabra clave import seguida por el nombre del módulo. En conjunto, la palabra clave y el nombre del módulo componen la sentencia. La línea 2 es, pues, una sentencia import que importa el módulo llamado random, que contiene varias funciones relacionadas con los números al azar. (Vamos a utilizar una de estas funciones más tarde en la computadora para obtener un número aleatorio que podamos adivinar.)

  1. numeroIntentos = 0

Esta línea crea una nueva variable llamada numeroIntentos. Vamos a almacenar el número de turnos que el jugador hace en esta variable. Dado que el jugador no ha hecho ningún intento hasta ahora, almacenamos el entero 0 aquí.

  1. print ( «¡Hola! ¿Cuál es tu nombre? «)
  2. miNombre = input()

Líneas 6 y 7 son las mismas que las líneas en el programa Hola Mundo que vimos en el capítulo 3. Los programadores de código a menudo reutilizan el código de sus otros programas cuando necesitan programar para hacer algo que ya han codificado antes.

La línea 6 es una llamada de función a la función print (). Recuerde que una función es como un mini-programa que nuestro programa ejecuta, y cuando nuestro programa llama a una función esta ejecuta el mini-programa. El código dentro de la función print () muestra la cadena que puso dentro de los paréntesis en la pantalla.

Cuando estas dos líneas finalizan su ejecución, la cadena que es el nombre del jugador será almacenada en la variable miNombre. (Recuerde, la cadena podría no ser realmente el nombre del jugador. Es justo la cadena que el jugador escribió. Las computadoras son tontas y sólo siguen sus programas sin importar qué.)

La función random.randint()

  1. numero = random.randint(1, 20)

En la línea 9 llamamos a una nueva función llamada randint (), y después almacenamos el valor de retorno en una variable llamadanumero . Recuerde que las llamadas a funciones son expresiones, ya que se evalúan a un valor. A este valor le llamamos valor de retorno de la llamada a la función.

Debido a que el randint () es proporcionado por el módulo random, debemos precederla con random. (No olvidar el periodo!) para decirle a nuestro programa que la function randint () está en el módulo random.

La función randint () devuelve un entero aleatorio entre (e incluyendo) los dos enteros que le demos. Aquí, le damos los números enteros 1 y 20 entre los paréntesis que siguen al nombre de la función (separados por una coma). El número entero aleatorio que randint () devuelve se almacena en una variable llamada numero -este es el número secreto que el jugador trata de adivinar.

Sólo por un momento, vuelve al shell interactivo e introduzca import random para importar el módulo random. A continuación, introduzca random.randint (1, 20) para ver lo que la llamada a la función evalúa. Debe devolver un número entero entre 1 y 20. A continuación, introduzca el mismo código de nuevo y la llamada a la función, probablemente devolverá un número entero diferente. Esto es porque cada vez que se llama la función randint (), devuelve un número aleatorio, como cuando se lanzan los dados usted obtendrá un número al azar en cada ocasión.

>>> import random
>>> Random.randint (1, 20)
12
>>> Random.randint (1, 20)
18
>>> Random.randint (1, 20)
3
>>> Random.randint (1, 20)
18
>>> Random.randint (1, 20)
7
>>>

Cada vez que queremos añadir azar a nuestros juegos, podemos utilizar la función randint (). Y usamos la aleatoriedad en la mayoría de los juegos. (Piense en los juegos de mesa que muchos utilizan como los dados.)

También puede probar diferentes gamas de números, cambiando los argumentos. Por ejemplo, escriba random.randint (1, 4) a obtener sólo números enteros entre 1 y 4 (incluyendo tanto 1 y 4). O intente random.randint (1000, 2000) para obtener números enteros entre 1000 y 2000. Aquí hay un ejemplo de llamada a la función random.randint () para ver cuáles son los valores que devuelve. Los resultados que se obtienen cuando se llama a la función random.randint () probablemente serán diferentes (que es al azar, después de todo).

>>> Random.randint (1, 4)
3
>>> Random.randint (1, 4)
4

>>> Random.randint (1000, 2000)
1294
>>> Random.randint (1000, 2000)
1585

>>>

Podemos cambiar el código del juego ligeramente para que el juego se comportan de manera diferente. Pruebe a cambiar la línea 9 y 10 esto:

  1. numero = random.randint(1, 20)
  2. print ( ‘Bien, ‘ + miNombre + ‘, estoy pensando en un número entre 1 y 20.’)

Por estas líneas:

  1. numero = random.randint(1, 100)
  2. print ( «Bien, ‘+ miNombre +», estoy pensando en un número entre 1 y 100.)

Y ahora el equipo piensa en un número entero entre 1 y 100. Un cambio en la línea 9 va a cambiar el rango de números aleatorios, pero recuerda cambiar la línea 10 para que el juego también le diga al jugador la nueva gama en lugar de la antigua.

Llamar a funciones que están dentro de módulos

Por cierto, no olvide introducir random.randint (1, 20) y no sólo randint (1, 20), o la computadora no sabrá cómo buscar en el módulo random la función randint () y obtendrá un error como este:

>>> randint(1, 20)
Traceback (most recent call last):
File «<stdin>», line 1, in <module>
NameError: name ‘randint’ is not defined
>>>

Recuerde que su programa para funcionar necesita import random antes de llamar a la función random.randint (). Esta es la razón por la que las sentencias import random por lo general van al inicio del programa.

Pasar argumentos a las funciones

Los valores enteros entre los paréntesis en la llamada a función random.randint (1, 20) se llaman argumentos. Los argumentos son los valores que se pasan a una función cuando la función es llamada. Los argumentos le dicen a la función cómo comportarse. Al igual que los cambios de entrada del jugador de cómo se comporta nuestro programa, los argumentos son insumos para las funciones.

Algunas funciones requieren que usted le pase los valores cuando se las llama. Por ejemplo, mire estas llamadas a función:

input()
print ( ‘Hola’)
random.randint (1, 20)

La función input() no tiene argumentos, pero la llamada a la función print() tiene una y la llamada a función randint () tiene dos. Cuando tenemos más de un argumento, los separamos cada uno con comas, como se puede ver en este ejemplo. Los programadores dicen que los argumentos están delimitados (es decir, separados) por comas. Así es como la computadora sabe dónde un valor termina y empieza otro.

Si pasa muchos o muy pocos argumentos en una llamada a función, Python mostrará un mensaje de error, como se puede ver a continuación. En este ejemplo, el primero llama randint () con un único argumento (muy pocos), y luego llama randint () con tres argumentos (demasiados).

>>> Random.randint (1)
Traceback (most recent call last):
File «<pyshell#1>», line 1, in <module>
random.randint (1)
TypeError: randint() takes exactly 3 positional arguments (2 given)
>>> Random.randint (1, 2, 3)
Traceback (most recent call last):
File «<pyshell#2>», line 1, in <module>
random.randint (1, 2, 3)
TypeError: randint() takes exactly 3 positional arguments (4 given)
>>>

Observe que el mensaje de error dice que pasó de 2 y 4 argumentos en lugar de 1 y 3. Esto es así porque Python siempre pasa un extra, el argumento invisible. Este argumento está fuera del alcance de este libro, y usted no tiene que preocuparse por ello.

Bienvenida al jugador

Las líneas 10 y 12 dan la bienvenida al jugador y le dice sobre el juego, y luego empieza a dejar que el jugador adivine el número secreto. La línea 10 es bastante simple, pero la línea 12 se introduce un concepto avanzado (pero útil) llamado un bucle.

  1. print ( «Bien», ‘ + miNombre + ‘, estoy pensando en un número entre 1 y 20.)

En la línea 10 la función print () da la bienvenida al jugador por por su nombre, y le dice que la computadora está pensando en un número aleatorio.

Pero espera – no digo que la función print () tiene sólo una cadena (string)? Puede parecer que allí hay más de una cadena Pero observa en la línea con cuidado. Los signos más concatenan las tres cadenas para evaluar a una sola cadena, y que es la tcadena que print () imprime la función. Podría verse como que las comas separan las cadenas, pero si se mira de cerca se ve que las comas están dentro de las comillas, y parte son parte de las cadenas.

Loops

La línea 12 tiene algo llamado una sentencia, while lo que indica el comienzo de un bucle while. Loops son partes de código que se ejecuta una y otra vez. Pero antes de que podamos aprender acerca de los bucles while, tenemos que aprender algunos conceptos de otros primero. Estos conceptos son los bloques, booleanos, operadores de comparación, las condiciones, y, por último, la sentencia while.

Bloques

Un bloque es una o más líneas de código agrupado junto con el nivel mínimo de sangría. Se puede decir que un bloque empieza y termina mirando a la sangría de la línea (es decir, el número de espacios en el frente de la línea).

Un bloque comienza cuando una línea se sangría de cuatro espacios. Cualquier línea siguiente que es también sangría de cuatro espacios es parte del bloque. Un bloque dentro de un bloque comienza cuando una línea se sangra con otros cuatro espacios (para un total de ocho espacios delante de la línea). El bloque termina cuando hay una línea de código con la misma sangría antes de que el bloque de empezar.

A continuación se muestra un diagrama del código con los bloques descritos y numerados. Los espacios se han llenado cuadrados de color negro para hacerlas más fáciles de contar.


Figura 4-1: Bloques y su sangría.

Por ejemplo, mire el código anterior. Los espacios han sido reemplazados por casillas negras para que sean más fáciles de contar. La línea 12 tiene un sangrado de cero espacios y no dentro de cualquier bloque. La línea 13 tiene una sangría de cuatro espacios. Dado que este sangrado es mayor que el sangrado de la línea anterior, podemos decir que un bloque nuevo ha comenzado. Líneas 14, 15, 17 y 19 también tienen cuatro espacios para el sangrado. Estas dos líneas tienen la misma cantidad de sangría que la línea anterior, por lo que sabemos que están en el mismo bloque. (No contamos líneas en blanco cuando miramos para el sangrado.)

La línea 20 tiene una sangría de ocho espacios. Ocho espacios de más de cuatro espacios, así que sabemos un bloque nuevo ha comenzado. Este es un bloque que está dentro de otro bloque.

Línea 22 sólo cuenta con cuatro espacios. De la línea antes de la línea 22 había un mayor número de espacios. Debido a que el sangrado haya disminuido, sabemos que el bloque ha terminado. La línea 22 se encuentra en la misma cuadra que las otras líneas, con cuatro espacios.

La línea 23 aumenta la sangría de ocho espacios, por lo que de nuevo un bloque nuevo ha comenzado.

Para recapitular, la línea 12 no es en ningún bloque. Líneas 13 a 23 en un solo bloque (marcado con el círculo 1). La línea 20 se encuentra en un bloque en un bloque (marcado con un círculo 2). Y la línea 23 es la única línea en otro bloque en un bloque (marcado con un círculo 3).

Cuando se escribe código en IDLE, cada letra es la misma anchura. Puede contar el número de letras por encima o por debajo de la línea para ver cuántos espacios se han puesto por delante de esa línea de código.

En esta figura, las líneas de código dentro del cuadro 1 están todos en el mismo bloque, y los bloques 2 y 3 están dentro del bloque 1. Bloque 1 se sangra con al menos cuatro espacios desde el margen izquierdo, y los bloques 2 y 3 son sangría ocho espacios desde el margen izquierdo. Un bloque puede contener una sola línea. Tenga en cuenta que los bloques 2 y 3 son sólo una línea de cada uno.

El tipo de datos Boolean

El tipo de datos Boolean tiene sólo dos valores: Verdadero o Falso. Estos valores son mayúsculas y minúsculas y no son valores de cadena, en otras palabras, usted no pone un «carácter de comillas alrededor de ellos. Vamos a utilizar valores booleanos con los operadores de comparación para formar condiciones. (Ver más abajo.)

Operadores de comparación

En la línea 12 de nuestro programa, la línea de código que contiene la sentencia, mientras que:

  1. mientras que numeroIntentos <6:
Los operadores de comparación Tabla 2-1:.
Operador Regístrate Nombre del operador
< Menos de
> Mayor que
<= Inferior o igual a
> = Mayor o igual a
== Igual a
!= No es igual a

La expresión que sigue a la palabra clave al mismo tiempo (numeroIntentos <6) contiene dos valores (el valor en el numeroIntentos variable y el valor entero 6) conectado por un operador (el signo <, la «menos de» signo). El signo <se llama un operador de comparación.

El operador de comparación se utiliza para comparar dos valores y evaluar a un Verdadero o Falso valor booleano. Una lista de todos los operadores de comparación está en la tabla 2-1.

Condiciones

Una condición es una expresión que combina dos valores con un operador de comparación (como <o>) y se evalúa como un valor booleano. Una condición es sólo otro nombre para una expresión que se evalúa como verdadero o falso. Usted encontrará una lista de otros operadores de comparación en la tabla 2-1.

Condiciones siempre se evalúan como un valor booleano, ya sea verdadero o falso. Por ejemplo, la condición en nuestro código, numeroIntentos <6 pide «es el valor almacenado en numeroIntentos menos que el número 6?» Si es así, entonces la condición se evalúa como True. Si no, la condición se evalúa como False.

En el caso de nuestro programa de adivinar el número, en la línea 4 que almacena el valor 0 en numeroIntentos. Ya que 0 es menor de 6, esta condición se evalúa el valor booleano de True. Recuerde, una condición es sólo un nombre para una expresión que utiliza los operadores de comparación como <o!=.

Experimente con booleanos, operadores de comparación, y condiciones

Introduce las siguientes expresiones en el shell interactivo para ver los resultados de Boole:

>>> 0 <6
Cierto.
>>> 6 <0
Falso.
>>> 50 <10
Falso.
>>> 10 <11
Cierto.
>>> 10 <10
Falso.

La condición 0 <6 devuelve el valor booleano True porque el número 0 es menor que el número 6. Pero debido a que 6 no es inferior a 0, la condición 6 <0 se evalúa como False. 50 no sea inferior a 10, así que 50 <10 es falso. 10 es inferior a 11, por lo que 10 <11 es True.

Pero lo que alrededor de 10 <10? ¿Por qué evaluar a Falso? Es falso, porque el número 10 no es menor que el número 10. Son exactamente el mismo tamaño. Si Alice era la misma altura que Bob, que no quiso decir que Alice es más alto que Pedro o que Alice es más corta que la de Bob. Ambas de estas sentencias sería falso.

Prueba a introducir algunas condiciones al interior del depósito para ver cómo funcionan estos operadores de comparación:

>>> 10 == 10
Cierto.
>>> 10 == 11
Falso.
>>> 11 == 10
Falso.
10.10.
Falso.
10.= 11
Cierto.
>>> ‘Hola’ == ‘Hola’
Cierto.
>>> ‘Hola’ == ‘Good bye’
Falso.
>>> ‘Hola’ == ‘Hola’
Falso.
>>> ‘Good bye’!Hola!
Cierto.

Observe la diferencia entre el operador de asignación (=) y la «igual a» operador de comparación (==). La igualdad (=) el signo se utiliza para asignar un valor a una variable, y el equivalente a (signo ==) se utiliza en expresiones para ver si dos valores son iguales. Es fácil de utilizar uno accidentalmente cuando nos referimos a utilizar el otro, así que ten cuidado de lo que escribe pulg

Dos valores que son diferentes tipos de datos no siempre son iguales entre sí. Por ejemplo, puede ingresar el siguiente en el intérprete de comandos interactivo:

>>> 42 == ‘Hola’
Falso.
>>> 42!Hola!
Cierto.

Bucles con while

La sentencia, mientras que marca el comienzo de un ciclo. A veces en nuestros programas, queremos que el programa para hacer algo una y otra vez. Cuando la ejecución llega a una sentencia, mientras, se evalúa la situación junto a la palabra clave al mismo tiempo. Si la condición se evalúa como True, la ejecución se mueve en el interior del bloque de tiempo. (En nuestro programa, mientras que el bloque comienza en la línea 13.) Si la condición se evalúa como False, la ejecución se mueve todo el camino pasado, mientras que el bloque. (En nuestro programa, la primera línea después del bloque, mientras que es la línea 28.)

  1. mientras que numeroIntentos <6:


Figura 4-2: La condición de bucle while.

Figura 4-2 muestra cómo la ejecución de los flujos en función de la condición. Si la condición se evalúa como True (que lo hace por primera vez, porque el valor de numeroIntentos es 0), la ejecución, mientras que entrar en el bloque en la línea 13 y seguirá bajando. Una vez que el programa llega a la final del bloque, mientras que, en lugar de bajar a la línea siguiente, pero vuelve a crecer, mientras que a la línea de instrucción (línea 12). A continuación, re-evalúa la condición, y si es cierto que entramos en el bloque, mientras que otra vez.

Así es como funciona el bucle. Mientras que la condición es True, el programa mantiene la ejecución del código dentro del bloque, mientras que en varias ocasiones hasta llegar a la final del bloque y al mismo tiempo la condición es falsa. Y, hasta numeroIntentos es igual o superior a 6, vamos a seguir bucle.

Piense en la sentencia, mientras que decir «, mientras que esta condición se cumple, siga recorriendo el código de este bloque».

Usted puede hacer el juego más difícil o más fácil de cambiar el número de turnos que el jugador recibe. Todo lo que tienes que hacer es cambiar esta línea:

  1. mientras que numeroIntentos <6:

en esta línea:

  1. mientras que numeroIntentos <4:

… y ahora el único jugador recibe cuatro suposiciones en lugar de seis conjeturas. Al establecer la condición de numeroIntentos <4, nos aseguramos de que el código dentro del bucle sólo se ejecuta en cuatro ocasiones en lugar de seis. Esto hace el juego mucho más difícil. Para hacer el juego más fácil, establecer como condición para numeroIntentos <8 o numeroIntentos <10, lo que hará que el bucle se ejecuta un par de veces más que antes y aceptar más respuestas de los jugadores.

Por supuesto, si quitamos la línea 17 en total entonces el numeroIntentos no aumentaría y la condición siempre sería verdad. Esto daría al jugador un número ilimitado de intentos.

Las conjeturas Player

Líneas 13 a 17 pedirá al siguiente jugador que adivinar lo que el número secreto y se les permite entrar en su conjetura. Nosotros guardamos esta suposición en una variable, y luego convertir el valor de la cadena en un valor entero.

  1.     print ( «Adivina.) # Hay cuatro espacios en frente de la impresión.
  2.     Supongo = entrada ()

El programa ahora se nos pide una conjetura. Nos tipo en nuestra suposición, y que el número se almacena en una variable llamada adivinar.

Conversión de cadenas en enteros con la función Int ()

  1.     Supongo = int (supongo)

En la línea 15, que llamamos una nueva función llamada int (). La función Int () toma un argumento. La entrada () la función devuelve una cadena de texto que el jugador escribió. Sin embargo, en nuestro programa, queremos un entero, no una cadena. Si el jugador entra en 5, como su conjetura, la entrada () función devuelve el valor de la cadena «5» y no el valor entero 5. Recuerde que Python considera la cadena «5» y el entero 5 a diferentes valores. Así que la función Int () tendrá el valor de cadena que se le da y devolver el formulario valor entero de la misma.

Vamos a experimentar con la función Int () en el shell interactivo. Pruebe a escribir lo siguiente:

>>> Int (’42 ‘)
42
>>> Int (42)
42
>>> Int ( ‘hola’)

Traceback (most recent call last):
Archivo «<pyshell#4>», línea 1, en <module>
int ( ‘cuarenta y dos)
ValueError: inválido literal for int () con base 10: ‘Hola’
>>> Int ( «cuarenta y dos)

Traceback (most recent call last):
Archivo «<pyshell#5>», línea 1, en <module>
int ( ‘cuarenta y dos)
ValueError: inválido literal for int () con base 10: «Cuarenta y dos»
>>> Int ( ’42’)
42
>>> 3 + int (‘2 ‘)
5

Podemos ver que la int (’42 ‘) llamada devolverá el valor entero de 42 años, y que int (42) hará lo mismo (aunque es una especie de sentido de convertir un entero a un entero). Sin embargo, aunque usted puede pasar una cadena a la función Int (), usted no sólo puede pasar cualquier cadena. Por ejemplo, pasar ‘hola’ a int () (como lo hacemos en el int ( ‘hola’) llamada) resultará en un error. La cadena se pasa a int () debe estar compuesto de números.

El entero se pasa a int () también debe ser numérico, en lugar de texto, por lo que int ( «cuarenta y dos»), también produce un error. Dicho esto, la función Int () es un poco indulgente, si nuestra cadena tiene espacios en cada lado, todavía se ejecutará sin error. Esta es la razón por la int ( ’42’) las obras de llamada.

El 3 + int (‘2 ‘) muestra una expresión que se añade un número entero de 3 a el valor de retorno de int (‘2’) (que evalúa a 2, así). La expresión se evalúa como 3 + 2, que a continuación se evalúa a 5. Así que, aunque no podemos añadir un número entero y una cadena (3 + ‘2 ‘nos mostraría un error), podemos añadir un número entero a una cadena que se ha convertido en un entero.

Recuerde, de nuevo en nuestro programa en la línea 15 de la variable supongo que originariamente el valor de la cadena de lo que el jugador escribió. Le sustituye el valor de cadena almacenada en adivinar con el valor entero devuelto por la función Int (). Esto se debe a que más tarde se compara adivinar el jugador con el número aleatorio del equipo se le ocurrió. , Sólo podemos comparar dos valores enteros para ver si uno es mayor (es decir, superior) o menos (es decir, más baja) que la otra. No podemos comparar un valor de cadena con un valor entero para ver si uno es mayor o menor que el otro, incluso si ese valor de la cadena es numérica, tales como «5».

En nuestro juego de adivinar el número, si los tipos de jugadores en algo que no es un número, entonces la llamada a la función int () resultará en un error y el programa se bloqueará. En los otros juegos de este libro, vamos a añadir algo más de código para comprobar las condiciones de error como este y dar al jugador una nueva oportunidad para entrar en una respuesta correcta.

Tenga en cuenta que llamar int (supongo) no cambia el valor de la variable de adivinar. La int código (supongo) es una expresión que se evalúa la forma de valor entero de la cadena almacenada en la variable de adivinar. Debemos asignar este valor de retorno de adivinar el fin de cambiar el valor de adivinar a un entero con esta línea completa: adivinar = int (supongo)

El incremento de variables

  1.     numeroIntentos = numeroIntentos + 1

Una vez que el jugador ha tomado una conjetura, queremos aumentar el número de adivinanzas que nos recuerda el jugador que toma.

La primera vez que entramos en el bloque de bucle, numeroIntentos tiene el valor de 0. Python tendrá este valor y se añade 1 a la misma. 0 + 1 1. Luego Python almacenar el nuevo valor de 1 a numeroIntentos.

Piense en la línea 17 en el sentido de «la variable numeroIntentos debe ser uno más de lo que ya es».

Cuando añadimos una a un valor, los programadores dicen que están incrementando el valor (porque es cada vez mayor por uno). Cuando se le resta uno de un valor, estamos decrementar el valor (porque es una reducción de un uno). La próxima vez que el bloque de bucles bucle alrededor, numeroIntentos tendrá el valor de 1 y se incrementa con el valor 2.

Guess es el reproductor es demasiado baja?

Líneas 19 y 20 de comprobar si el número que el jugador adivinar es menor que el número aleatorio secreto que el equipo se inventó. Si es así, queremos decirle al jugador que su suposición era demasiado baja, imprima este mensaje en la pantalla.

si las sentencias

  1.     si <adivinar número:
  2.          print ( «Su conjetura es demasiado baja.») # Hay ocho espacios en frente de la impresión.

La línea 19 se inicia una instrucción if con la palabra clave, si. Junto a la palabra clave es si la condición. La línea 20 se inicia un nuevo bloque (se puede decir, porque ha aumentado la sangría de la línea 19 a la línea 20.) El bloque que sigue a la palabra clave si se llama si-bloque. Una sentencia if se utiliza si sólo desea un poco de código que se ejecutará si alguna condición es True. La línea 19 tiene una instrucción if con la condición de adivinar <número. Si la condición se evalúa como True, entonces el código en el bloque si es ejecutada. Si la condición es falsa, entonces el código en el bloque-si se omite.


Figura 4-3: si y mientras las sentencias.

Al igual que la sentencia, mientras que, si la sentencia también tiene una palabra clave, seguida de una condición, y luego un bloque de código. Ver la Figura 4-3 para una comparación de las dos sentencias.

La sentencia de si funciona casi de la misma manera como una sentencia, mientras que, también. Pero a diferencia del bloque, mientras que, la ejecución no salta de nuevo a la sentencia de si al final de la cuadra si. Simplemente continúa hasta la siguiente línea. En otras palabras, si los bloques no se repetirá.

Si la condición es True, se ejecutan todas las líneas dentro del bloque if. La línea sólo si dentro de este bloque en la línea 19 es una impresión () llamada a la función.

Si el entero que el jugador entra es menor que el entero aleatorio del equipo pensado, el programa muestra su suposición es demasiado baja. Si el entero el jugador entra es igual o mayor que el entero aleatorio (en cuyo caso, la condición junto a la palabra clave si hubiera sido falso), entonces este bloque se han saltado.

Adivina el jugador es demasiado alto?

Líneas 22 a 26 en nuestro programa de verificación, si creo que el jugador es demasiado grande o exactamente igual al número secreto.

  1.     si> Supongo número:
  2.          print ( «Su conjetura es demasiado alto.»)

Si creo que el jugador es mayor que el entero aleatorio, si entramos en el bloque que sigue a la sentencia if. La impresión () línea le dice al jugador que su suposición es demasiado grande.

Dejando Loops temprano con la instrucción break

  1.     == adivinar si el número:
  2.          romper

Esta condición, si los controles sentencia para ver si la conjetura es igual al número entero aleatorio. Si es así, entramos en la línea 26, si el bloque que le sigue.

La línea dentro del bloque-si es una sentencia de ruptura que le dice al programa que de inmediato saltar del bloque, mientras que a la primera línea después del final del tiempo-bloque. (La instrucción break no se molesta en verificar de nuevo, mientras que la condición de bucle, sólo se rompe de inmediato.)

La sentencia break es la palabra clave romper por sí mismo, sin condición o colon (: signo).

Si creo que el jugador no es igual al número entero aleatorio, no romper el bloque, mientras que, llegaremos a la parte inferior del bloque, mientras que de todos modos. Una vez que llegamos a la parte inferior del bloque, mientras que, el programa se repetirá de nuevo a la parte superior y otra vez, la condición (numeroIntentos <6). Recuerde que después de la numeroIntentos = numeroIntentos + 1 línea de código que se ejecuta, el nuevo valor de la numeroIntentos 1. Debido a que 1 es inferior a 6, entramos en el bucle de nuevo.

Si el jugador sigue adivinar demasiado alto o demasiado bajo, el valor de numeroIntentos cambiará a 2, luego 3, luego 4, luego 5, y 6. Si el jugador adivinar el número correctamente, la condición en el caso de adivinar == sentencia número sería verdad, y nos habría ejecutado la sentencia break. De lo contrario, seguimos en bucle. Pero cuando numeroIntentos ha almacenado el número 6, mientras que la condición de sentencia es falsa, ya que 6 no es inferior a 6. Porque si bien la condición de la sentencia es falsa, no vamos a entrar en el bucle y en lugar de ir al final del bloque de tiempo.

El resto de líneas de código se ejecuta cuando el jugador ha terminado de adivinar (ya sea porque el jugador adivinar el número correcto, o porque el jugador salió corriendo de conjeturas). La razón por la que el jugador salió del bucle anterior determinará si se gana o se pierde el juego, y el programa mostrará el mensaje apropiado en la pantalla para cada caso.

Compruebe si el won Player

  1. == adivinar si el número:

A diferencia del código de la línea 25, esta línea no tiene sangría, lo que significa que el bloque, mientras que ha terminado y esta es la primera línea, mientras que fuera del bloque. Cuando salimos del bloque de tiempo, lo hicimos bien porque el estado, mientras que la sentencia era falsa (cuando el jugador se queda sin conjeturas) o si se ejecuta la instrucción de ruptura (cuando el jugador adivina el número correctamente). Con la línea 28, de verificación de nuevo para ver si el jugador adivinado correctamente. Si es así, si entramos en el bloque que sigue.

  1.     numeroIntentos str = (numeroIntentos)
  2.     print ( ‘Buen trabajo,’ miNombre + + ‘! Lo has adivinado mi número en el ‘numeroIntentos + +’ conjeturas ‘)

Líneas 29 y 30 están dentro del bloque if. Ellos sólo se ejecutarán si el número de la condición en el caso de sentencia en la línea 28 era cierto (es decir, si el jugador adivinó correctamente el ordenador).

En la línea 29 (que es similar a la conjetura = int (supongo) el código de la línea 15), llamamos a la nueva función str (), que devuelve la forma de cadena de un argumento. Nosotros usamos esta función porque queremos cambiar el valor entero en numeroIntentos en su versión en cadena porque sólo podemos usar cadenas en las llamadas a imprimir ().

La línea 29 le dice al jugador que ha ganado, y cuántas conjeturas que las tomó. Anuncio en esta línea que se modifica el valor numeroIntentos en una cadena porque sólo podemos añadir cadenas a otras cadenas. Si fuéramos a tratar de añadir una cadena a un entero, el intérprete de Python mostrará un error.

Compruebe si el reproductor de Lost

  1. si creo!= Número:

En la línea 32, que usamos el operador de comparación!= Con la sentencia de si la condición para decir «no es igual a». » Si el valor de adivinar el jugador es inferior o superior (y por lo tanto, no es igual a) el número elegido por el equipo, entonces esta condición se evalúa como True, y entramos en el bloque que sigue a esta sentencia, si en la línea 33.

Líneas 33 y 34 están dentro del bloque si, y sólo se ejecutarán si la condición es True.

  1.     str = número (número)
  2.     print ( ‘No. El número que pensaba era «+ número)

En este bloque, le decimos al jugador lo que el número es porque no adivinar correctamente. Pero primero tenemos que guardar la versión de serie de serie como el nuevo valor de número.

Esta línea también en el interior del bloque si, y sólo se ejecuta si la condición era cierto. En este punto, hemos llegado al final del código, y el programa termina.

¡Felicidad! Acabamos de programar nuestro juego real primero!

Resumen: ¿Qué es exactamente la programación?

Si alguien te pregunta, «¿Qué es exactamente la programación de todos modos?» ¿Qué podrías decir a ellos? La programación es sólo la acción de escribir código para programas, es decir, la creación de programas que pueden ser ejecutadas por una computadora.

«Pero ¿qué es exactamente un programa?» Cuando usted ve a alguien usando un programa de ordenador (por ejemplo, jugar nuestro juego Guess The Number), todo lo que ves es un texto que aparece en la pantalla. El programa decide qué texto exacto para mostrar en la pantalla (que se llama el producto), sobre la base de sus instrucciones (es decir, el programa) y en el texto que el jugador pulse en el teclado (que se llama la entrada). El programa tiene instrucciones muy específicas sobre lo que el texto para mostrar al usuario. Un programa es sólo una colección de instrucciones.

«¿Qué tipo de instrucciones?» Hay sólo unos pocos tipos diferentes de instrucciones, de verdad.

Expresiones, que se componen de valores relacionados por los operadores. Las expresiones son evaluadas por un solo valor, como 2 + 2 se evalúa como 4 o ‘Hello’ + » + ‘Mundo’ se evalúa como ‘Hola Mundo’. Las llamadas a funciones son también parte de las expresiones, ya que se evalúan como un valor único a sí mismos, y este valor puede ser conectado por los operadores a otros valores. Cuando las expresiones son junto a los si y mientras las palabras clave, también pedimos a las condiciones.

Las sentencias de asignación, que simplemente almacenar valores en variables, de modo que podamos recordar los valores más adelante en nuestro programa.

si, y romper son las sentencias de control de flujo, ya que decidir que se ejecutan instrucciones. El flujo normal de la ejecución de un programa es para iniciar en la parte superior y ejecutar cada instrucción de bajar uno por uno. Pero estos estados de flujo de control puede hacer que el flujo de instrucciones de salto, el bucle más instrucciones, o salir de bucles. Las llamadas a funciones también cambiar el flujo de ejecución por saltar al comienzo de una función.

La función print (), que muestra el texto en la pantalla. Además, la entrada () puede obtener el texto del usuario a través del teclado. Esto se llama I / O (pronunciado como las letras, «ojo-oh»), porque se trata de la entrada y salida del programa.

Y eso es todo, sólo los cuatro cosas. Por supuesto, hay muchos detalles acerca de esos cuatro tipos de instrucciones. En este libro usted aprenderá acerca de los nuevos tipos de datos y los operadores, sentencias de control de flujo, además de nuevo si, al mismo tiempo y de descanso, y varias funciones nuevas. Hay también diferentes tipos de I / O (entrada desde el ratón, y dar salida de sonido y los gráficos e imágenes en lugar de sólo texto.)

Para la persona que utiliza sus programas, que en realidad sólo se preocupan de que este último tipo, I / O. El usuario escribe en el teclado y luego ve las cosas en la pantalla o escucha cosas de los altavoces. Pero para el equipo para averiguar lo que las vistas para mostrar y lo que suena a jugar, se necesita un programa, y los programas son simplemente un grupo de instrucciones que el programador haya escrito.

Una página Web para el Programa de Seguimiento de

Si tiene acceso a Internet y un navegador Web, usted puede ir a la página web de este libro en http://inventwithpython.com/traces encontrará una página que rastrea a través de cada uno de los programas de este libro. Siguiendo con la traza línea por línea, podría ser más claro lo que el Guess el programa Número hace.


Figura 4-4: La página web de rastreo.

El lado izquierdo de la página web muestra el código fuente, y la línea de relieve es la línea de código que está a punto de ser ejecutado. Se ejecuta esta línea y pasar a la siguiente línea haciendo clic en el botón «Siguiente». También puede ir un paso atrás haciendo clic en el botón «anterior», o ir directamente a un paso escribiéndola en el cuadro blanco y haga clic en el «Jump» botón.

En la parte derecha de la página web, hay tres secciones. El «actual valores de las variables» sección se muestra cada variable que se ha asignado un valor, junto con el valor en sí. La sección «Notas» le dará una pista sobre lo que está sucediendo en la línea señalada. El «resultado del programa» sección muestra la salida del programa, y la entrada que se envía al programa. (Esta página web entra automáticamente en texto para el programa cuando el programa le pide.)

Así que a cada una de estas páginas web y haga clic en los botones «Siguiente» y «Anterior» para rastrear a través del programa como lo hicimos anteriormente.

Ir al Capítulo 3 – Cuerdas Ir al Capítulo 5 – Chistes

Best Free Ways to Learn Programming

Best Free Ways to Learn Programming

vía Best Free Ways to Learn Programming.

Easy to learn languages
The first entries I want to mention are really simple. In fact they are not really programming languages at all. They are online games in which you have to control a robot and help it light up all the blue tiles by giving it correct set of commands. All you need is an internet connection, a browser, a mouse and a couple of minutes of your time. Do check them out: Light bot and Light Bot 2.
Manufactoria is a puzzle game about putting robots in their proper place. With the help of the conveyor-belts, ‘pullers’ and ‘pushers’ you have to build a machine. If you liked the game, you can also try Tile Factory.
Bug Brain (biologic[DOT]com[DOT]au/bugbrain/) is a game where you build brains to run a bug. You start in the lab where you experiment with the neurons and nodes that make up a brain. After you successfully finish the lab levels, you move out into the field to build a brain for a Lady Bug to help it feed and survive. Bug Brain was tested on Windows XP and it works fine.
Fantastic Contraption and Fantastic Contraption 2 are online games which teach a user some fundamental programming lessons. For example, this games teach you that there are more than one solutions to the problem and that if you failed to finish the level, you have to go back to the drawing board and find where you did make a mistake. This is similar to programming where you have to find errors in your program. If you want to try them out, you should know that first 21 levels of both games are free, while additional levels and making your own levels are not.
Merlin Programmer for Kids is a software, which allows 5- to 8- years old children to learn sequential programming by allowing them to make Merlin or any of the other Microsoft Agent characters perform actions, move, speak, listen for and make sounds in a predetermined manner. It is available for Windows only.
In A. I. Wars 3D: The Insect Mind your goal is to develop a competent reflexes, plus offensive and defensive strategies for your six legged fighting machines code named Cybugs to ensure the survival of your Cybug or your team of Cybugs in a battle simulation. The software is available for Windows only (You need to have Java 5 version or higher installed to the software).

RoboZZle is a online game, where you must develop a program for a small robot to help it collect all the stars on the screen using specialized programming language (You can play full version if you have Silverlight installed. If you don’t have it installed, you can use limited version instead).

Toontalk is not just a programming language or just a video game. Actually, it is both. Children can build and run all sorts of computer programs inside of it’s animated world. While learning how to program they will face challenging puzzles, express their creativity and learn new ways to solve problems. And what is probably the most important thing of all: they will have loads of fun. Toontalk is available for Windows ME, Windows 2000, Windows XP, Vista and Windows 7.
The last game on my list is the The Codex of Alchemical Engineering. As an Alchemical Engineer, you must build machines out of mechanical arms and magical glyphs that transform and combine atoms in order to create the compounds required so you can pass the level. If you don’t want to play the game, but would want to see how it looks like or if you do not know how to start, look at the tutorial for first two levels here. But beware, this game is certainly not easy to play.
With Alice which is an educational programming language with an IDE, you can easily create an animation for telling a story, play an interactive game, or a video which you can share it on the web. It was designed to be a student’s first exposure to object-oriented programming. Alice is available for Windows XP, Vista, Windows 7 and Linux.

FMSLogo is a free implementation of a computing environment called Logo and provides support for exploring diverse disciplines, including mathematics, engineering, art, music, and robotics for children in elementary schools. It has a simple GUI and runs fine even on 10-years old computers. FMSLogo is available only for Windows.

NetLogo is a multi-agent programmable modeling environment which is used by students, teachers and researchers worldwide. It comes with a large library of sample models which cover a large part of natural and social science (Art, biology, Chemistry & Physics, Computer ans Earth Science, Games, mathematics, Network, Social Science and System Dynamics). NetLogo runs on Windows 2000, Windows XP, Vista, Windows 7 and Linux (You need to have at least Java 5 installed to run this software. Java 6 or later is strongly recommended by authors, though.).
Hackety Hack can help you learn how to make software using Ruby programming language. The solution that Hackety Hack pursues is by teaching with a more traditional programming language, but adding libraries that make it easy to do complicated tasks in one line. It is available for both Windows and Linux.
Kojo is a learning environment which enables the user to play, explore, and learn in diverse areas such are: computer programming, computer and internet literacy, math and science, systematic and computational thinking and also art, music, and creative thinking. Features like syntax highlighting, code completion, and code templates make programming friendlier. Kojo is available both for Windows and Linux (You need to have Java 6 installed on your machine to be able to run Kojo.).
Scratch is an educational programming language in which user by snapping together visual programming blocks controls images, music and sound. While it is intended especially for 6- to 16-year-olds, who can create projects with their parents or older siblings, people of all ages actually use it. Scratch is available for Windows 2000, XP, Vista, Windows 7 and also for Linux.
Children can use Etoys to make their own models, stories and games, which keeps them engaged because it’s a lot of fun. It is also a highly effective way to teach math, science, and language arts. Etoys is available both for Windows and Linux.
Löve is a framework for making 2D games in the Lua programming language. If you want to make a game, you need to create a folder and open up your favorite code editor (it must have Lua support built in). Create a new file in the folder you just created, and name it main.lua. Put the following code in the file, and save it. All that is left for you to do is to drag the folder to love.exe. Löve is available for both Windows and Linux.
Game Develop allows you to create simply and quickly your own video games. Creation process is elaborated through the editor, and no previous knowledge is needed in order to use it. Game Develop is available for both Windows and Linux.
Processing is a programming language for people who want to create images, animations, and interactions. The language builds on the Java programming language, but uses a simplified syntax and graphics programming model. It is available for both Windows and Linux.
GameKit is as a full integrated development environment for new programmers to play with high level game programming concepts without needing to know about C++ or OpenGL. It uses a group of custom utilities for creating graphics and sound, and a programming language called Game Kit Language (GKL) for writing code. Because GKL is event-driven, object-oriented, and state-based, it is extremely easy to use once you learn it, and many games can be written in only a page or two of code. GameKit is available for all versions of Windows ranging from Windows 95 to Windows XP.
Construct Classic is a DirectX 9 game creator for Windows, designed for making 2D games. Indie game designers and hobbyists can use it to enter the world of game creation. Artists can produce games without having to use any programming. Teachers and students can use Construct to teach the principles of logic in a fun way. Developers can use it to rapidly create mockups and prototypes — or simply as a faster alternative to coding. With it’s successor, Construct 2, you can also make all sort of games which can run on all modern desktops, mobiles and tablets (Construct Classic is free while Construct 2 Free version offers limited sounds, events and layers). Both software are available foe Windows XP, Vista and Windows 7.
With the help of Kodu, children can make many different types of games, such as racing, strategy, RPGs, adventure, platform, puzzle, 1st person shooters, and others. It is different that some other projects because it avoids typing code by having users construct programs using visual elements via a game controller and also because programs are executed in a 3D simulation environment, rather a bitmapped or 2D display. Kodu is available for Windows XP, Vista and Windows 7 (To run Kodu, you need a graphics card that supports DirectX 9.0c and Shader Model 2.0 or higher, .NET Framework 3.5 or higher and XNA Framework 3.1 Redistributable).
Robomind is a simple educational programming environment that will familiarize users with the basics of computer science by letting them program their own robot. In addition to an introduction to popular programming techniques, they will also gain insight into areas such as robotics and artificial intelligence. RoboMind is available for Windows and Linux.
Greenfoot is an interactive Java development environment, designed primarily for educational purposes at the high school and undergraduate level. It allows easy development of two-dimensional graphical applications, such as simulations and interactive games. It is available for Windows XP, Vista, Windows 7 and Linux (You need to have Java 6 or Java 7 JDK installed on your machine to be able to run Greenfoot.).
Just BASIC is a programming language for the Windows operating system. Since it is based on on the classic BASIC programming language it is easy to learn (the detailed tutorial is included in the package), and it has been extended with structured programming facilities and with easy to use GUI commands so you can create your own Windows programs without needing to learn all the underlying details of the Windows operating system. It is available for Windows only (If you need Just Basic for Linux, look here). If web programming is what interest you, than take a look at Run Basic Free Edition. It is available for both Windows (Windows 2000, XP, Vista) and Linux.
The Gentee programming language can be classified as a procedure-oriented language with some features typical of object-oriented programming. While it is true that it has no complicated constructions and is easy to use, this on the other hand doesn’t mean that it can’t be used for making more complex applications. The Gentee is available for Windows only (older versions are available for both Windows and Linux).
BlueJ is an IDE for the Java programming language. The features of BlueJ are designed as an aid to learning object-oriented programming concepts, as well as an aid to program development itself. As a result, some commonly available tools differ from other environments, some tools are absent, and other tools are provided not commonly found in development environments. BlueJ is available for Windows XP, Vista, Windows 7 and Linux (You need to have Java 6 or java 7 installed on your computer to be able to run BlueJ.).
Suneido is a system for developing and deploying applications without the frustrations of integrating multiple different products. It incorporates an object-oriented programming language, client-server relational database software, and application frameworks and components. It includes the integrated development environment used to create applications as well as the client and server required to run applications across networks. The mission of the authors is to provide a simple and lightweight alternative to larger, complex, expensive and closed programming software. Suneido is available for all Windows versions from Windows NT to Windows 7.
Easy Code is the visual assembly programming environment made to build 32-bit Windows applications. Its interface, looking like Visual Basic, allows the user to program Windows assembler applications in an easy way. Source code of a nice CD player, a complete and fast text editor in a dll file, a complete text editor ready to use, a file shredder, a MIDI player and many other applications are all included in the installer package. If you can’t find an answer to your problem in built-in help, you can ask other users in three different forums for advice. There are two versions of Easy Code available – Masm version (using the Microsoft Macro Assembler) and GoAsm version (using the Jeremy Gordon’s Go tools). Easy Code is available for all versions of Windows ranging from Windows 95 to Windows 7.
Racket is a programming language in the Lisp/Scheme family. It distribution features an extensive library that covers systems and network programming, web development, a uniform interface to the underlying operating system, a dynamic foreign function interface, several flavours of regular expressions, lexer/parser generators, logic programming, and a complete GUI framework. It is available for both Windows and Linux.
Limnor Studio is a generic purpose visual codeless programming system, which opens the door of computer programming to a much broader population. If you are going to use it, you will be able to easily create multimedia interactive kiosks, generate your own CD-ROM presentations, from yearbooks to conferences and trade-shows or make your own data/information management program with databases. There are two versions of Limnor Studio available: Limnor Studio VS (You have to have Microsoft Visual Studio 2008 Shell (Isolated mode) and .Net 3.5 installed on your computer.) and Limnor Studio 5 (You have to have just .Net 3.5 installed). Limnor Studio is available for Windows XP SP3 and Windows 7.
Programming Without Coding Technology (PWCT) is a visual programming languages framework to create and use general-purpose visual programming languages where the programmer don’t need to write the code but can visually specify every functional aspect of the program similar to flowcharts and algorithms. It uses a visual programming method called coding simulation method (CSM) rather than drag-and-drop approach. The author recommends using keyboard shortcuts rather than mouse because you can work faster that way. PWCT is available for Windows only (During installation process you can’t change the install directory.).
Pelles C is a complete lightweight development kit for Windows. It contains (among other things) an optimizing C compiler, a linker, a resource compiler, a message compiler, a make utility and install builders. It also contains an integrated development environment with project management, debugger, source code editor and resource editors for dialogs, menus, string tables, accelerator tables, bitmaps, icons, cursors, animated cursors, animation videos (AVI’s without sound), versions and XP manifests. Pelles C is available for Windows 2000, Windows XP, Vista and Windows 7.

Aprender a programar en Python facilmente

http://www.maestrosdelweb.com/editorial/guia-python/

Posted from WordPress for Android

Happy Nerds – Programming Links for Kids

 

 

 

 

 

Happy Nerds – Programming Links for Kids.

Introducción a la programación con Pyhton. Bartolomé Sintes Marco

Lecciones y ejercicios de programación

LECCIONES EJERCICIOS

vía Introducción a la programación con Pyhton. Bartolomé Sintes Marco.

iBuildApp :: Create Free iPhone Application Using Online Interface Builder| Android, iPad

 

 

 

 

 

iBuildApp :: Create Free iPhone Application Using Online Interface Builder| Android, iPad.

Crear Juegos con RPG JS: Your online RPG on your browser

RPG JS: Your online RPG on your browser.

Python and Pygame Examples | Computer Science Department

Introduction to Computer Science Using Python and Pygame

vía Python and Pygame Examples | Computer Science Department.

rur-ple – an environment designed to help you learn computer programming using the language Python – Google Project Hosting

Aprender a programar es divertido RUR-PLE en Python

an environment designed to help you learn computer programming using the language Python

vía rur-ple – an environment designed to help you learn computer programming using the language Python – Google Project Hosting.

Codificador online – Ideone.com | Online IDE & Debugging Tool >> C/C++, Java, PHP, Python, Perl and 40+ compilers and intepreters

Codificador online 

 

Ideone.com | Online IDE & Debugging Tool >> C/C++, Java, PHP, Python, Perl and 40+ compilers and intepreters.

Desarrollo en Android | sgoliver.net blog

Desarrollo en Android | sgoliver.net blog.

Curso Python

Curso Python.

Colección Fascículos Digitales: Competencias en TIC

Colección Fascículos Digitales: Competencias en TIC.

Aprender a programar con Hackety Hack via reddit.com

Learn to program with Hackety Hack via reddit.com.

A Simple Python Alarm Clock | TechSource

A Simple Python Alarm Clock

vía A Simple Python Alarm Clock | TechSource.

 

Problem: You are all alone in a far away land and needed to wake up early the next day. The problem is, you forgot to bring any alarm clock. But, you brought a Linux-powered laptop computer with you. Say for example an Asus Eee PC.


Solution
: Most Linux distributions have Python installed out-of-the-box. All you need is this very simple Python alarm clock script:

import time
import os

not_executed = 1

while(not_executed):
dt = list(time.localtime())
hour = dt[3]
minute = dt[4]
if hour == 5 and minute == 45:
os.popen2(«open /Users/jun/shout.mp3»)
not_executed = 0

Happy Hacking! 🙂

Create Games the Easy Way with Pygame | TechSource

Create Games the Easy Way with Pygame

vía Create Games the Easy Way with Pygame | TechSource.

 

 

Pygame is a cross-platform set of Python modules designed for writing video games. It includes computer graphics and sound libraries designed to be used with the Python programming language. It is built over the Simple DirectMedia Layer (SDL) library, with the intention of allowing real-time computer game development without the restraints and low-level mechanics of the C programming language and its derivatives. This is based on the assumption that the most consuming functions inside games (mainly the graphics part) can be completely abstracted from the game logic in itself, making it probable to use a high-level programming language like Python to structure the game.

It is not impossible to write simple but decent games with just a few lines of code using the Pygame module. Anyone with a little programming knowledge can create games similar to the following:

Helicopters
Shoot the helicopters and the bombs they drop before they blow up your base!


Soccer
The game is a standard soccer with three players and a goal keeper. The players are named 1, 2 and 3. By using the number key on the keyboard you can switch/pass the ball to the player. The arrow keeps provide a mechanism to move the player around. The game runs for duration of 5 minutes. The goalkeepers are automatics and need not be controlled.


OilWorker
Oil Worker is an addictive and challenging arcade puzzle game developed in PyGame. You’ve been contracted by an oil company and your goal is to build a long pipe to carry the oil from the oil well to the refinery.


Pykanoid
Pykanoid is an Arkanoid clone game developed in Python/PyGame. It consist on a bouncing ball that player must control with a bat and try to destroy all blocks in the screen. It has powerups to enhance ball and bat.


Slipslide
Slipslide 2 is a simple puzzle game where the goal in each level is to get to the exit by sliding between obstacles. When you start moving in a certain direction, you can’t stop or change direction until you hit an obstacle or a wall. And to add to the difficulty, some levels have holes in the ground which make you restart the level if you fall into them. There will be twenty-five different levels, all linked by a story that sees the main character trying to get to an ice-dancing competition in Antarctica.


Fishie Fishie
Fishie Fishie is a kaliedscope of high speed sea food, featuring a challenging one button fish control system, lovingly hand illustrated fish, fish related poetry, and fish.



Visit
Pygame.org for more info, to download and to see the documentation. There, you will also find tutorials and list of projects that make use of Pygame.

Google: Exploring Computational Thinking

Exploring Computational Thinking

vía Google: Exploring Computational Thinking.

 

Google is committed to promoting computational thinking throughout the K-12 curriculum to support student learning and expose everyone to this 21st century skill.

What is Computational Thinking? Computational thinking (CT) involves a set of problem-solving skills and techniques that software engineers use to write programs that underlay the computer applications you use such as search, email, and maps. Below is a list of specific techniques along with real world examples from our every day lives.

  • Decomposition: When we taste an unfamiliar dish and identify several ingredients based on the flavor, we are decomposing that dish into its individual ingredients.
  • Pattern Recognition: People look for patterns in stock prices to decide when to buy and sell.
  • Pattern Generalization and Abstraction: A daily planner uses abstraction to represent a week in terms of days and hours, helping us to organize our time.
  • Algorithm Design: When a chef writes a recipe for a dish, she is creating an algorithm that others can follow to replicate the dish.

CT Models in K-12 Curriculum

Several committed teacher-contributors in collaboration with Google engineers have put together classroom-ready lessons and examples showing how educators can incorporate CT into the K-12 curriculum. Click below to browse materials by subject:

Resources for Educators

Get started on building your own CT curriculum with these starter materials and related resources. For more resources or to join in a CT-related discussion with other educators, visit our moderated ECT Discussion Forums.

Programa o serás programado | Pijamasurf

Programa o serás programado

vía Programa o serás programado | Pijamasurf.

 

 

 

Douglas Rushkoff y el Ciber-Sapiens: la guerra por programar nuestra propia realidad o someternos a la de alguien más.

Rushkoff no es cauto , sin vacilación: PROGRAMA O SE PROGRAMADO. Los usuarios, si no crean su propio programa, son usados. En otras palabras, hace casi trecientos años, William Blake decía: «Necesito crear mi propio sistema o seré esclavizado por el de otro hombre». Hoy en día no sólo necesitamos crear un propio programa para no ser esclavizados por otro hombre, necesitamos crear nuestro propio programa para no ser esclavizados por la inteligencia creada por los programas. La realidad se ha convertido en una lucha ciber-nietzchiana: por un nicho donde ejecutar tu propio código.

Programa o serás programado: el Manifiesto por una red neutral

(Si te sientes cómodo y representado por este texto, dale toda la difusión que puedas y quieras: reprodúcelo, enlázalo, tradúcelo, compártelo, vótalo… todas esas cosas que puedes hacer con total tranquilidad y libertad gracias, precisamente, al hecho de que tenemos todavía una red neutral. Hagamos posible el seguir teniéndola. Si lo mencionas en tu cuenta de Twitter o Facebook, usa el hashtag #redneutral)

Los ciudadanos y las empresas usuarias de Internet adheridas a este texto MANIFESTAMOS:

  1. Que Internet es una Red Neutral por diseño, desde su creación hasta su actual implementación, en la que la información fluye de manera libre, sin discriminación alguna en función de origen, destino, protocolo o contenido.
  2. Que las empresas, emprendedores y usuarios de Internet han podido crear servicios y productos en esa Red Neutral sin necesidad de autorizaciones ni acuerdos previos, dando lugar a una barrera de entrada prácticamente inexistente que ha permitido la explosión creativa, de innovación y de servicios que define el estado de la red actual.
  3. Que todos los usuarios, emprendedores y empresas de Internet han podido definir y ofrecer sus servicios en condiciones de igualdad llevando el concepto de la libre competencia hasta extremos nunca antes conocidos.
  4. Que Internet es el vehículo de libre expresión, libre información y desarrollo social más importante con el que cuentan ciudadanos y empresas. Su naturaleza no debe ser puesta en riesgo bajo ningún concepto.
  5. Que para posibilitar esa Red Neutral las operadoras deben transportar paquetes de datos de manera neutral sin erigirse en “aduaneros” del tráfico y sin favorecer o perjudicar a unos contenidos por encima de otros.
  6. Que la gestión del tráfico en situaciones puntuales y excepcionales de saturación de las redes debe acometerse de forma transparente, de acuerdo a criterios homogéneos de interés público y no discriminatorios ni comerciales.
  7. Que dicha restricción excepcional del tráfico por parte de las operadoras no puede convertirse en una alternativa sostenida a la inversión en redes.
  8. Que dicha Red Neutral se ve amenazada por operadoras interesadas en llegar a acuerdos comerciales por los que se privilegie o degrade el contenido según su relación comercial con la operadora.
  9. Que algunos operadores del mercado quieren “redefinir” la Red Neutral para manejarla de acuerdo con sus intereses, y esa pretensión debe ser evitada; la definición de las reglas fundamentales del funcionamiento de Internet debe basarse en el interés de quienes la usan, no de quienes la proveen.
  10. Que la respuesta ante esta amenaza para la red no puede ser la inacción: no hacer nada equivale a permitir que intereses privados puedan de facto llevar a cabo prácticas que afectan a las libertades fundamentales de los ciudadanos y la capacidad de las empresas para competir en igualdad de condiciones.
  11. Que es preciso y urgente instar al Gobierno a proteger de manera clara e inequívoca la Red Neutral, con el fin de proteger el valor de Internet de cara al desarrollo de una economía más productiva, moderna, eficiente y libre de injerencias e intromisiones indebidas. Para ello es preciso que cualquier moción que se apruebe vincule de manera indisoluble la definición de Red Neutral en el contenido de la futura ley que se promueve, y no condicione su aplicación a cuestiones que poco tienen que ver con ésta.

Teaching My Daughter To Code via reddit.com

Teaching My Daughter To Code via reddit.com.

A %d blogueros les gusta esto: