Archivos de la categoría Windows

Soluciones a los ejercicios de funciones y módulos de Python

La semana pasada os dejaba dos ejercicios como parte del artículo de funciones y módulos de Python. Se trataba de hacer una calculadora de la siguiente forma: Programa una calculadora que funcione por línea de comandos para las operaciones de suma, resta, multiplicación y división, y para un máximo de 2 números enteros (sumar, restar, multiplicar y dividir dos números enteros). Debe reconocer los símbolos usuales de estas operaciones: “+”, “-“, “*” y “/”. Debes usar funciones, una para cada operación. Captura de pantalla 2015-07-11 19.23.00 Ten en cuenta, eso sí, dos cosas que no tienes por qué saber aún:

  • Los valores numéricos llegarán a tu programa a través de la línea de comandos como cadenas, siempre. Es decir, cuando pases como parámetro un 2, tu programa Python entenderá “2” y no 2. Para que tus operaciones aritméticas funcionen bien, fuerza una conversión a números con la función int(), a la que le pasarás como parámetro cada argumento que quieras que se interprete como un número entero.
  • Ésta ya la habrás podido notar en la imagen superior 🙂 En Linux y en Mac OS X, el asterisco “*” es un caracter especial para el Terminal y lo interpretará antes de pasárselo a tu programa Python. Para que llegue un asterisco a tu programa, cuando lo pruebes tendrás que escapar el asterisco usando una barra invertida, : ./calculadora.py 2 * 3. Esto no ocurrirá en Windows.

Posteriormente, había un segundo ejercicio que trataba de mejorar la calculadora anterior para que usase un módulo. Vamos con las soluciones Sigue leyendo Soluciones a los ejercicios de funciones y módulos de Python

Funciones y módulos en Python

Este artículo es el último de la primera serie de Python que quiero hacer en PItando, y cierra el círculo de las técnicas más básicas necesarias para empezar ya a ponernos a hacer experimentos. En este artículo explicaré cómo se programan funciones en Python, y cómo agrupando funciones en archivos especiales conseguimos librerías propias que poder incluir en cualquiera de nuestros programas. Por último os propondré como ejercicio una calculadora sencilla que acepte sus parámetros por la línea de comandos.

¿Apetece? Pues al lío

Sigue leyendo Funciones y módulos en Python

Solución al ejercicio de programas ejecutables y línea de comandos

La semana pasada planteaba un problema partiendo del siguiente programa:

#!/usr/bin/python3
import sys

# usuario = "lector de PItando"
usuario = sys.argv[1]
print("Hola, ", usuario)

exit(0)

El ejercicio decía así:

Modifica el programa para que funcione de la siguiente forma:

  1. Si su primer argumento es “?” imprima un mensaje para ayudarnos a usarlo, en el que salga el nombre del programa ejecutable (para lo que tendrás que usar la variable sys.argv).
  2. Si no se especifica ningún argumento, debe saludar al lector (“Hola, lector“).Para detectar la longitud de una lista, usa la función len(lista).
  3. También haz que junte todos los argumentos en el mensaje de saludo. Para eso, ten en cuenta que en Python podemos juntar varias cadenas en una sola “sumándolas”:
cadena = "Hola" + ", Mundo"
# Cadena tendrá como valor "Hola, Mundo"

Vamos con la solución.

Sigue leyendo Solución al ejercicio de programas ejecutables y línea de comandos

Soluciones a los ejercicios de bucles y condiciones

La semana pasada teníamos 2 ejercicios que resolver. Aquí van las soluciones.

1) Escribe un programa en IDLE que escriba aquellos números entre 1 y 100 que:

  • Sean pares
  • No sean múltiplos de 4
  • Tampoco sean múltiplos de 3.

Escríbelo dos veces: una con un bucle while y otra usando un bucle for.

Voy a empezar explicando la condición que indica si un número se debe escribir, o no. Si la leemos en castellano, deberíamos decir:

Si el resto de dividir el número entre 2 es 0, pero no se cumple que el resto de dividir el número entre 3 sea 0, ni entre 4, imprimirlo.

Dicho en “términos lógicos” usando los operadores de la semana pasada, diríamos que la condición a evaluar es:

numero % 2 == 0 and numero % 3 != 0 and numero % 4 != 0

También podemos escribirla de una forma alternativa si pensamos que debemos imprimirlo si no se cumple que numero % 3 == 0 ó numero % 4 == 0:

numero % 2 == 0 and not (numero % 3 == 0 or numero % 4 ==0)

Usa la que veas más clara; a medida que practiques cogerás soltura con estas alternativas y esta forma de escribir las condiciones lógica. Yo usaré la segunda.

Bucle while (es posible que te tengas que desplazar a la derecha para verlo todo):

numero = 1
while numero < 100:
    if numero % 2 == 0 and not (numero % 3 == 0 or numero % 4 == 0):
        print(numero)
    numero = numero + 1

Bucle for (es posible que te tengas que desplazar a la derecha para verlo todo):

del1al100 = range (1, 101)
for numero in del1al100:
    if numero % 2 == 0 and not (numero % 3 == 0 or numero % 4 == 0):
        print(numero)

En ambos casos la respuesta debe ser la siguiente:

Captura 20150628 - 5

2) Usando for, haz que Python escriba todas las tablas de multiplicar, del 1 al 10:

La solución a este problema consiste en anidar bucles: hacer un bucle dentro de otro. Así (es posible que te tengas que desplazar a la derecha para verlo todo):

for multiplicador in range (1, 11):
    print("Tabla de multiplicar del", multiplicador)
    for multiplicando in range (1, 11):
        print(multiplicando, "*", multiplicador, "=", multiplicando*multiplicador)
    print("==========================")
    print() # línea en blanco.

En este caso he incluido tres de sentencias para formatear un poco el resultado y que quede más legible, y he usado directamente la llamada a range(...) en las condiciones de los bucles.

También habría podido usar un caracter especial,\n, al final del print("=========================="), así: print("==========================\n"). Ese caracter hace que se imprima una línea en blanco, haciendo innecesaria la sentencia print(). Cualquiera de las dos opciones acabaría dejando la salida así (no la reproduzco toda):

Captura de pantalla 2015-07-05 17.14.04

Y esto es todo. Si hay algo que no entiendas, no dudes en dejar un comentario o contactar a través del formulario exponiendo cualquier duda.

Escribir programas ejecutables en Python. La línea de comandos.

Hasta ahora hemos hecho todos nuestros experimentos usando directamente IDLE, el entorno de programación propio de Python. Hemos visto una serie de conceptos básicos para comenzar a entender el lenguaje, y ya estaríamos en condición de escribir nuestros propios programas, es decir: más allá de probar sentencias en IDLE, escribir los programas en un fichero para ejecutarlos directamente desde el sistema operativo.

En esta entrada vamos a ver dos cosas: cómo se escribe un programa en Python de una forma que luego sea posible usarla, y por otro lado, una de las muchas formas en las que nuestros programas pueden recibir datos con los que trabajar y con la que realmente ya estamos familiarizados gracias al artículo sobre el terminal: la línea de comandos. De paso, entraremos en contacto con la inclusión de funcionalidad ya existente en nuestros programas: las librerías y cómo incluirlas.

Sigue leyendo Escribir programas ejecutables en Python. La línea de comandos.