Archivo del sitio
Codecademy
-
HTML & CSS – Traducción al Español (América Latina)
Lo que vas a aprender …
- HTML & CSS
-
JavaScript – Traducción al Español (América Latina)
Lo que vas a aprender …
- JavaScript
-
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
-
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.
-
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.
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.
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)
- # Este es un juego de adivinar el número.
- import random
- numeroIntentos = 0
- print (‘¡Hola! ¿Cuál es tu nombre? ‘)
- miNombre = input()
- numero = random.randint(1, 20)
- print ( ‘Bien, ‘ + miNombre + ‘, estoy pensando en un número entre 1 y 20.’)
- while numeroIntentos < 6:
- print ( «Adivinalo.) # Hay cuatro espacios antes de print
- adivina = input()
- adivina = int(adivina)
- numeroIntentos = numeroIntentos + 1
- if adivina < numero:
- print (‘Tu intento es demasiado bajo.’) # Hay ocho espacios antes de print.
- if adivina > numero:
- print ( ‘Tu intento es demasiado alto. ‘ )
- if adivina == numero:
- break
- if adivina == numero:
- numeroIntentos = str(numeroIntentos)
- print ( ‘Buen trabajo,’ + miNombre + ‘! Has adivinado mi número en’ + numeroIntentos + ‘ intentos! ‘)
- if adivina != numero:
- numero = str(numero)
- 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.
- # 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.
- 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.)
- 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í.
- print ( «¡Hola! ¿Cuál es tu nombre? «)
- 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()
- 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.
>>> 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).
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:
- numero = random.randint(1, 20)
- print ( ‘Bien, ‘ + miNombre + ‘, estoy pensando en un número entre 1 y 20.’)
Por estas líneas:
- numero = random.randint(1, 100)
- 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:
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:
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).
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.
- 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:
- mientras que numeroIntentos <6:
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:
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:
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:
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.)
- 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:
- mientras que numeroIntentos <6:
en esta línea:
- 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.
- print ( «Adivina.) # Hay cuatro espacios en frente de la impresión.
- 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 ()
- 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:
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
- 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
- si <adivinar número:
- 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.
- si> Supongo número:
- 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
- == adivinar si el número:
- 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
- == 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.
- numeroIntentos str = (numeroIntentos)
- 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
- 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.
- str = número (número)
- 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 |
Aprender a programar en Python facilmente
http://www.maestrosdelweb.com/editorial/guia-python/
Posted from WordPress for Android
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
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:
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
Comentarios de código graciosos | cObaia.net
Top funny source code comments
vía Top funny source code comments | cObaia.net.
Top funny source code comments
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
/* * OK; before you read the following code know what I am trying to do. * I needed to get the list of child catagories from the root node so that * the root node didn't appear in the selection box. But for some stupid * fucking reason the stupid fucking DBA wont let me access the items using * indices and I instead have to use their stupid fucking Iterator * implementation. So there. */ $firstList = $this->getRootNode()->getChildren(); foreach ($firstList as $node) { $nodes = $node->getChildren(); break; // wtf? } |
1 |
// if i ever see this again i'm going to start bringing guns to work
|
1 |
//hack for ie browser (assuming that ie is a browser)
|
1 2 3 4 5 6 7 8 |
/**
* For the brave souls who get this far: You are the chosen ones,
* the valiant knights of programming who toil away, without rest,
* fixing our most awful code. To you, true saviors, kings of men,
* I say this: never gonna give you up, never gonna let you down,
* never gonna run around and desert you. Never gonna make you cry,
* never gonna say goodbye. Never gonna tell a lie and hurt you.
*/
|
1 2 3 4 5 6 7 8 9 10 |
// // Dear maintainer: // // Once you are done trying to 'optimize' this routine, // and have realized what a terrible mistake that was, // please increment the following counter as a warning // to the next guy: // // total_hours_wasted_here = 16 // |
1 |
// TODO: Fix this. Fix what?
|
1 2 3 |
// no comments for you // it was hard to write // so it should be hard to read |
1 |
// I will give you two of my seventy-two virgins if you can fix this.
|
1 |
options.BatchSize = 300; //Madness? THIS IS SPARTA! |
1 2 |
// I am not responsible of this code. // They made me write it, against my will. |
1 2 |
//Dear future me. Please forgive me. //I can't even begin to express how sorry I am. |
1 |
double penetration; // ouch |
1 |
# To understand recursion, see the bottom of this file.
|
At the bottom file:
1 |
# To understand recursion, see the top of this file.
|
1 |
//I am not sure why this works but it fixes the problem.
|
1 2 |
//somedev1 - 6/7/02 Adding temporary tracking of Logic screen //somedev2 - 5/22/07 Temporary my ass |
1 2 3 4 5 6 7 |
/*
* You may think you know what the following code does.
* But you dont. Trust me
* Fiddle with me, and youll spend many a sleppless
* night cursing the moment you thought you be clever
* enough to "optimize" the code below.
* Now close this file and go play with something else.
|
1 |
// drunk, fix later
|
1 |
// Magic. Do not touch.
|
1 2 3 |
// I dedicate all this code, all my work, to my wife, Darlene, who will // have to support me and our three children and the dog once it gets // released into the public |
1 2 |
//When I wrote this, only God and I understood that I was doing //Now, God only knows |
Lightbot 2.0 – Juego de lógica de programación
Lightbot es un muy buen juego de lógica, donde tendrás que indicarle al bot como encender cada recuadro azul, mediante el uso de lógica de programación. Utilizando condicionales, recursiones y funciones.
Play Lightbot 2.0, a free online game on Kongregate
Tutoriales – desarrolladores-android | Grupos de Google
Tutorial para desarrollo de aplicaciones para móviles
Tutoriales – desarrolladores-android | Grupos de Google
Capítulo 3 Traducción http://inventwithpython.com/
Ir al Capítulo 2 – El intérprete interactivo | Ir al Capítulo 4 – Adivina el número |

Temas tratados en este capítulo:
- Flujo de ejecución
- Cadenas
- Concatenación de cadenas
- Los tipos de datos (como cadenas o enteros)
- Uso de IDLE para escribir código fuente.
- Guardar y ejecutar programas en IDLE.
- La función print ().
- La función input ().
- Comentarios
- Aprovechando las variables
- Diferenciando entre mayúsculas y minúsculas
- Sobrescribir variables
Ya basta de números enteros y matemáticas, por ahora. Python es más que una simple calculadora. Ahora vamos a ver qué se puede hacer con texto en Python . En este capítulo, vamos a aprender cómo almacenar texto en variables, la combinación de textos, y mostrarlos en la pantalla. Muchos de nuestros programas utilizan textos para mostrar nuestros juegos al jugador y el jugador introduce el texto en nuestros programas a través del teclado. También haremos nuestro primer programa, que recibe el usuario con el texto «Hola Mundo» y pide el nombre del usuario.
Cadenas
En Python, trabajamos con pequeños trozos de texto llamados strings o cadenas. Podemos almacenar los valores de cadena dentro de las variables al igual que podemos almacenar valores numéricos dentro de las variables. Cuando escribimos cadenas, las ponemos entre dos comillas simples ( ‘), como esto:
>>>
Las comillas están allí sólo para decirle a la computadora donde empieza y termina la cadena .
Ahora, si escribe spam en el shell, usted debe ver el contenido de la variable spam – la cadena ‘hola’. Esto es así porque Python evaluará a la variable con el valor almacenado dentro de la variable.
>>> spam
‘hola’
>>>
Las cadenas pueden tener casi cualquier carácter o signo en ellas, así como espacios y números. (Las cadenas no pueden tener comillas simples dentro de ellas sin necesidad de utilizar un carácter de escape. Caracteres de escape se describen más adelante.) Todos estos son ejemplos de cadenas:
‘Hola!’
‘Albert’
‘GATITOS’
‘7 manzanas, 14 naranjas, 3 limones ‘
‘Hace mucho tiempo en una galaxia muy, muy lejana … »
‘O&*#*&%wYOCfsdYOyGFC%*YO*&%3yc8r2’
Como hicimos con los valores numéricos en el capítulo anterior, también podemos poner los valores de cadena en las expresiones. Por ejemplo, la expresión 4 * 2 + 3 es una expresión con valores numéricos que se evaluará al entero 11.
Concatenación de cadenas
Usted puede añadir una cadena al final de otra mediante el operador +, lo que se llama concatenación de cadenas. Pruebe a escribir ‘Hola’ + ‘Mundo!’ en el shell:
‘HolaMundo!’
>>>
Para mantener las cadenas separadas, poner un espacio al final de la cadena ‘Hola’, antes de la comilla simple, así:
‘Hola Mundo!’
>>>
Cadenas y los enteros son diferentes tipos de datos. Todos los valores tienen un tipo de dato. El tipo de dato del valor ‘Hola’ es una cadena. El tipo de dato del valor 5 es un número entero. El tipo de dato de los datos nos dice (y el ordenador) qué tipo de dato es.
Escribir programas en el Editor de Archivos del IDLE
Hasta ahora hemos estado escribiendo instrucciones de una en una en el shell interactivo. Sin embargo cuando escribimos programas, escribimos varias instrucciones y hacemos que se ejecuten todas a la vez. Vamos a escribir nuestro primer programa!
El nombre del programa que proporciona el intérprete de comandos interactivo se llama IDLE, Interactive DeveLopement Environment (Entorno de Desarrollo Interactivo). IDLE también tiene otra parte que se llama Editor de Archivos.
Haga clic en el menú File en la parte superior de la ventana de Shell de Python, y seleccione New Window. Una ventana en blanco aparecerá para que podamos escribir nuestro programa. Esta ventana es el Editor de Archivos.
Figura 3-1: La ventana del editor de archivos.
Hola Mundo!
![]() Figura 3-2: La parte inferior derecha de la ventana del editor de archivos le dice donde esta el cursor. El cursor se encuentra actualmente en la línea 12. Una tradición de los programadores para aprender un nuevo lenguaje es hacer su primer programa que mostrará el texto «Hola mundo!» en la pantalla. Vamos a crear nuestro propio programa Hola Mundo ahora. Al escribir su programa, no escriba los números en la parte izquierda del código. Están ahí para que podamos hacer referencia a cada línea por el número en nuestra explicación. Si nos fijamos en la esquina inferior derecha de la ventana del editor de archivos, nos dirá en qué línea se encuentra el cursor en la actualidad. Introduzca el texto siguiente en la nueva ventana de editor de archivos. Llamamos a este texto código de programa fuente, ya que contiene las instrucciones que Python seguirá para determinar exactamente cómo el programa debería comportarse. (Recuerde, no escriba en los números de línea!) NOTA IMPORTANTE! El siguiente programa debe ser ejecutado por el intérprete de Python 3, no en el Python 2.6 (o cualquier otra versión 2.x). Asegúrese de que tiene la versión correcta de Python instalado. (Si usted ya tiene Python 2 instalado, usted puede tener instalado Python 3 al mismo tiempo.) Para descargar Python 3, ir a http://python.org/download/releases/3.1.1/ e instalar esta versión. |
- # Este programa, dice hola y me pide mi nombre.
- print (‘Hola, mundo!’)
- print ( ‘¿Cuál es tu nombre?’)
- myName = input()
- print (‘Es bueno verte, ‘+ myName)
El programa IDLE dará diferentes colores a los diferentes tipos de instrucciones. (Usted puede encontrar una referencia al código de color en la contratapa de este libro.) Después de que se ha escrito el código, la ventana debe tener este aspecto:
Figura 3-3: La ventana del editor de archivos se verá así después de escribir en el código.
Guardando tu programa
![]() Figura 3-4: Guardar el programa. Una vez que haya introducido su código fuente, guárdelo para que usted no tenga que volver a escribirlo cada vez que iniciamos IDLE. Para ello, seleccione el menú File en la parte superior de la ventana del Editor de Archivos y, a continuación, haga clic en Save As. La ventana Save As se debería abrir. Introduzca hello.py en el cuadro File Name y pulse Save. (Ver Figura 3-4.) Debe guardar los programas de vez en cuando a medida que los escribe. De esta manera, si el ordenador se bloquea o si accidentalmente sale del IDLE, sólo lo que ha escrito desde la última vez que guardó se pierde. Presione Ctrl-S para guardar el archivo rápidamente, sin usar el ratón. Si obtiene un error como este: ¡Hola, mundo!
¿Cómo te llamas? Albert Traceback (most recent call last): … entonces esto significa que está ejecutando el programa con Python 2, en lugar de Python 3. Puede o bien instalar Python 3, o convertir el código fuente de este libro a Python 2. En el Apéndice A se enumeran las diferencias entre Python 2 y 3 que se necesita para este libro. |
Abrir los Programas que ha Guardado
Para cargar un programa guardado, seleccione File > Open. Al hacerlo, en la ventana que aparece elija hello.py y pulse el botón Open. Su programa guardadohello.py se debe abrir en la ventana del Editor de archivos.
Ahora es el momento para ejecutar nuestro programa. En el menú File, seleccione Run > Run Module o simplemente pulse la tecla F5 en el teclado. El programa deberá ejecutarse en la ventana de shell que apareció cuando inició el IDLE. Recuerde, usted tiene que presionar F5 desde la ventana del editor de archivos, no en la ventana del shell interactivo.
Cuando su programa le pida su nombre, continuar e ingresarlo, como se muestra en la Figura 3-5:
Figura 3-5: ejecutar el programa.
Ahora, cuando pulse Enter, el programa lo debe saludar saludar a usted (el usuario) por su nombre. ¡Felicitaciones! Usted ha escrito su primer programa. Ahora usted es un programador de computadoras principiante. (Puede ejecutar este programa nuevamente si lo desea pulsando F5 de nuevo.)
Como funciona el programa «Hola Mundo»
¿Cómo funciona este programa? Bueno, cada línea que hemos entrado es una instrucción para la computadora que es interpretada por Python de una forma que el equipo va a entender. Un programa de ordenador se parece mucho a una receta. Hacer el primer paso en primer lugar, luego el segundo, y así sucesivamente hasta llegar a la final. Cada instrucción se sigue en secuencia, comenzando desde la parte superior del programa y ejecutando la lista de instrucciones hacia abajo. Después de que el programa ejecuta la instrucción de la primera línea, se mueve y ejecuta la segunda línea, luego la tercera, y así sucesivamente.
A la ejecución paso a paso de las intrucciones de un programa la llamamos flujo de ejecución, o solamente ejecución.
Ahora echemos un vistazo a nuestro programa de a una línea a la vez para ver que hace, empezando con la línea número 1.
Comentarios:
- # Este programa, dice hola y me pide mi nombre.
Esta línea se llama comentario. Cualquier texto después de un signo # (llamado signo numeral) es un comentario. Los comentarios no son para el equipo, son para usted, el programador. La computadora los ignora. Se acostumbran a usar para recordar lo que hace el programa o para decirle a otros que podrían ver su código que es lo que el código está tratando de hacer.
Los programadores suelen poner un comentario en la parte superior del código de su programa para darle un título. El programa IDLE muestra los comentarios en rojo como ayuda para resaltarlos.
Funciones
Una función es como una especie de mini-programa dentro de su programa. Contiene líneas de código que se ejecuta de arriba a abajo. Python ofrece algunas funciones incorporadas que podemos utilizar. La gran cosa acerca de las funciones es que sólo tenemos que saber lo que hace la función, pero no cómo lo hace. (Usted necesita saber que la función print () muestra el texto en la pantalla, pero usted no necesita saber cómo se hace esto.)
Una llamada a función es un pedazo de código que le dice a nuestro programa que ejecute el código que esta dentro de la función. Por ejemplo, el programa puede llamar a la función print () cada vez que desee mostrar una cadena en la pantalla. La función print () toma la palabra que usted escribe entre paréntesis como entrada y muestra el texto en la pantalla. Como queremos que se vea Hola mundo! en la pantalla, se escribe el nombre de la función print seguido de un paréntesis de apertura, seguido por la cadena ‘Hola mundo!’ y un paréntesis de cierre.
La Función print ()
- print (‘Hola, mundo! ‘)
- print ( ‘¿Cuál es tu nombre?’)
Esta línea es un llamado a la función print, normalmente escrito como print () (con la cadena que se va a mostrar dentro de los paréntesis).
Añadimos paréntesis al final de los nombres de función para que quede claro que nos referimos a una función llamada print (), no una variable llamada print . El paréntesis al final de la función es para que sepamos que estamos hablando de una función, al igual que las comillas alrededor del número ’42 ‘nos dicen que estamos hablando de la cadena ’42’ y no del entero 42.
La línea 3 es otra llamada a funciónprint () . Esta vez, el programa muestra «¿Cuál es tu nombre?»
La Función input ()
- myName = input ()
Esta línea tiene una sentencia de asignación con una variable (myName) y una llamada a función (input ()). Cuando input () es llamada, el programa espera por la entrada, para que el usuario introduzca el texto. La cadena de texto que el usuario ingresa (su nombre) se convierte en valor de salida de la función.
Al igual que las expresiones, llamadas a funciones evaluan a un solo valor. El valor que el llamado a función evalúa se llama el valor de retorno. En este caso, el valor de retorno de la función input() es la cadena que el usuario escribió en su nombre. Si el usuario escribió Albert, el llamado a la función input () se evalúa como la cadena ‘Albert’.
La función llamadainput () no necesita ninguna entrada (a diferencia de la función print ()), razón por la cual no hay nada entre los paréntesis.
- print ( ‘Es bueno verte, ‘+ myName)
En la última línea tenemos una función print () de nuevo. Esta vez, utilizamos el operador más (+) para concatenar la cadena ‘Es bueno verte, y la cadena almacenada en la variable myName, que es el nombre que el usuario ingresa en el programa. Así es como conseguimos que el programa nos de la bienvenida con su nombre.
Finalizando el programa
Una vez que se ejecuta la última línea del programa, éste se detiene. En este punto se ha terminado o ha salido y todas las variables son olvidadas por el equipo, incluyendo la cadena que se almacenó en myName. Si intenta ejecutar el programa nuevamente con un nombre diferente, como Carolyn, éste creerá que es su nombre.
¿Cómo te llamas?
Carolyn
Es bueno verte, Carolyn
Recuerde, el ordenador solo hace exactamente lo que el programa le dice que haga. En este, nuestro primer programa, que está programado para pedirle su nombre, le permite escribir una cadena, y luego saludar y mostrar la cadena que ha escrito.
Pero los ordenadores son tontos. Al programa no le importa si se escribe su nombre, el nombre de otra persona, o simplemente algo tonto. Puede escribir lo que quieras y el equipo lo tratará de la misma manera:
¿Cómo te llamas?
escoba
Es bueno verte, escoba
Los nombres de variables
Al equipo no le importa el nombre de su variables, pero a Ud. si debería importarle. Dar los nombres a las variables que reflejan el tipo de dato que contienen hace que sea más fácil de entender lo que hace un programa. En lugar de myName, podríamos haber llamado a la variable abrahamLincoln o nAmE. El equipo ejecuta el programa igualmente (siempre y cuando utilice consistentemente abrahamLincoln o nAmE).
Los nombres de variables (así como todo lo demás en Python) diferencia entre mayúsculas y minúsculas, son case-sensitive. Case-sensitive significa que el mismo nombre de variable en mayúscula o minúscula es considerado como un nombre de variable totalmente distintos. Así de SPAM, Spam, sPAM y spam se consideran cuatro variables diferentes en Python. Cada una de ellas puede contener sus propios valores por separado.
Es una mala idea tener diferentes variables usando case-sensitive en su programa. Si almacena su primer nombre en una variable llamada nombre y su apellido en una variableNOMBRE, sería muy confuso cuando lea su código semanas después de que lo escribió. Entonces nombre significa el primer nombre y NOMBRE significa apellido, o al revés?
Si accidentalmente cambia las variables nombre y NOMBRE, a continuación, el programa seguirá funcionando (no tendrá errores de sintaxis), pero se ejecutará de forma incorrecta. Este tipo de error en el código se llama un bug. Es muy común que accidentalmente cometa bugs o errores en sus programas, mientras los escribe. Por ello, es importante que los nombres de las variables que usted elija tengan sentido.
También ayuda a nombrar a las variables si incluye más de una palabra. Si almacena una cadena de lo que había para el desayuno en una variable con nombre, queTengoParaElDesayuno es mucho más fácil de leer que quetengoparaeldesayuno. Esta es una convención (es decir, un opción pero una forma estándar de hacer las cosas) en la programación Python. (Aunque aún mejor sería algo simple, como miDesayuno. Mayúscula la primera letra de cada palabra en los nombres de variables hace que el programa sea más legible.
Sobrescribir Variables
Cambiar el valor almacenado dentro de una variable es fácil. Sólo realiza otra sentencia de asignación con la misma variable. Mira lo que sucede cuando se introduce el código siguiente en el intérprete de comandos interactivo:
>>> print (spam)
42
>>> spam = ‘Hola’
>>> print (spam)
Hola
Inicialmente, la variable spam tenía almacenado el entero 42 dentro de ella. Esta es la razón por el primer print (spam) muestra 42. Pero cuando ejecutamos spam = ‘Hello’, el valor 42 se descarta de la variable y es reemplazado por el nuevo valor, la cadena ‘Hola’ que se coloca dentro de la variable de spam.
Reemplazar el valor de una variable con un nuevo valor se denomina sobrescribir el valor. Es importante saber que el valor antiguo es permanentemente olvidado. Si usted quiere recordar este valor para que pueda usarlo más tarde en su programa, guárdelo en una variable diferente antes de sobrescribir el valor:
>>> print (spam)
42
>>> oldSpam = spam
>>> spam = ‘Hola’
>>> print (spam)
Hola!
>>> print (oldSpam)
42
En el ejemplo anterior, antes de sobrescribir el valor de spam, almacenamos ese valor en una variable llamada oldSpam.
Resumen
Ahora que hemos aprendido a tratar con texto, podemos comenzar a hacer programas para que el usuario pueda ejecutar e interactuar con ellos. Esto es importante porque el texto es la principal forma para que el usuario y el ordenador se comuniquen entre sí. El jugador introducirá el texto en el programa a través del teclado con la función input (). Y el equipo muestra el texto en la pantalla cuando se ejecuta la función print ().
Las cadenas son sólo un tipo de dato diferente que podemos utilizar en nuestros programas. Podemos utilizar el operador + para combinar cadenas. Este proceso es llamado concatenación de cadenas. Usar el operador + para concatenar dos cadenas para formar una nueva cadena es igual que usar el operador + para sumar dos números enteros para formar un nuevo entero (la suma).
En el próximo capítulo, vamos a aprender más sobre las variables, de modo que nuestro programa va a recordar el texto y los números que el jugador ingrese en el programa. Una vez que hemos aprendido a utilizar texto, números y variables, estaremos listos para empezar a crear juegos.
Ir al Capítulo 2 – El intérprete interactivo | Ir al Capítulo 4 – Adivina el número |
Capítulo 2 Traducción http://inventwithpython.com/
Ir al Capítulo 1 – Instalación de Python | Ir al Capítulo 3 – Cadenas |

Temas tratados en este capítulo:
- Números enteros y números de punto flotante
- Expresiones
- Valores
- Operadores
- Evaluación de expresiones
- Almacenar valores en variables
Antes de empezar a escribir los juegos de ordenador, primero debemos aprender algunos conceptos básicos de programación. Estos conceptos son los valores, operadores, expresiones y variables. No vamos a empezar a programar en este capítulo, pero sabiendo estos conceptos y los nombres de las cosas haremos que aprender a programar sea mucho más fácil. Esto es porque la mayor parte de la programación se basa en unos pocos conceptos simples que combinados hacen a los programas avanzados.
Vamos a comenzar por aprender a usar el intérprete de comandos interactivo (Shell) de Python.
Algunas cosas simples de matemáticas
Para abrir IDLE en Windows, haga clic en Inicio> Programas> Python 3.0> IDLE (Python GUI). Con IDLE abierto, vamos a hacer algunos cálculos simples con Python. El intérprete de comandos interactivo (Shell) puede funcionar como una calculadora. Escribe 2+2 en el Shell y pulsa la tecla Enter en tu teclado. (En algunos teclados, esta es la tecla de RETURN.) Como se puede ver en la Figura 2-1, el equipo debe responder con el número 4, a la suma de 2+2.
Figura 2-1: Escribe 2 +2 en el Shell.
Como puedes ver, podemos usar el Shell de Python como una calculadora. Esto no es un programa en sí mismo, solo estamos empezando a aprender los conceptos básicos en este momento. El signo + le indica a la computadora que sume los números 2 y 2. Para restar números usa el signo -, y para multiplicar números de utiliza un asterisco (*), así:
2+2 | suma |
2-2 | resta |
2*2 | multiplicación |
2/2 | división |
Cuando se usa de esta manera, +, -, *, y / se denominan operadores, ya que le indican a la computadora que realice la operación especificada con los números que lo rodean.
Números enteros y números de punto flotante
En la programación (y también en las matemáticas), los números enteros como 4, 0, y 99 son llamados integer. Números con fracciones o decimales (como 3.5 y 42.1 y 5.0) no son enteros. En Python, el número 5 es un número entero, pero si lo escribimos como 5.0, no sería un número entero. Los números con un punto decimal se denominan números de punto flotante. En matemáticas, 5.0 se considera todavía un número entero y el mismo que el número 5, pero en la programación de computadoras se considera que cualquier número con un punto decimal no es un entero.
Expresiones
Pruebe a escribir algunos de estos problemas de matemáticas en el shell, aprieta la tecla ENTER después de cada uno.
8 * 6
10-5 +6
2 + 2
Figura 2-2 es lo que el intérprete de comandos interactivo, en IDLE mostrará después de escribir las instrucciones de arriba.
Figura 2-2: Lo que aparece en la ventana de IDLE después de entrar las instrucciones.
Figura 2-3: Una expresión es un compuesto de valores y los operadores.
Estos problemas se llaman expresiones matemáticas. Los ordenadores pueden resolver millones de estos problemas en cuestión de segundos. Las expresiones se componen de valores (los números) conectados por los operadores (los signos matemáticos). Vamos a aprender exactamente lo que son los valores y los operadores.
Como se puede ver con la última expresión en el ejemplo anterior, usted puede poner cualquier cantidad de espacios entre los números enteros y estos operadores. (Pero asegúrese de que siempre empieza en el principio de la línea, sin espacios por delante.)
Los números son un tipo de valor. Los enteros son un tipo de número. Pero, a pesar de que los enteros son números, no todos los números son números enteros. (Por ejemplo, fracciones y números con puntos decimales como 2.5 son números que no son números enteros.)
Esto es como que un gato es un tipo de mascota, pero no todas las mascotas son los gatos. Alguien puede tener un perro o un lagarto mascota. Una expresión se compone de valores (como números enteros como 8 y 6) conectado por un operador (como el signo de la multiplicación *). Un solo valor por sí mismo también es considerado una expresión.
En el próximo capítulo, vamos a aprender a trabajar con texto en las expresiones. Python no se limita a solo números. Es más que una simple calculadora de lujo!
Evaluación de expresiones
Cuando una computadora resuelve la expresión 10 + 5 y se obtiene el valor 15, decimos que se ha evaluado la expresión. La evaluación de una expresión reduce la expresión a un único valor, al igual que la solución de un problema de matemáticas se reduce el problema a un solo número: la respuesta.
Las expresiones 10 + 5 y 10 + 3 + 2 tienen el mismo valor, ya que ambos se evalúan a 15. Incluso los valores individuales se consideran expresiones: La expresión 15 se evalúa a 15.
Sin embargo, si usted escribe 5 + en el intérprete de comandos interactivo, obtendrá un mensaje de error.
SyntaxError: invalid syntax
Este error ocurrió porque 5 + no es una expresión. Las expresiones tienen valores relacionados por los operadores, pero el operador + siempre espera para conectar dos cosas en Python. Sólo hemos dado una. Por ello, el mensaje de error apareció. Un error de sintaxis significa que el ordenador no entiende la instrucción que le diste porque la has escrito incorrectamente. Python siempre mostrará un mensaje de error si se introduce una instrucción que no puede entender.
Esto puede no parecer importante, pero mucha de la programación no es simplemente decirle a la computadora qué hacer, sino saber exactamente cómo decirle a la computadora para que lo haga.
Expresiones dentro de otras expresiones
Las expresiones también pueden contener otras expresiones. Por ejemplo, en la expresión 2 + 5 + 8, el 2 + 5 es parte de la propia expresión. Python evalúa 2 + 5 a 7, por lo que la expresión original se convierte en 7 + 8. Python luego evalúa esta expresión a 15.
Piense en una expresión como en una pila de panqueques. Si pone dos pilas de panqueques juntos, usted todavía tiene un montón de panqueques. Y una gran pila de panqueques puede estar compuesta de pequeñas pilas de panqueques que estaban juntos. Las expresiones pueden ser combinadas para formar expresiones más grandes de la misma manera. Pero no importa lo grande que sea una expresión ya que también se evalúa como una respuesta única, al igual que 2 + 5 + 8 evalúa a 15.
Almacenar valores en variables
Cuando programamos, a menudo se desea guardar los valores que nuestras expresiones evalúan para poder usarlos más tarde. Podemos almacenar valores en variables.
Piense en las variables como una caja que puede contener valores. Puede almacenar los valores dentro de las variables con el signo = (llamado operador de asignación). Por ejemplo, para almacenar el valor 15 en una variable llamada «spam», introduzca spam = 15 en la shell:
>>>
Figura 2-4: Las variables son como cajas que pueden contener valores en ellas.
Usted puede pensar la variable como una caja con el valor 15 en el interior de la misma (como se muestra en la Figura 2-4). El nombre de la variable «spam» es la etiqueta de la caja (por lo que se puede distinguir una variable de otra ) y el valor almacenado en ella es como una pequeña nota dentro de la caja.
Al pulsar Enter no podrá ver nada en respuesta, que no sea una línea en blanco. A menos que vea un mensaje de error, se puede suponer que la instrucción ha sido ejecutada con éxito. Lo siguiente >>> aparecerá en la pantalla de modo que usted pueda escribir la siguiente instrucción.
Esta instrucción (llamada sentencia de asignación) crea la variable spam y almacena el valor 15 en la misma. A diferencia de las expresiones, las sentencias son instrucciones que no se evalúan a ningún valor, por lo que no hay ningún valor que se muestra en la siguiente línea en el shell.
Puede resultar confuso saber que instrucciones son expresiones y cuales son sentencias. Sólo recuerde que si la instrucción se evalúa como un valor único, es una expresión. Si la instrucción no lo hace, entonces es una sentencia.
Una sentencia de asignación se escribe como una variable, seguida por el = signo igual, seguido por una expresión. El valor que la expresión evalúa se almacena dentro de la variable. El valor 15 por sí mismo es una expresión. Las expresiones compuestas por un único valor por sí mismo son fáciles de evaluar. Estas expresiones son evaluadas a su mismo valor. Por ejemplo, la expresión 15 se evalúa a 15!
Recuerde, las variables almacenan valores, y no expresiones. Por ejemplo, si tuviéramos la declaración, el spam = 10 + 5, entonces la expresión 10 + 5 primero se evaluará a 15 y luego el valor 15 se almacena en la variable, spam.
La primera vez que almacene un valor dentro de una variable mediante una sentencia de asignación, Python creará esa variable. Cada vez después de ésto, una sentencia de asignación sólo reemplazará el valor almacenado en la variable.
Ahora vamos a ver si hemos creado nuestra variable correctamente. Si escribimos spam solamente en el shell, veremos el valor que se almacena en el interior de la variable spam.
>>> spam
15
>>>
Ahora, spam evalúa al valor contenido en la variable, 15.
Y aquí hay un giro interesante. Si ahora entramos spam + 5 en el shell, se obtiene el entero 20, así.
>>> spam + 5
20
>>>
Esto puede parecer extraño, pero tiene sentido si recordamos que establecimos el valor del spam a 15. Debido a que hemos establecido el valor de la variable de spam a 15, la escritura spam + 5 es como escribir la expresión 15 + 5.
Si intenta utilizar una variable antes de que se ha creado, Python le dará un error, porque no existe tal variable todavía. Esto también sucede si escribe mal el nombre de la variable.
Podemos cambiar el valor almacenado en una variable ingresando otra instrucción de asignación. Por ejemplo, intente lo siguiente:
>>> spam + 5
20
>>> spam = 3
>>> spam + 5
8
>>>
La primera vez que entramos spam + 5, la expresión se evalúa a 20, ya que almacena el valor 15 en el interior de la variable spam. Pero cuando entramos spam = 3, el valor 15 se sustituye, o sobrescribe con el valor 3. Ahora, cuando entramos spam + 5, la expresión se evalúa a 8, porque el valor de spam es ahora 3.
Para averiguar cuál es el valor actual está dentro de una variable, simplemente introduzca el nombre de la variable en el shell.
Ahora aquí hay algo interesante. Debido a que una variable es sólo un nombre para un valor, se pueden escribir expresiones con variables como:
>>> spam + spam
30
>>> spam – spam
0
>>>
Cuando la variable spam tiene un valor entero de 15 almacenado en la misma, entrando spam + spam es lo mismo que entrar en 15 + 15, que evalúa a 30. , Y spam – spam es lo mismo que 15 – 15, que evalúa a 0. Las expresiones usan la variable spam dos veces. Usted puede utilizar las variables tantas veces como desee en las expresiones. Recuerda que Python evaluará un nombre de variable con el valor que se almacena dentro de esa variable, cada vez que se utiliza la variable.
Incluso podemos utilizar el valor de la variable spam para asignar a spam un nuevo valor:
>>> spam spam = + 5
20
>>>
La instrucción de asignación spam = spam + 5 es como decir, «el nuevo valor de la variable spam será el valor actual de spam, más cinco.» Recuerde que a la variable en el lado izquierdo del signo = se le asignará el valor resultado de la expresión en el lado derecho. También podemos seguir aumentando el valor de spam en 5 varias veces:
>>> spam spam = + 5
>>> spam spam = + 5
>>> spam spam = + 5
>>> spam
30
>>>
Utilizando más de una variable
Cuando programamos no siempre queremos estar limitados a una sola variable. A menudo tendrá que utilizar múltiples variables.
Por ejemplo, vamos a asignar valores distintos a dos variables llamadas eggs y fizz, así:
>>> eggs = 15
Ahora, la variable fizz tiene 10 en su interior, y eggs tiene 15 en su interior.
Figura 2-5: «fizz» y «eggs» tienen valores almacenados en ellas.
Sin cambiar el valor de nuestra variable spam, vamos a intentar asignar un nuevo valor a la variable spam. Introduzca spam = fizz + eggs en el shell a continuación introduzca spam en el shell para ver el nuevo valor del spam. ¿Puede adivinar que será?
>>> eggs = 15
>>> spam = fizz + eggs
>>> spam
25
>>>
El valor en spam es ahora de 25 porque cuando sumamos fizz y eggs estamos sumando los valores almacenados en el interior fizz y eggs.
Resumen
En este capítulo usted aprendió lo básico acerca de escribir instrucciones en Python. Python necesita que le diga exactamente qué hacer de una manera estricta, porque los ordenadores no tienen sentido común y sólo entienden las instrucciones muy sencillas. Hemos aprendido que Python puede evaluar expresiones (es decir, reducir la expresión de un valor único), y que las expresiones son valores (como 2 o 5) en combinación con los operadores (tales como + o -). También ha aprendido que puede almacenar los valores dentro de las variables a fin de utilizarlos más adelante.
En el próximo capítulo, vamos a repasar algunos conceptos más básicos, y, a continuación, estará listo para programar!
Ir al Capítulo 1 – Instalación de Python | Ir al Capítulo 3 – Cadenas |
Capítulo 1 Traducción http://inventwithpython.com/
Ir al Capítulo 2 – El intérprete interactivo Shell |

Temas tratados en este capítulo:
- Descarga e instalación del intérprete Python.
- Uso de IDLE para ejecutar instrucciones de manera interactiva.
- Cómo utilizar este libro.
- El sitio web del libro en http://inventwithpython.com
Hola! Este es un libro que te enseñará cómo programar mostrándote cómo crear juegos de computadora. Una vez que aprendas como funcionan los juegos de este libro, podrás crear tus propios juegos. Todo lo que necesitas es una computadora, un software llamado Intérprete de Python, y este libro. El software que necesitas es gratis y puedes descargarlo desde Internet.
Cuando yo era un niño, encontré un libro como éste, que me enseñó a escribir mis primeros programas y juegos. Fue muy divertido y fácil. Ahora, como un adulto, todavía me divierto programando computadoras, y me pagan por ello. Pero incluso si no te conviertes en un programador de computadoras cuando seas grande, la programación es una habilidad útil y divertida.
Las computadoras son máquinas muy útiles. La buena noticia es que aprender a programar una computadora es fácil. Si puedes leer este libro, puedes programar una computadora. Un programa de computación es sólo un montón de instrucciones corriendo en un equipo, al igual que un libro de cuentos es sólo un montón de frases leído por el lector. Estas instrucciones son como las guias paso a paso para caminar a la casa de un amigo. (Gire a la izquierda en el semáforo, caminar dos cuadras, seguir caminando hasta encontrar la primera casa azul casa azul a la derecha.) La computadora sigue cada instrucción que le das en el orden que se la des. Los videojuegos son nada más que programas de ordenador. (Y programas de ordenador muy divertidos!)
En este libro, cualquier palabra que necesites saber tendrá este aspecto. Por ejemplo, la palabra «programa» se define en el párrafo anterior.
Con el fin de decirle a una computadora lo que quisieras que haga, hay que escribir un programa en un idioma que la computadora lo entienda. El lenguaje de programación que este libro enseña se llama Python. Hay diferentes lenguajes de programación como Basic, Java, Python, Pascal, Haskell, y C + + (pronunciado «c mas mas»).
Cuando yo era un niño la mayoría de la gente aprendió a programar en BASIC, como su primer lenguaje. Sin embargo, nuevos lenguajes de programación se han inventado desde entonces, incluyendo Python. Python es aún más fácil de aprender que BASIC y es un lenguaje de programación serio utilizado por los programadores profesionales. Muchos adultos usan Python en su trabajo (y también cuando programan para divertirse).
Los primeros juegos que vamos a crear juntos en este libro podrían parecer simples en comparación con los juegos que has jugado en la Xbox, PlayStation o Wii. Ellos no tienen gráficos de lujo ni música, pero eso es porque están destinados a enseñar los fundamentos. Son deliberadamente sencillos para que puedas concentrarte en aprender a programar. Y recuerda, los juegos no tienen por qué ser complicados para ser divertidos. El Ahorcado, Tic Tac Toe, y hacer códigos secretos son sencillos de programar, pero también son divertidos.
También aprenderás cómo resolver algunos problemas de matemáticas en el shell de Python. (No te preocupes si no sabes mucho de matemáticas. Si sabes sumar y multiplicar, sabes lo suficiente para hacer programas. La programación trata más sobre la solución de problemas en general que de resolver problemas de matemáticas.)
Descarga e instalación de Python
Antes de que podamos empezar a programar tendrás que instalar el software Python, específicamente el intérprete de Python. (Es posible que necesites pedir ayuda a un adulto en este punto.) El intérprete es un programa que comprende las instrucciones que vas a escribir en el lenguaje Python. Sin el intérprete, tu equipo no entiende estas instrucciones y los programas no funcionarán. (Nos referiremos a él como Python a partir de ahora.)
Como vamos a estar escribiendo nuestros juegos en lenguaje Python, es necesario descargar Python en primer lugar, desde el sitio web oficial del lenguaje de programación Python, http://www.python.org
Te voy a dar instrucciones para la instalación de Python en Microsoft Windows, no porque ese es mi sistema operativo favorito, sino porque lo más probable es que sea el único sistema operativo que el equipo está ejecutando. Es posible que necesites la ayuda de otra persona para descargar e instalar el software de Python.
Al llegar a python.org, deberías ver una lista de enlaces a la izquierda (Acerca, Noticias, documentación, descargas, etc.) Haga clic en el siguiente enlace para ir a la página de descarga, a continuación, busque el archivo llamado Python 3.1 de Windows Installer (Windows binario – no incluye fuente) y haga clic en el enlace para descargar Python para Windows.
Figura 1-1: Haz clic en el enlace Windows installer para descargar Python para Windows de http://www.python.org
Haz doble clic en el archivo python-3.1.msi que hayas descargado para iniciar la instalación de Python. (Si no se inicia, intenta hacer clic derecho en el archivo y seleccionando Instalar.) Una vez que el instalador se inicia, haz clic en el botón Next y acepta las opciones del instalador que se esta ejecutando (no necesitas hacer ningún cambio). Cuando la instalación finalice, haga clic en Finish.
Nota Importante! Asegúrate de instalar Python 3, y no Python 2. Los programas en este libro utilizan Python 3, obtendrás errores si los intentas ejecutar con Python 2. (Aunque más tarde se instalará Python 2 para ejecutar los juegos gráficos Pygame que estan en los últimos cuatro capítulos de este libro.)
La instalación para Mac OS es similar. En lugar de descargar el archivo. Msi del sitio web de Python, descargar el archivo. dmg Mac Installer Disk Image en su lugar. El vínculo a este archivo será parecido a «Mac Installer disk image (3.1.1)» en la página web «Download Python Software» .
Si tu sistema operativo es Ubuntu, puedes instalar Python, abriendo una ventana de terminal (haga clic en Aplicaciones> Accesorios> Terminal) y entrar sudo apt-get install python3 luego presiona ENTER. Tendrá que introducir la contraseña de root para instalar Python, así que pregunte a la persona que posee el ordenador para escribir esta contraseña.
Puede haber una nueva versión disponible de Python mayor a 3.1. Si es así, sólo tiene que descargar la última versión. Los programas de juego en este libro trabajan con la misma. Si tienes algún problema, siempre puedes ir a Google para «instalar Python en <nombre de su sistema operativo>». Python es un lenguaje muy popular, por lo que no deberías tener dificultades para encontrar ayuda.
Iniciando Python
Si tu sistema operativo es Windows XP, debes ser capaz de ejecutar Python seleccionando Inicio> Programas> Python 3.x> IDLE (Python GUI). Cuando se ejecute verás algo como la Figura 1-2. (Sin embargo, en los diferentes sistemas operativos se verá ligeramente diferente.)
Fig. 1-2: El programa intérprete de comandos interactivo Idle en Windows.
IDLE por Interactive DeveLopment Environment (Ambiente de Desarrollo Interactivo) El entorno de desarrollo es el software que permite que sea fácil escribir programas en Python. Nosotros vamos a usar IDLE para escribir nuestros programas y ejecutarlos.
La ventana que aparece cuando se ejecuta por primera vez IDLE se llama el Shell (intérprete de comandos) interactivo. El Shell es un programa que te permite escribir las instrucciones en la computadora. El Shell de Python permite escribir instrucciones Python, y el Shell envía estas instrucciones al software llamado intérprete de Python para ejecutarlas. Podemos escribir instrucciones Python en el Shell y, como el Shell es interactivo, la computadora leerá las instrucciones y responderá de alguna manera. (Idealmente de la forma que esperamos, pero dependerá de si escribimos las instrucciones correctas.)
Cómo usar este Libro
Hay algunas cosas que debes entender acerca de este libro antes de empezar. «Inventar con Python» es diferente de otros libros de programación, ya que se centra en el código fuente completo de los diferentes juegos . En lugar de enseñarte los conceptos de programación y dejando que averigues cómo hacer juegos divertidos con estos conceptos, este libro te muestra juegos divertidos y, a continuación te explica cómo se combinan los conceptos.
Los programas destacados
La mayoría de los capítulos comienzan con una muestra de la ejecución del programa destacado. Esta muestra de ejecución presenta la salida del programa, con las respuestas del usuario en negrita. Esto te dará una idea de cómo se verá el juego completo cuando hayas introducido todo el código y lo hayas ejecutado.
Algunos capítulos también muestran el código fuente completo del juego, pero recuerda: no tienes que ingresar cada línea de código en ese momento. En su lugar, se puede primero leer el capítulo para entender cada línea de código y luego intentar ingresarlas más tarde.
También puedes descargar el archivo de código fuente desde el sitio web de este libro. Ve a la URL http://inventwithpython.com/source y sigue las instrucciones para descargar el archivo de código fuente.
Números de línea y espacios
Cuando ingreses el código fuente, no escribas los números de línea que aparece al principio de cada línea. Por ejemplo, si ves esto en el libro:
- número = random.randint (1, 20)
No necesitas escribir el «1.» en el lado izquierdo, o el espacio que le sigue. Sólo tenes que escribir de esta manera:
Esas cifras sólo se utilizan en este libro para poder hacer referencia a líneas específicas del código. Ellos no son parte del programa real.
Aparte de los números de línea, asegúrate de introducir el código exactamente como aparece. Tené en cuenta que algunas de las líneas no comienzan en el borde izquierdo de la página, tienen una sangría de cuatro u ocho espacios. Asegúrate de poner el número correcto de espacios al comienzo de cada línea. (Puesto que cada caracter en IDLE es del mismo ancho, puedes contar el número de espacios, contando el número de caracteres por encima o por debajo de la línea que usted está mirando.)
Por ejemplo, puedes ver que la segunda línea esta indentada con cuatro espacios por los cuatro caracteres («whil») en la línea de arriba son en el espacio con sangría. La tercera línea esta indentada con otros cuatro espacios (los cuatro caracteres, «if n» están por encima de espacio de sangría de la tercera línea):
if número == 42:
print ( ‘Hola’)
Ajuste del texto en este libro
Algunas líneas de código son demasiado largas para caber en una línea en la página, y el texto del código se ajusta a la línea siguiente. Cuando escribas estas líneas en el editor de archivo, introduce el código en una sola línea, sin presionar ENTER.
Puedes ver cuando una nueva línea comienza, con los números de línea en el lado izquierdo del código. Por ejemplo, el código de abajo sólo tiene dos líneas de código, aunque la primera línea se ajusta:
- print ( «Esta es la primera línea! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxx ‘) - print ( «Esta es la segunda línea! ‘)
Rastro del programa en linea
Puedes visitar http://inventwithpython.com/traces para ver un rastro de cada uno de los programas de este libro. El rastreo de un programa es un medio para recorrer el código línea por línea, de la misma manera que un equipo lo ejecutaría. La página web de rastreo muestra notas y recordatorios útiles de cada paso del rastro para explicar lo que esta haciendo el programa, por lo que puede ayudar a comprender mejor por qué estos programas funcionan de la manera que lo hacen.
Comprobación del código en línea
Algunos de los juegos en este libro son un poco largos. Aunque es muy útil para aprender Python, al escribir el código fuente para estos juegos, usted podría cometer errores tipográficos que causan que sus programas de juego se bloqueen. Puede no ser obvio encontrar el error.
Usted puede copiar y pegar el texto del código fuente a la herramienta en línea diff desde el sitio web del libro. Esta herramienta diff mostrará las diferencias entre el código fuente en el libro y el código fuente que has escrito. Esta es una forma fácil de encontrar errores en el texto de su programa.
La herramienta diff en línea esta en esta página web: http://inventwithpython.com/diff
Resumen
Este capítulo te ha ayudado a empezar con el software Python, mostrándote el sitio web de python.org desde donde se puede descargar de forma gratuita. Después de instalar e iniciar el software Python IDLE, estaremos preparados para aprender a programar que comienza en el próximo capítulo.
La página web de este libro http://inventwithpython.com tiene más información sobre cada uno de los capítulos, que incluye un sitio web de seguimiento que puede ayudarte a entender exactamente lo que hace cada línea de los programas.
Ir al Capítulo 2 – El intérprete interactivo Shell |
EDUTEKA – Programación para Todos
“La competencia digital” debe hacer referencia a diseñar, crear y remezclar; no simplemente a navegar, comunicar e interactuar.
¿POR QUÉ PROGRAMAR?
Se ha vuelto lugar común referirse a las personas jóvenes como “nativos digitales” debido a su aparente fluidez con las tecnologías digitales (TIC) [2]. En realidad muchos jóvenes se sienten muy cómodos enviando mensajes de texto, interactuando con juegos en línea y navegando la Web. ¿Pero los hace esto realmente competentes en TIC? Aunque interactúan con los medios digitales todo el tiempo, pocos son capaces de crear sus propios juegos, animaciones o simulaciones. Es como si pudieran “leer” pero no “escribir”. Desde nuestro punto de vista, la competencia digital requiere no solamente tener habilidad para chatear, navegar o interactuar sino también la habilidad de diseñar, crear e inventar con los nuevos medios [3], tal como lo evidencia “BalaBethany” con sus proyectos.Para hacer lo anterior usted necesita aprender algún tipo de programación. La habilidad para programar ofrece importantes beneficios. Por ejemplo, expande considerablemente el rango / posibilidades de lo que usted puede crear (y las posibilidades de auto expresión) con el computador. También expande el rango de lo que usted puede aprender. En particular, programar apoya el “pensamiento computacional”, que ayuda a las personas a aprender estrategias importantes de solución de problemas y de diseño (tales como, modularización y diseño iterativo) que conducen a dominios externos a la programación [4]; Además, como programar involucra el crear representaciones externas de procesos para solucionar problemas, la programación ofrece oportunidades para reflexionar sobre el propio pensamiento y aún para pensar en el proceso mismo de pensar [5].
EDUTEKA – Programación para Todos