Ejercicios de Python para Principiantes
Ejercicios de Python para Principiantes
InformáticaCientífica
2008 – 2009
versión2.1
Python
Ejercicios corregidos
Enunciados
Enunciados de los ejercicios
Nota
Los siguientes ejercicios se proporcionan como ejemplos y modelos.
Son simples o menos simples (notados en el margen) sean difíciles (anotados
).
Los guiones del curso
Curso no1 : « Primeros pasos en Python »
1. Asigne las variables
Calcule y muestre el valor de la velocidad.
Mejore la visualización obligando a un número después del punto decimal.
y
por los valores 6.892 y 19.7.
2. Ingresar un nombre y una edad utilizando la instrucción
Refaça a entrada do nome, mas com a instrução
. Les afficher.
El cartel.
Por último, utilice la « buena práctica »: vuelva a realizar el ejercicio transcribiendo las entradas.
efectuadas con la instrucción
Curso no2 : « Control del flujo de instrucciones »
1. Introduzca un número decimal. Si es positivo o cero, muestre su raíz, de lo contrario muestre un mensaje.
de error.
2. El orden lexicográfico es el del diccionario.
Ingrese dos palabras, compárelas para encontrar la « más pequeña » y muestre el resultado.
Refacer el ejercicio utilizando la instrucción ternaria:
3. Se desea asegurar un recinto presurizado.
Se establece una presión umbral y un volumen umbral:
,
.
Se solicita ingresar la presión y el volumen actual del recinto y escribir un script.
que simula el comportamiento siguiente:
– si el volumen y la presión son superiores a los umbrales: parada inmediata;
– si solo la presión es superior a la presión umbral: solicitar aumentar el vo-
luz de la caja acústica;
– si solo el volumen es superior al volumen umbral: solicitar que se disminuya el volumen
de la enceinte ;
– sino declarar que « todo va bien ».
Este comportamiento será implementado por una alternativa múltiple.
BC v2.1
-1-
2008 - 2009
Enunciados
4. Inicializa dos enteros:
et
.
Escribir un bucle que muestre e incremente el valor mientras sea inferior
a la de .
Escribir otro bucle que decremente el valor de y muestre su valor si es
impaire. Boucler tant que b n’est pas nul.
5. Escribir una entrada filtrada de un entero en el intervalo de 1 a 10, límites incluidos. Mostrar
la captura.
6. Muestra cada carácter de una cadena utilizando un bucle
Muestre cada elemento de una lista utilizando un bucle
.
.
7. Imprima los enteros del 0 al 15 sin incluirlo, de tres en tres, utilizando un bucle
y la instrucción
.
8. Utiliza la instrucción
para interrumpir un bucle
de visualización de enteros
d’affichage de tous en-
de 1 a 10 incluidos, cuando la variable de bucle vale 5.
9. Utiliza la instrucción para modificar un bucle
números del 1 al 10 incluidos, excepto cuando la variable del bucle vale 5.
10. Utiliza una excepción para calcular, en un bucle que evoluciona de -3 a 3 inclusive, la
valor de sin(x)/x.
11. La cláusula
y los carteles con unos
Inicializa una lista con 5 enteros de tu elección y luego ingresa un entero.
des bucles. En este ejercicio, realiza las entradas con unos
, ambos pertenecen al módulo
.
En un bucle for, recorre la lista. Si el entero ingresado pertenece a la lista, guárdalo.
y detiene el bucle (ya que lo has encontrado). Si el bucle ha terminado correctamente,
utiliza una cláusula
para mostrar un mensaje anunciándolo.
Ahora introduzca otro número entero, esta vez positivo.
Escribe un bucle
para determinar si este número entero es primo. Si no lo es,
el bucle deberá mostrar el primer divisor encontrado y interrumpirse. Si es primo,
el mostrarlo en una cláusula
.
Curso no3 : « Las funciones »
1. Escribir un procedimiento
con cuatro parámetros:
,
,
y
.
.
Este procedimiento debe mostrar la tabla de
, de
à
, de
en
Probar el procedimiento mediante una llamada en el programa principal.
2. Escribir una función
2008 - 2009
que devuelve el cubo de su argumento.
-2-
BC v2.1
Enunciados
Escribir una función
quien calcula el volumen de una esfera de radio proporcionado
en argumento y que utiliza la función
.
Probar la función
por una llamada en el programa principal.
3. Escribir una función
Escribir un procedimiento
qui retournef(x)= 2x3+ x−5.
con cuatro parámetros :
,
,
et
. Este procedimiento muestra los valores de
, de
à
,
todos los
. Ella debe respetar< borneSup.
Probar este procedimiento mediante una llamada en el programa principal después de haber ingresado los
dos hitos en una
módulo ).
y el número de pasos en una
utilisez le
4. Escribir una función
que devuelve el volumen y la masa de un el-
lipsoide gracias a una tupla. Los parámetros son los tres semiejes y la masa volu-
mique. Se dará a estos cuatro parámetros valores por defecto.
4
Se da :v= 3πabc
Probar esta función con llamadas que tengan diferentes cantidades de argumentos.
5. Escribir una función
con un argumento "tupla de longitud variable" que calcula
la suma de los números contenidos en la tupla.
Probar esta función con llamadas usando diferentes tuplas de enteros o de flotantes.
6. Escribir otra función
con tres argumentos, y que devuelve su suma.
En el programa principal, define una tupla de tres números, luego utiliza la sin-
impuesto de llamada a la función que descomprime la tupla. Muestra el resultado.
7. Escribir una función
con un argumento « diccionario de longitud va-
variable», y que muestra su argumento.
En el programa principal, define un diccionario, luego usa la sintaxis de llamada.
a la función que descomprime el diccionario. Muestra el resultado.
Curso no4 : « Estructuras de datos en Python »
1. definir la lista :
, luego realice las siguientes acciones:
– ordena y muestra la lista;
– añade el elemento 12 a la lista y muestra la lista;
– inviertan y muestren la lista;
– coloque el índice del elemento 17;
– quite el elemento 38 y muestre la lista;
– coloque la sub-lista del 2 eau 3eelemento ;
– affichez la sous-liste du début au 2 eelemento
– publique la sublista del 3eelemento al final de la lista;
– affichez la sous-liste complète de la liste ;
BC v2.1
-3-
2008 - 2009
Enunciados
– muestra el último elemento utilizando un índice negativo.
Es importante señalar que algunos métodos de lista no devuelven nada.
2. Inicializar
como una lista vacía, y
como una lista de cinco flotantes nulos.
Afiche estas listas.
Utiliza la función
los enteros de 0 a 3;
los enteros del 4 al 7;
para mostrar:
los enteros de 2 a 8 en pasos de 2.
Definir
ments 3 y 6 a
como una lista de enteros del 0 al 5 y pruebe la pertenencia de los elementos
.
3. Utiliza una lista por comprensión para añadir 3 a cada elemento de una lista de-
niveles de 0 a 5.
4. Utiliza una lista por comprensión para añadir 3 a cada elemento de una lista de-
niveles de 0 a 5, pero solo si el elemento es mayor o igual a 2.
5. Utiliza una lista por comprensión para obtener la lista
a partir de las cadenas
y
.
Indicación: utiliza dos bucles
imbriquées.
6. Utiliza una lista por comprensión para calcular la suma de una lista de enteros de 0
a 9.
7. Definir dos conjuntos (sets): X= {a,b,c,d} etY= {s,b,d}, luego muestra los resultados
siguientes :
– los conjuntos iniciales ;
– la prueba de pertenencia del elemento
– la prueba de pertenencia del elemento
– los conjuntosX−YetY− X;
– el conjunto X∪Y(unión) ;
àX;
àY;
el conjunto X∩Y (intersección).
8. Escribir una función
teniendo un argumento (una cadena de caracteres) y que
devuelve un diccionario que contiene la frecuencia de todas las palabras de la cadena ingresada.
9. El tipo diccionario (o tabla asociativa) permite representar tablas estructuradas.
de hecho, a cada clave un diccionario asocia un valor, y este valor puede
ella misma puede ser una estructura de datos (lista, tupla o un diccionario...).
2008 - 2009
-4-
BC v2.1
Enunciados
Sea la siguiente tabla que representa información físico-química sobre ele-
mentes simples (temperatura de ebullición (Te) y de fusión (Tf), número (Z) y masa
(M) atómico :
Te/Tf2970
Z/A79 196.967
Te/Tf2237
Z/A31
1063
Au
Ga
29.8
69.72
Asigne los datos de esta tabla a un diccionario
escribir por ejemplo:
python de manera que pueda
10. Implemente una pila LIFO con una lista.
Para ello, definir tres funciones:
que regresa una pila a partir de una lista variable de elementos pasados como parámetro
metro
coloca un elemento en « arriba » de la pila ;
desapila un elemento de la « parte superior » de la pila.
11. De la misma manera, implemente una cola FIFO con una lista. Intente agregar
un menú de manipulación de la cola.
Consejo: No utilice más que procedimientos sin argumento y una lista en variable global.
Curso no5 : Interludio : números perfectos y números afortunados
Definiciones :
– En appellenombre premiertout entier naturel supérieur à 1 qui possède exactement
dos divisores, él mismo y la unidad;
Se llama divisor propio de a un divisor cualquiera de a, excluido;
Un número natural se dice perfecto si es igual a la suma de todos sus divisores propios;
– los números tales como: (a+n+n2) es primo para todo tal que 0 n< (a−son
llamados números de la suerte.
Escribir un módulo (
) definiendo cuatro funciones :
,
,
,
y una autoevaluación :
retorna la suma de los divisores propios de su argumento;
• la función
• las tres otras funciones verifican la propiedad dada por su definición y retornan un
booleano. Más específicamente, si por ejemplo la función
verifique que su argumento
ment es primero, ella regresa
, sino ella regresa
.
BC v2.1
-5-
2008 - 2009
Enunciados
La parte de prueba debe incluir cuatro llamadas a la función
permitiendo probar
,
,
y
.
Luego escribe el programa principal (
– la inicialización de dos listas :
) que incluye :
y
;
– un bucle de recorrido del intervalo [2,1000] incluyendo las pruebas necesarias para llenar
esas listas ;
– finalmente la visualización de estas listas en cuadros de mensaje del módulo
.
Curso no6 : « Módulos y archivos »
1. Escribir un módulo para calcular las raíces del trinomio real: ax2+bx+c.
El módulo define una función
con los tres parámetros del trinomio, a, beta
c. La función debe retornar una tupla cuyo primer elemento es el número de raíces
del trinomio (0, 1 o 2), y los otros elementos son las raíces posibles.
Prueba tu función con los tres conjuntos de valores siguientes: 1,−3,2, 1,−2,1 y 1,1,1.
2. Escribir un programa principal utilizando el módulo anterior.
Los tres parámetros se ingresarán en una
tats serán mostrados en una
del módulo
y los resul-
.
Curso noProgramación Orientada a Objetos
1. Definir una clase poseyendo los siguientes atributos:
datos: dos atributos de clases: et
que contiene un atributo de instancia
.
método : un método
et les affi-
y invoquen la
cambios de y de.
En el programa principal, instancia un objeto de la clase
método
.
2. Definir una clase
con un constructor que proporciona las coordenadas por
defecto de un vector del plano (por ejemplo:
y
).
En el programa principal, instancia un
con sus dos parámetros, y muéstralos.
sin parámetro, un
3. Enriquezca la clase
anterior añadiéndole un método de visualización
y un método de sobrecarga de adición de dos vectores del plano.
En el programa principal, instancie dos
suma.
, afícheles y afíche su
2008 - 2009
-6-
BC v2.1
Enunciados
Curso no8 : « Notiones de COO y de encapsulación »
1. Definir una clase
con un constructor que da valores (
y
) por defecto y un atributo
, un método de exhibición y
un método
renvoyer la surface d'une instance.
heredero de y que sobrecarga el atributo de instancia:
y uno y pégalos.
Definir una clase
.
En el programa principal, instancia un
2. Definir una clase
con un constructor que proporciona las coordenadas por defecto
et ).
de un punto del plano (por ejemplo:
Definir una clase
para el origen y dos para el extremo. Este constructor define dos atributos:
et, instancias de la clase De esta manera, diseñarás una clase
composite: La clase est compuesta de dos instancias de la clase
Agregar un método de visualización.
cuyo constructor tiene cuatro parámetros: dos
.
En fin, escribir una auto-prueba que muestre una instancia de Segment inicializada con los valores
1, 2, 3 y 4.
3. Definir una función fábrica
a un argumento
renvoyer une fonction de fermeture
Este código no contiene más que la función
.
quien
ella también posee un argumento
la suma :
y cuyo código se limita a devolver
.
En el programa principal, crea dos funciones, por ejemplo
et, puis affichez les valeurs
données par
y
.
4. Escritura de una función que devuelve una instancia de clase.
Definir una clase
Definir una clase
contiene un método
conteniendo un método
quien afiche
quien afiche
.
.
En fin, definir la función fabrique
tialisé por defecto a
instancia de la clase
con un parámetro
Si se verifica el parámetro, el cuerpo de la función devuelve un
, si no, devuelve una instancia de la clase
ini-
.
En el programa principal, crea la instancia que desees a través de la fábrica.
Luego verifique su tipo llamando al método
Enunciados
2. Un bucle while: ingrese un precio sin IVA (ingrese 0 para terminar) y muestre su valor con IVA.
3. Otro bucle mientras: calcula la suma de una secuencia de números positivos o cero.
Cuente cuántos datos había y cuántos eran superiores a 100.
Un número inferior o igual a 0 indica el fin de la secuencia.
4. El usuario da un número entero positivo y el programa muestra
2 y sinon.
si es divisible por
5. El usuario da un número entero positivo y el programa anuncia cuántas veces consecutivas.
este entero es divisible por 2.
[Link] usuario proporciona un entero mayor que 1 y el programa muestra, si los hay, todos sus
divisores propressantes repetidos así como su número. Si no hay, indica que no
es primer. Por ejemplo:
7. Escribir un programa que estime el valor de la constante matemática utilizando
la fórmula :
n
X
1
e=
yo=0¡Hola!
Para ello, define la función factorial y, en tu programa principal, ingresa
señale el orden correspondiente de la aproximación
8. Un farero va al baño cinco veces al día, pero los baños están en la planta baja...
Escribir un procedimiento (por lo tanto, sin retorno)
quien recibe dos parámetros
el número de peldaños del faro y la altura de cada peldaño (en cm), y que muestra:
No olvidaremos:
– que una semana consta de 7 días;
– que una vez abajo, el guardia debe subir;
que el resultado se expresa en m.
9. Un permiso de caza por puntos reemplaza ahora el permiso de caza tradicional.
Cada cazador tiene al principio un capital de 100 puntos. Si mata a una gallina, pierde
1 punto, 3 puntos por un perro, 5 puntos por una vaca y 10 puntos por un amigo.
el permiso cuesta 200 euros.
2008 - 2009
-8-
BC v2.1
Enunciados
Escribir una función
la suma debida.
quien recibe el número de víctimas del cazador y quien devuelve
Utiliza esta función en un programa principal que ingrese el número de víctimas
et qui affiche la somme que le chasseur doit débourser.
10. Estoy atado a las vías en la estación de Arras. Escribe un programa que muestre una tabla
me permite conocer la hora a la que seré destrozado por el tren que partió de
la estación del Norte a las 9h (hay 170 km entre la estación del Norte y Arras).
La tabla predecirá las diferentes horas posibles para todas las velocidades de 100 km/h
a 300 km/h, por tramos de 10 km/h, los resultados se redondean a la minuto inferior.
– Escribir un procedimiento
drama
quien recibe la velocidad del tren y que muestra la hora
– escribir el programa principal que muestre la tabla solicitada.
11. Un programa principal ingresa una cadena de ADN válida y una secuencia de ADN va-
lide (« valide » significa que no están vacías y están formadas exclusivamente de una
combinación arbitraria de
Escribir una función
,
,
tú
).
que devuelve verdadero si la entrada es válida, falso de lo contrario.
Escribir una función
quien realiza una entrada válida y devuelve el valor ingresado bajo
forma de una cadena de caracteres.
Escribir una función
que recibe dos argumentos, la cadena y la secuencia y
que devuelve la proporción de secuencia en la cadena (es decir, su número de oc-
currencias).
El programa principal llama a la función
muestra el resultado.
para la cadena y para la secuencia
Ejemplo de exhibición:
12. Se trata de escribir, por un lado, un programa principal, y por otro lado, una función u
leído en el programa principal.
El usuario completa una tabla deN= 100 enteros con enteros aleatorios en utili-
sin una función
nombrada
a,bqui devuelve un entero entre a y b−Una función
recibe este cuadro y devuelve el índice de la casilla que contiene
el mínimo.
Escribir la función
.
Escribir el programa que intercambia el primer elemento del arreglo con el mínimo.
este cuadro.
13. Un tableautabcomporteN= 100 variables flotantes cuyas primeras (n< 100)
se utilizan.
Escribir una función
cesn, y otra
quien devuelve el índice del mayor flotante entre
que devuelve el índice del más pequeño.
Escribir luego un programa principal que realice las siguientes acciones:
BC v2.1 - 9 -
2008 - 2009
Enunciados
– entrada filtrada (debe asegurarse de que no se pueda ingresar fuera de sus
límites) ;
– llenado aleatorio de las primeras valores de tabla (se utilizará el módulo
sin argumentos, que devuelve un flotante al azar entre 0.0 y+1.0) ;
– exhibición de la amplitud de la tabla (diferencia entre su mayor y su menor valor)
leur) ;
,
– visualización de la media de las primeras valores de la tabla.
14. Escribir una función
que recibe dos parámetros, una temperatura y un entero
, y que devuelve la conversión Celsius→ Fahrenheit ( = 1), o Fahrenheit→ Celsius
( = 2).
Rappel :TF= 32+1.8×TC
15. Función que devuelve varios valores en forma de tupla.
Escribir una función
el máximo y la media de esta lista. El programa principal llamará a esta función.
con la lista :
que recibe una lista de enteros y que devuelve el mínimo,
.
16. Ingrese un entero entre 1 y 3999 (¿por qué esta limitación?). Mostrarlo en número ro-
principal.
17. Mejorar el script anterior utilizando la función
.
18. Un tableau contient des entiers (2< n< 100), todos comprendidos entre 0 y 500. Verificar que ellos
son todos diferentes.
[Link] usuario ingresa un número entero entre 2 y 12, el programa da el número de formas
de fairenen lanzando dos dados.
20. Mismo problema que el anterior pero con entre 3 y 18 y tres dados.
21. Generalización de las dos preguntas anteriores. El usuario ingresa dos entradas, de una
parte el número de dados, nbd (que se limitará prácticamente a 10), y por otro lado la
somme,s, comprende entrenbdet [Link]. El programa calcula y muestra el número
de formas de hacer con los nbddes.
22. Mismo problema que el anterior pero codificado recursivamente.
23. Para hacer cálculos con matrices cuadradas, se puede utilizar el tipo « lista de listas »
y indexar un elemento de la 3è línea y 4è columna parm[2][3] (teniendo en cuenta que los
los índices comienzan en 0).
Se declaran tres matrices cuadradas de dimensión N: m1, m2 y m3 que contienen enteros.
2008 - 2009
-10-
BC v2.1
Enunciados
En affectem1, ligne à ligne, par lesN2primeros enteros pares comenzando desde 2; m2 es
la matriz unidad, es decir, que contiene unos en la diagonal principal (NO-SE)
y ceros en todas partes.
Prácticamente, nos limitaremos a Nmax= 10. Escribir el algoritmo del cálculo de:
m3= m1−m2
.
!
BC v2.1
-11-
2008 - 2009
Soluciones
Soluciones de los ejercicios
Los scripts del curso
Curso no1
2008 - 2009
-12-
BC v2.1
Soluciones
Curso no2
BC v2.1
-13-
2008 - 2009
Soluciones
2008 - 2009
-14-
BC v2.1
Soluciones
BC v2.1
-15-
2008 - 2009
Soluciones
2008 - 2009
-16-
BC v2.1
Soluciones
Curso no3
BC v2.1
-17-
2008 - 2009
Soluciones
2008 - 2009
-18-
BC v2.1
Soluciones
BC v2.1
-19-
2008 - 2009
Soluciones
2008 - 2009
-20-
BC v2.1
Soluciones
Curso no4
BC v2.1
-21-
2008 - 2009
Soluciones
2008 - 2009
-22-
BC v2.1
Soluciones
BC v2.1
-23-
2008 - 2009
Soluciones
2008 - 2009
-24-
BC v2.1
Soluciones
BC v2.1
-25-
2008 - 2009
Soluciones
2008 - 2009
-26-
BC v2.1
Soluciones
BC v2.1
-27-
2008 - 2009
Soluciones
Curso no5
2008 - 2009
-28-
BC v2.1
Soluciones
BC v2.1
-29-
2008 - 2009
Soluciones
Curso no6
2008 - 2009
-30-
BC v2.1
Soluciones
Curso no7
BC v2.1
-31-
2008 - 2009
Soluciones
2008 - 2009
-32-
BC v2.1
Soluciones
Curso no8
BC v2.1
-33-
2008 - 2009
Soluciones
2008 - 2009
-34-
BC v2.1
Soluciones
BC v2.1
-35-
2008 - 2009
Soluciones
Scripts adicionales
2008 - 2009
-36-
BC v2.1
Soluciones
BC v2.1
-37-
2008 - 2009
Soluciones
2008 - 2009
-38-
BC v2.1
Soluciones
BC v2.1
-39-
2008 - 2009
Soluciones
2008 - 2009
-40-
BC v2.1
Soluciones
BC v2.1
-41-
2008 - 2009
Soluciones
2008 - 2009
-42-
BC v2.1
Soluciones
BC v2.1
-43-
2008 - 2009
Soluciones
2008 - 2009
-44-
BC v2.1
Soluciones
BC v2.1
-45-
2008 - 2009
Soluciones
2008 - 2009
-46-
BC v2.1
Soluciones
!
BC v2.1
-47-
2008 - 2009
Colofón
Estos ejercicios han sido compuestos gracias al logi-
A
ciel LT X bajo el editor T XnicCenter. El cuerpo
E
E
du texte est en police Utopia, les exemples de
código en policía
.
Este documento está disponible en la dirección: