Ejercicios: Tutorial Python desde cero
(Parte 1)
PythonDiario
29/04/2015 - Actualizado: 22/12/2020
Ejercicios del Tutorial Python
En esta entrada pretendo dejar algunos ejercicios que reforzarán los
conocimientos que hemos ido adquiriendo en el Tutorial python desde
cero.
En esta primera parte, los ejercicios serán bien sencillos (declarar
variables, imprimir en pantalla, etc), pero si te quedas con gusto a poco,
puedes ver todos los ejercicios que tenemos en el blog en la entrada
siguiente: Ejercicios Python
Puedes dejar las soluciones al final de la entrada para ayudar a otra
persona en caso de duda.
En caso de tener dudas o alguna sugerencia, también puedes dejar tu
comentario al final de la entrada. Ya sin más, arrancamos con los
ejercicios.
Puedes hacer los ejercicios en el shell de python o en el editor que
prefieras.
Ejercicio 1
Declarar 5 variables (nombre, apellido, edad, altura, peso) con tus datos
personales (o los que tu quieras). Luego, con la función print devuelve
todos los datos por pantalla con el siguiente formato:
>>> print "Texto: ", variable
Donde "Texto: " cambiará por el valor que queremos mostrar (en caso de
que sea nombre sería "Nombre: ") y la variable será la que corresponda.
Ejercicio 2
Declarar 4 variables (a = 2, b = 3, c = 5 y resultado = 0).
Las variables serán declaradas solo una ves.
Se piden hacer varias operaciones (yo haré la primera de ejemplo)
Asignar a la variable resultado las siguientes operaciones e imprimirlas
en pantalla:
--> a + b
--> c * a
--> (b + c) - a
--> c / a
--> c // b
--> a ** b
--> (a + b + c) * 2
--> c % b
Ejemplo:
Ejercicio de Operaciones Aritméticas
Ejercicio 3
Algo que no debemos de olvidar cuando estamos haciendo un programa
son los comentarios. Los comentarios son textos informativos que
ayudan a entender el código (ya sea para nosotros u otros
programadores que vean nuestro código). Los comentarios comienzan
con el símbolo # y todo lo que sea agregado después del símbolo no
será interpretado como código en nuestro programa.
>>> #Esto es un comentario
>>> a + b #Esto es una suma
Para escribir más de una linea de comentario se utilizan las comillas
triples """
>>> """ Esto
>>> tambien
>>> es
>>> un comentario """
Ahora vamos al ejercicio.
1 - Declarar 3 listas con 5 elementos cada una inventados por ustedes
(nombres, edades, frutas).
2 - Antes de cada declaración agregar un comentario Ej: #Lista de
Animales
3 - Imprimir en pantalla el primer elemento de cada lista
4 - Imprimir en pantalla el último elemento de cada lista
5 - Imprimir en pantalla una por una las 3 listas
Ejercicio 4
Declarar las siguientes listas:
par = [2, 4, 6, 8]
impar = [1, 3, 5, 7]
resultado = 0
En los próximos ejercicios debemos saber como acceder a las listas
(recordar que los índices comienzan en 0). Las operaciones deben
asignarse a la variable resultado para luego imprimirla en pantalla. Dejo
el ejemplo del primer ejercicio para que quede más claro.
1 - SUMAR (+) El primer elemento de la lista par + el último
elemento de la lista impar
2 - RESTAR (-) El segundo elemento de la lista par - el segundo
elemento de la lista impar
3 - MULTIPLICAR (*) El último elemento de la lista par * el tercer
elemento de la lista impar
4 - DIVIDIR (/) El último elemento de la lista par / el primer
elemento de la lista par
5 - SUMAR (+) El segundo elemento de la lista impar + el tercer
elemento de la lista par + el último elemento de la lista impar
Ejemplo del primer ejercicio:
Hasta acá la primera tanda de ejercicios del tutorial. Si vienes de cero y
pudiste hacer los ejercicios verás que la cosa se pone muy interesante
jeje
Nos vemos en la próxima 😉😉
Diego
dejo mi ejercicio numero 2 para que lo revisen
>>> a = 2
>>> b = 3
>>> c = 5
>>> resultado = 0
>>> resultado = a + b
>>> print "a + b =",resultado
a+b=5
>>> resultado = c * a
>>> print "c * a =",resultado
c * a = 10
>>> resultado = (b + c)-a
>>> print "(b + c)-a =",resultado
(b + c)-a = 6
>>> resultado = c/a
>>> print "c/a =",resultado
c/a = 2
>>> resultado = c//b
>>> print "c//b =",resultado
c//b = 1
>>> resultado = a**b
>>> print " a**b =",resultado
a**b = 8
>>> resultado = (a+b+c)*2
>>> print "(a+b+c)*2 =",resultado
(a+b+c)*2 = 20
>>> resultado = c%b
>>> print "c%b =",resultado
c%b = 2
Listas vs Tuplas en Python
PythonDiario
27/08/2016 - Actualizado: 22/12/2020
Listas vs Tuplas en Python
Una pregunta que nos surge cuando somos principiantes es: ¿Cual es
la diferencia entre una lista y una tupla?
La respuesta es que hay 2 diferencias, existe la diferencia técnica y la
diferencia cultural.
Este artículo no es de mi autoría, es una traducción al español, cito el
enlace al final de la entrada.
En primer lugar, algo que es igual, tanto para las listas como para
las tuplas, es que ambas son contenedoras de una secuencia de
objetos:
>>> my_list = [1, 2, 3]
>>> type(my_list)
<class 'list'>
>>> my_tuple = (1, 2, 3)
>>> type(my_tuple)
<class 'tuple'>
Ambos pueden tener elementos de cualquier tipo, incluso dentro de
una sola secuencia. Ambos mantienen el orden de los elementos.
Ahora pasemos a ver las diferencias. La diferencia técnica entre
las listas y tuplas es que las listas son mutables (pueden ser
cambiadas) y las tuplas son inmutables (no se pueden cambiar). Esta es
la única distinción que hace el lenguaje Python sobre ellas:
>>> my_list[1] = "two"
>>> my_list
[1, 'two', 3]
>>> my_tuple[1] = "two"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
Esa es la única diferencia técnica entre las listas y tuplas, aunque se
manifiesta de varias maneras. Por ejemplo, las listas tienen un método
.append() para añadir más elementos a la lista, mientras que las tuplas
no lo hacen:
>>> my_list.append("four")
>>> my_list
[1, 'two', 3, 'four']
>>> my_tuple.append("four")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'append'
Las tuplas no tienen necesidad del método .append() porque no se
pueden modificar.
La diferencia cultural trata de como se utilizan realmente las listas y
las tuplas: las listas se utilizan cuando se tiene una secuencia
homogénea de longitud desconocida, las tuplas se utilizan cuando se
conoce el número de elementos de antemano debido a que la posición
del elemento es semánticamente significativa.
Por ejemplo, supongamos tenemos una función que dentro de un
directorio nos devuelve todos los archivos .py (*.py). Esto se debería
devolver en una lista, porque no sabemos cuantos archivos podemos
encontrar.
>>> find_files("*.py")
["control.py", "config.py", "cmdline.py", "backward.py"]
Por otra parte, supongamos que necesitamos almacenar 5 valores para
representar la ubicación de las estaciones de observación
meteorológicas: id, city, state, latitude y longitude. Una tupla es lo más
adecuado para esto en lugar de una lista:
>>> denver = (44, "Denver", "CO", 40, 105)
>>> denver[1]
'Denver'
A continuación, el primer elemento es el id, el segundo es la ciudad y así
sucesivamente.
Python tiene una facilidad llamada namedtuple que puede hacer el
significado más explicito:
>>> from collections import namedtuple
>>> Station = namedtuple("Station", "id, city, state, lat, long")
>>> denver = Station(44, "Denver", "CO", 40, 105)
>>> denver
Station(id=44, city='Denver', state='CO', lat=40, long=105)
>>> denver.city
'Denver'
>>> denver[1]
'Denver'
La diferencia técnica y la diferencia cultural tienen una alianza incomoda,
ya que están aveces en desacuerdo. ¿Porque deberían ser homogéneas
las secuencias mutables, pero las secuencias heterogéneas no serlo?
Por ejemplo, no puedo modificar mi estación meteorológica porque
un namedtuple es una tupla, que es inmutable:
>>> denver.lat = 39.7392
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: can't set attribute
Y aveces las consideraciones técnicas tienen prioridad sobre las
consideraciones culturales. No se puede utilizar una lista como clave
de diccionario, porque solamente los valores inmutables pueden ser
mezclados, osea, solo los valores inmutables pueden ser claves. Para
utilizar una lista como clave, se puede convertir a tupla:
>>> d = {}
>>> nums = [1, 2, 3]
>>> d[nums] = "hello"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
>>> d[tuple(nums)] = "hello"
>>> d
{(1, 2, 3): 'hello'}
Otro conflicto entre lo técnico y lo cultural: hay momentos en que el
mismo Python utiliza una tupla cuando una lista tiene más sentido.
Cuando se define una función con *args, nos lo pasa como una tupla, a
pesar de que la posición de los valores no es significativa. Se puede
decir que es una tupla porque no se puede cambiar lo que fue pasado,
pero esto es solo una valoración de la diferencia técnica sobre la cultural.
Lo se, lo se, en *args, la posición podría ser significativa debido a que
son parámetros posicionales. Sin embargo, en una función que ha de
aceptar *args y pasarlos a otra función, que es solo una sentencia de
argumentos, ninguno diferente de otro, el numero de ellos puede variar
entre invocaciones.
Python utiliza tuplas aquí porque son un poco más espacio-
eficientes que las listas. Esto muestra el lado pragmático de Python: en
lugar de discutir por la semántica lista/tupla de *args, solo se tiene que
utilizar la estructura de datos que funcione mejor para el caso.
En la mayoría de los casos, debemos elegir entre utilizar una lista o
una tupla en base a la diferencia cultural. Debemos pensar en nuestros
datos. Si podríamos llegar a tener diferentes longitudes, entonces es
probable que utilicemos una lista. Si cuando escribimos el código
sabemos de antemano la cantidad de elementos, entonces es probable
que utilicemos una tupla.
Por otro lado, la programación funcional hace hincapié en las
estructuras de datos inmutables como una manera de evitar los efectos
secundarios que puedan hacer difícil interpretar el código. Si somos fans
de la programación funcional, es probable que prefieramos tuplas por su
inmutabilidad.
Entonces: ¿Tuplas o listas? No es siempre una respuesta sencilla.
Ejercicios Propuestos Y Resueltos
Básicos En Python
10/10/201632 COMENTARIOS
Hola a todos, hoy os dejos una serie de ejercicios básicos que podéis utilizar para practicar todo
lo aprendido.
Todos los ejercicios que proponemos están resueltos en este mismo post, intenta hacerlo por ti
mismo y si te quedas atascado puedes mirar la solución. Recuerda, que no tiene por que estar
igual tu solución con la del post, el objetivo es que aprendas no que me copies la solución.
Aquí tienes todos los posts relacionados con python:
Si tienes alguna duda, recuerda que puedes consultarnos escribiendo un comentario en este post
o enviándonos un e-mail a administrador@discoduroderoer.es
1) Imprimir «Hola mundo» por pantalla.
2) Crear dos variables numéricas, sumarlas y mostrar el resultado
n3
+ variable2
de ",variable1,"+",variable2,"=",suma)
3) Mostrar el precio del IVA de un producto con un valor de 100 y su precio final.
hon3
= 100
cioProducto * IVA
o del IVA es", precioIVA, "€")
o final es", (precioIVA+precioProducto) ,"€")
4) De dos números, saber cual es el mayor.
n3
menor que B")
menor que A")
5) Crea una variable numérica y si esta entre 0 y 10, mostrar un mensaje indicándolo.
n3
):
entre 1 y 10")
ta en ese rango")
6) Añadir al anterior ejercicio, que si esta entre 11 y 20, muestre otro mensaje diferente y si esta
entre 21 y 30 otro mensaje.
hon
0):
a entre 1 y 10")
<=20):
a entre 11 y 20")
<=30):
a entre 21 y 30")
esta en ese rango")
7) Mostrar con un while los números del 1 al 100.
n3
bucle")
8) Mostrar con un for los números del 1 al 100.
9) Mostrar los caracteres de la cadena «Hola mundo».
n3
ndo":
10) Mostrar los números pares entre 1 al 100.
hon3
,101):
=0 ):
,101,2):
11) Generar un rango entre 0 y 10
n3
nge(10) )
12) Generar un número entre 5 y 10
n3
ge(5,10))
13) Generar un rango de 10 a 0.
n3
ge(10,0,-1))
14) Generar un rango de 0 a 10 y de 15 a 20, incluidos el 10 y 20
n3
nge(0,11))
nge(15,21))
rango2
15) Generar un rango desde 0 hasta la longitud de la cadena “Hola mundo”
n3
nge(0, len("Hola mundo")))
16) Pide dos cadenas por teclado, muestra ambas cadenas con un espacio entre ellas y con los 2
primeros caracteres intercambiados. Por ejemplo, hola mundo pasaría a mula hondo
n3
"Dame la primera cadena: ")
"Dame la segunda cadena: ")
2] + cadena1[2:] + " " + cadena1[:2] + cadena2[2:] )
17) Pide una cadena e indica si es un palíndromo o no.
hon3
("Dame una cadena: ")
= cadena1[::-1]
_reves)
cadena_al_reves ):
palindromo")
es palindromo")
18) Juguemos al juego de adivinar el numero, generaremos un número entre 1 y 100.
Nuestro objetivo es adivinar el número. Si fallamos nos dirán si es mayor o menor que el
número buscado. También poner el número de intentos requeridos.
hon3
ort *
oAleatorio(minimo,maximo):
mo > maximo:
x = minimo
nimo = maximo
ximo = aux
randint(minimo, maximo)
Error:
Debes escribir numeros")
-1
= generaNumeroAleatorio(1,100)
lse
rado:
ario = int(input("Introduce el número buscado: "))
suario > numero_buscado:
El número que buscas es menor")
os = intentos +1
_usuario < numero_buscado:
El numero que buscas es mayor")
os = intentos +1
rado = True
Has acertado el número correcto es " , numero_usuario, " te ha llevado ", intentos," intentos")
Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.
COMPARTIR
•
•
•
Articulos Relacionados
Ejercicios Propuestos Y Resueltos Tienda Oracle
17/04/2023
Ejercicios Propuestos Y Resueltos De Shellscript
06/12/2021
10 Comentarios
1. Miguel14/04/2017
Buen curso
2. Katya20/06/2017
Buenos ejercicios para comprender :D
3. Jesús11/11/2017
Gracias por estos ejercicios. Para los que estamos comenzando nos viene muy bien.
Un saludo.
4. David10/01/2018
Os dejo otra solución del último ejercicio, con intentos limitados y elección de dificultad (facil-
20 intentos, medio-10 intentos, dificil-5 intentos), cada turno te va diciendo los turnos que
quedan:
sol = random.randint(1,100)
dif = int(input(«Introduce dificultad (1-Fácil, 2-Medio, 3-Difícil):»))
if dif == 1:
intentos = 20
elif dif == 2:
intentos = 10
else: intentos = 5
entrada = -1
while (entrada != sol and intentos > 0):
intentos -= 1
entrada = int(input («Introduce número:»))
if entrada>sol:
print(«Es menor»)
print(«Te quedan %i intentos»%(intentos))
elif entrada<sol:
print("Es mayor")
print("Te quedan %i intentos"%(intentos))
else: print("Enhorabuena! Lo has conseguido")
if entrada != sol and intentos == 0:
print("Vaya, te has quedado sin intentos! Otra vez será")
Ejercicios Propuestos Y Resueltos Básicos En Python10/10/201632 Comentarios
Hola a todos, hoy os dejos una serie de ejercicios básicos que podéis utilizar para practicar todo lo
aprendido.
Todos los ejercicios que proponemos están resueltos en este mismo post, intenta hacerlo por ti
mismo y si te quedas atascado puedes mirar la solución. Recuerda, que no tiene por que estar
igual tu solución con la del post, el objetivo es que aprendas no que me copies la solución.
Aquí tienes todos los posts relacionados con python:
Si tienes alguna duda, recuerda que puedes consultarnos escribiendo un comentario en este post
o enviándonos un e-mail a administrador@discoduroderoer.es
1) Imprimir «Hola mundo» por pantalla.
Spoiler Inside SelectHide
2
3
#!/usr/bin/python3
print("Hola mundo")
2) Crear dos variables numéricas, sumarlas y mostrar el resultado
Spoiler Inside SelectHide
#!/usr/bin/python3
variable1 = 5
variable2 = 6
suma = variable1 + variable2
print("La suma de ",variable1,"+",variable2,"=",suma)
3) Mostrar el precio del IVA de un producto con un valor de 100 y su precio final.
Spoiler Inside SelectHide
2
3
10
11
#!/usr/bin/python3
IVA = 0.21
precioProducto = 100
precioIVA = precioProducto * IVA
print("El precio del IVA es", precioIVA, "€")
print("El precio final es", (precioIVA+precioProducto) ,"€")
4) De dos números, saber cual es el mayor.
Spoiler Inside SelectHide
6
7
#!/usr/bin/python3
a=7
b=5
if( a<b ):
print("A es menor que B")
else:
print("B es menor que A")
5) Crea una variable numérica y si esta entre 0 y 10, mostrar un mensaje indicándolo.
Spoiler Inside SelectHide
#!/usr/bin/python3
a=5
if(a>=1 and a<=10):
print("Esta entre 1 y 10")
else:
print("No esta en ese rango")
6) Añadir al anterior ejercicio, que si esta entre 11 y 20, muestre otro mensaje diferente y si esta
entre 21 y 30 otro mensaje.
Spoiler Inside SelectHide
10
11
12
#!/usr/bin/python
a = 35
if(a>=1 and a<=10):
print("Esta entre 1 y 10")
elif(a>=11 and a<=20):
print("Esta entre 11 y 20")
elif(a>=21 and a<=30):
print("Esta entre 21 y 30")
else:
print("No esta en ese rango")
7) Mostrar con un while los números del 1 al 100.
Spoiler Inside SelectHide
#!/usr/bin/python3
i=1
while( i<=100 ):
print(i)
i+=1
print("Fin del bucle")
8) Mostrar con un for los números del 1 al 100.
Spoiler Inside SelectHide
3
4
#!/usr/bin/python3
for i in range(1,101):
print(i)
9) Mostrar los caracteres de la cadena «Hola mundo».
Spoiler Inside SelectHide
#!/usr/bin/python3
for i in "Hola mundo":
print(i)
10) Mostrar los números pares entre 1 al 100.
Spoiler Inside SelectHide
6
7
10
11
12
13
14
#!/usr/bin/python3
#1º forma
print("1 forma")
for i in range(1,101):
if( (i%2)==0 ):
print(i)
print("")
#2º forma
print("2 forma")
for i in range(2,101,2):
print(i)
11) Generar un rango entre 0 y 10
Spoiler Inside SelectHide
3
4
#!/usr/bin/python3
rango = list( range(10) )
print(rango)
12) Generar un número entre 5 y 10
Spoiler Inside SelectHide
#!/usr/bin/python3
rango = list(range(5,10))
print(rango)
13) Generar un rango de 10 a 0.
Spoiler Inside SelectHide
2
3
#!/usr/bin/python3
rango = list(range(10,0,-1))
print(rango)
14) Generar un rango de 0 a 10 y de 15 a 20, incluidos el 10 y 20
Spoiler Inside SelectHide
#!/usr/bin/python3
rango1 = list(range(0,11))
rango2 = list(range(15,21))
final = rango1 + rango2
print(final)
15) Generar un rango desde 0 hasta la longitud de la cadena “Hola mundo”
Spoiler Inside SelectHide
#!/usr/bin/python3
rango = list( range(0, len("Hola mundo")))
print(rango)
16) Pide dos cadenas por teclado, muestra ambas cadenas con un espacio entre ellas y con los 2
primeros caracteres intercambiados. Por ejemplo, hola mundo pasaría a mula hondo
Spoiler Inside SelectHide
#!/usr/bin/python3
cadena1 = input("Dame la primera cadena: ")
cadena2 = input("Dame la segunda cadena: ")
print( cadena2[:2] + cadena1[2:] + " " + cadena1[:2] + cadena2[2:] )
17) Pide una cadena e indica si es un palíndromo o no.
Spoiler Inside SelectHide
10
11
12
#!/usr/bin/python3
cadena1 = input("Dame una cadena: ")
cadena_al_reves = cadena1[::-1]
print(cadena_al_reves)
if( cadena1 == cadena_al_reves ):
print("Es palindromo")
else:
print("No es palindromo")
18) Juguemos al juego de adivinar el numero, generaremos un número entre 1 y 100.
Nuestro objetivo es adivinar el número. Si fallamos nos dirán si es mayor o menor que el número
buscado. También poner el número de intentos requeridos.
Spoiler Inside SelectHide
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/python3
from random import *
def generaNumeroAleatorio(minimo,maximo):
try:
if minimo > maximo:
aux = minimo
minimo = maximo
maximo = aux
return randint(minimo, maximo)
except TypeError:
print("Debes escribir numeros")
return -1
numero_buscado = generaNumeroAleatorio(1,100)
encontrado = False
intentos = 0
while not encontrado:
numero_usuario = int(input("Introduce el número buscado: "))
if numero_usuario > numero_buscado:
print("El número que buscas es menor")
intentos = intentos +1
elif numero_usuario < numero_buscado:
print("El numero que buscas es mayor")
intentos = intentos +1
else:
encontrado = True
print("Has acertado el número correcto es " , numero_usuario, " te ha llevado ", intentos,"
intentos")
Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.