Saludos a los que nos siguen en el curso de
Programación en el Lenguaje Python. En esta ocasión nos toca practicar todo lo aprendido en estas primeras 6 lecciones, así que les presentaré una serie de problemas y sus respectivas soluciones. Son problemas básicos ya que este curso está orientado a iniciantes en la programación.
Te recomiendo que primero intentes hacer los scripts de cada problema por tu propia cuenta sin consultar la solución. Ya al final, puedes revisar las soluciones que yo planteé. Recuerda que es mucho mejor que intentes por ti mismo en primer lugar pues talvéz tu solución sea mejor que la mia y eso sería excelente !!
Práctica 1 de Programación en Python: Repasando las primeras 6 lecciones
- Escriba un script que pida el ingreso de un número natural y calcule su factorial.
# -*- coding: utf-8 -*-
# Factorial de un número
# -----------------------------------------------
print 'Factorial de un Numero'
print '-----------------------\n'
numero = int(input('Ingrese un numero natural: '))
# Restringiendo la entrada a un numero positivo
while numero < 0:
print 'Lo siento, el numero es negativo, intente otra vez\n'
numero = int(input('Ingrese un numero natural: '))
# Importando el modulo sleep
from time import sleep
if numero == 0:
print 'El factorial es 1'
sleep(7)
elif numero > 0:
k = 1
i = 1
# Calculando el factorial
while k <= numero:
i *= k
k += 1
print 'El factorial es: ', i
sleep(7)
- Desarrolle un script que pida dos números y escriba la suma de enteros desde el primer número hasta el segundo sin incluir ambos.
# -*- coding: utf-8 -*-
# Pida dos numeros y escriba la suma de enteros
# desde el primer numero hasta el segundo
# ---------------------------------------------------------------
print 'Suma de enteros entre dos numeros'
print '--------------------------------------------------------\n'
nmen = float(input('Ingrese el numero menor (limite inferior): '))
nmay = float(input('Ingrese el numero mayor (limite superior): '))
# Evitando que el limite superior sea menor que el limite inferior
while nmay < nmen:
print'\nValor no aceptado !!!, el limite inferior es ', nmen
print'--------------------------------------------------------'
nmay = float(input('Ingrese un numero mayor que el limite inferior: '))
# Calculando limites inferior y superior
# Aplicando int() se hace truncado
linf = int(nmen)
if nmay == int(nmay):
lsup = int(nmay)
elif nmay > int(nmay):
lsup = int(nmay) + 1
# Calculando la sumatoria
suma = ((lsup*(lsup+1))/2) - (lsup+((linf*(linf+1))/2))
print'--------------------------------------------------------'
print'La suma de enteros entre ',nmen,' y ',nmay,' es: ',suma
from time import sleep
sleep(20)
- Elabore un programa que pregunte cuántos números vas a introducir, pida esos números y escriba cuántos negativos has ingresado.
# Sugerencia !!! Insertando elementos a una lista
# instrucción:
lista.insert(posicion, elemento)
# Ejemplo:
>>> lista = [1, 2, 4]
>>> lista
[1, 2, 4]
# insertamos el numero "15" en la posicion "1"
>>> lista.insert(1, 15)
>>> lista
[1, 15, 2, 4]
# -*- coding: utf-8 -*-
# Pregunte cuantos numeros vas a introducir, pida esos numeros
# y escriba cuantos negativos has ingresado.
# ------------------------------------------------------------
total = int(input('Cuantos numeros desea ingresar? Escriba la cantidad: '))
# Restringiendo la entrada a un numero entero positivo
while total <= 0:
print '---------------------------------------------------------'
print 'Advertencia!!!'
print '---------------------------------------------------------'
print 'La cantidad ingresada no es correcta, por favor...'
total = int(input('Indique un valor mayor a CERO: '))
print '\nIngreso de datos'
print '---------------------------------------------------------'
t,k = [],[]
ind = range(1, total+1)
# Pedimos la entrada de numeros
for x in ind:
num = input('Numero ' + str(x) + ', ingrese un valor: ')
# lista de elementos ingresados
t.insert(x, num)
if num < 0:
# lista de elementos negativos
k.insert(x, num)
print '---------------------------------------------------------'
print 'Los numeros ingresados fueron: ',t
print '---------------------------------------------------------'
# Dando el resultado
print 'Existen ' + str(len(k)) + ' numeros negativos, y son: ',k
from time import sleep
sleep(20)
- Escriba un script que solicite la altura y anchura de un rectángulo y lo dibuje de la siguiente manera:
Anchura = 5 Altura = 3 Dibujo: ***** ***** ***** |
# -*- coding: utf-8 -*-
# Este script dibuja un rectangulo usando el simbolo *
# ----------------------------------------------------
print 'Entrada de dimensiones'
print '----------------------\n'
ancho = int(input('Ingrese el ancho del rectangulo: '))
while ancho <= 0:
print '\ndebe ser un numero entero mayor que cero'
ancho = int(input('Ingrese denuevo el ancho del rectangulo: '))
print ''
altura = int(input('Ingrese la altura del rectangulo: '))
while altura <= 0:
print '\ndebe ser un numero entero mayor que cero'
altura = int(input('Ingrese denuevo la altura del rectangulo: '))
al = range(1, altura+1)
print '\nEl resultado es:\n '
# x recorre los valores de 'al'
for x in al:
# Multiplicamos el simbolo * tantas veces como 'ancho'
print ancho*'*'
from time import sleep
sleep(15)
- Escriba un script que solicite la altura de un triángulo y lo dibuje de la siguiente manera:
Altura del triángulo = 4
Dibujo: * ** *** **** |
# -*- coding: utf-8 -*-
# Este programa dibuja un triangulo con solo saber la altura
# ----------------------------------------------------------
altura = int(input('Ingrese un numero natural mayor que UNO: '))
# Restringiendo el valor de la altura
while altura < 2:
print '\nHubo un error !!!, por favor...'
altura = int(input('Ingrese un numero natural mayor que UNO: '))
print '\nEl resultado es:\n '
al = range(1, altura + 1)
# x recorre los valores de 'al'
for x in al:
# Multiplicamos el simbolo '*' tantas veces como el valor x
p = x * '*'
print p
from time import sleep
sleep(20)
- Escriba un script que solicite la altura de un triángulo y lo dibuje de la siguiente manera:
Altura del triángulo = 4
Dibujo: **** *** ** * |
# -*- coding: utf-8 -*-
# Este programa dibuja un triangulo invertido con solo ingresar la altura
# -----------------------------------------------------------------------
altura = int(input('Ingrese un numero natural mayor que UNO: '))
# Restringiendo el valor de la altura
while altura <= 1:
print '\nHubo un error!!! por favor...'
altura = int(input('Ingrese un numero natural mayor que UNO: '))
al = range(1, altura + 1)
print '\nEl resultado es:\n '
for x in al:
# multiplicamos una cantidad de veces el simbolo '*'
p = (altura + 1 - x)*'*'
print p
from time import sleep
sleep(20)
- Escriba un script que solicite la anchura de un triángulo y lo dibuje de la siguiente manera:
Anchura del triángulo = 4
Dibujo: * ** *** **** *** ** * |
# -*- coding: utf-8 -*-
# Este programa dibuja un triangulo solicitando el ancho del triangulo
# al usuario
# --------------------------------------------------------------------
ancho = int(input('Ingrese un numero natural mayor que UNO: '))
# Restringiendo el valor
while ancho <= 1:
print '\nEl numero ingresado no es correcto, por favor...'
ancho = int(input('Ingrese un numero natural mayor que UNO: '))
print '\nEl resultado es:\n '
an1 = range(1, ancho + 1) # an1=1,2,3,...,ancho
an2 = range(1, ancho) # an2=1,2,3,...,(ancho-1)
for x in an1:
p = x * '*'
print p
for k in an2:
t = (ancho - k) * '*'
print t
from time import sleep
sleep(20)
- Escriba un script que solicite un número y devuelva sus divisores
Dime un numero = 30 Los divisores de 30 son: 1 2 3 5 6 10 15 30 |
# Dato de ayuda:
# m % n es el residuo de la division m / n
# Ejemplos:
>>> 16 % 4
0
# cuando el residuo es cero, entonces hay un divisor
>>> 16 % 3
1
>>> 12 % 5
2
# -*- coding: utf-8 -*-
# Este script devuelve los divisores de un numero
# -----------------------------------------------
print 'Ingreso de datos: '
print '-------------------------------------------------------------\n'
num = int(input('Ingrese un numero: '))
while num < 0:
print '\nError !! Por favor, ingrese un numero mayor que CERO'
num = int(input('Ingrese un numero valido: '))
k = num / 2
k = int(k)
cad = ''
# El recorrido es hasta k = num / 2, pues no hay divisores mayores
# a la mitad del numero excepto el mismo numero.
for x in range(1, k + 1):
# num % x es el residuo de la division num / x
if num % x == 0:
# Si el residuo es cero, entonces es un divisor
cad = cad + str(x) + ' '
print '\nLos divisores de ' + str(num) + ' son:\n'
print cad + str(num)
from time import sleep
sleep(20)
Bueno, creo que con estos 8 ejercicios tendrán un entretenimiento de 1 a 1 hora y media. Como mencioné al inicio, hemos planteado problemas básicos matemáticos donde usamos toda la teoría mencionada en las primeras 6 lecciones del curso... con un poco de práctica podrán crear scripts mas elaborados que los planteados en esta lista de ejercicios.
Cualquier duda, sírvanse dejar un comentario para ayudarlos en los inconvenientes. En la siguiente entrada continuaremos con la parte teórica... nos vemos