100% encontró este documento útil (1 voto)
296 vistas

Guía Python

Este documento presenta una introducción al lenguaje de programación Python. Explica que Python es un lenguaje interpretado, de código abierto y multiparadigma creado a principios de los 90. Destaca que debido a su sintaxis simple y legible, Python es una buena opción para principiantes en programación. También menciona algunas de las ventajas de Python como su alta productividad, bajo tiempo de aprendizaje y capacidad de ejecución en múltiples plataformas.

Cargado por

omaira
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (1 voto)
296 vistas

Guía Python

Este documento presenta una introducción al lenguaje de programación Python. Explica que Python es un lenguaje interpretado, de código abierto y multiparadigma creado a principios de los 90. Destaca que debido a su sintaxis simple y legible, Python es una buena opción para principiantes en programación. También menciona algunas de las ventajas de Python como su alta productividad, bajo tiempo de aprendizaje y capacidad de ejecución en múltiples plataformas.

Cargado por

omaira
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 35

Dentro de la informática, los programas son los elementos que forman el

software, que es el conjunto de las instrucciones que ejecuta el hardware de una


computadora para realizar una tarea determinada. Por lo tanto, la programación es
una de las principales áreas dentro de la informática y con esta guía se pretende que
el estudiante facilite su aprendizaje, se ha preparado un material en el cual se
explicará la sintaxis básicas de Python acorde con los temas que se abordarán en el
curso de fundamentos de la programación y además un compendio de ejercicios
resueltos.

Python es un lenguaje de programación multiparadigma creado por Guido van


Rossum a principios de los años 90 cuyo nombre está inspirado en el grupo de
comediantes ingleses “Monty Python” con una sintaxis fácil de digerir y por ende se
le considera una buena opción para aquellos que recién comienzan en el mundo de la
programación.
Es un lenguaje interpretado, esto significa que cada vez que se ejecuta un programa,
su intérprete ejecuta el código y lo traduce en un código de bytes legible para la
máquina. Python es un lenguaje poderoso que puede usar para crear programas de
escritorio, juegos, escribir GUI (interfaz gráfica de usuario) y desarrollar aplicaciones
web.

Aquí van varias razones por las cuales aprender y usar Python es una buena decisión .

-Legibilidad

Los programas de Python usan instrucciones claras, simples y concisas que son
fáciles de leer, incluso para aquellos que no tienen una gran experiencia en
programación. Los programas escritos en Python son, por lo tanto, más fáciles de
mantener, depurar o mejorar.

-Alta productividad

Los códigos en Python son considerablemente más cortos, simples y menos


detallados que otros lenguajes de programación de alto nivel como Java y C ++.
Además, tiene funciones incorporadas bien diseñadas y una biblioteca estándar, así
como acceso a módulos de terceros y bibliotecas de servicios. Estas características
hacen que la programación en Python sea más eficiente.

-Menos tiempo de aprendizaje

Python es relativamente fácil de aprender. Muchos encuentran a Python como un


buen primer lenguaje de programación porque usa sintaxis simple y códigos
generalmente más cortos.

-Se ejecuta en diferentes plataformas

Python funciona en Windows, Linux / UNIX, Mac OS X, y otros varios más.


También se ejecuta en microcontroladores utilizados en electrodomésticos, juguetes,
controles remotos, dispositivos integrados y otros dispositivos similares.
Primer módulo 3
Segundo módulo 16

4) Cree un algoritmo que dado 3 números enteros distintos ingresados por el usuario
, imprimir el mayor. Adicionalmente imprimir la raíz cuadrada del mayor, si el número
mayor es negativo, aplicarle valor absoluto antes de imprimir su raíz cuadrada. Limitar de
ser posible a 2 decimales la raíz cuadrada de dicho número.
Caso 1: el mayor es positivo

Caso 2: el mayor es negativo

Creamos 3 variables en donde almacenaremos los números ingresados por el usuario,


luego cubrimos 3 casos posibles mediante la estructura if-elif -else, que el 1er número sea el
mayor, que el 2do sea el mayor y por último que el 3er sea el mayor de todos. En las dos
primeras condiciones se utilizó el “and” que es un operador lógico de conjunción para
agrupar dos comparaciones , de modo que la condición sólo será verdadera si ambas
comparaciones son verdad. En el primer if vemos si el primer número ingresado es mayor
que el segundo y el 3ero, en el elif verificamos lo mismo pero con el 2do número. De no
cumplirse ninguna de estas condiciones se ejecutaría las instrucciones del else, dejando al
3er por descarte número como el mayor. En cualquier caso se imprime el mayor, además
creamos una nueva variable en donde guardamos el mayor, verificamos luego si es
negativo, en caso de ser cierto se le aplica la función fabs (vista en el ejercicio 5 del anterior
tema) para aplicarle valor absoluto y luego poder calcular su raíz cuadrada e imprimir el
resultado, en caso de ser positivo no hace falta aplicarle valor absoluto y directamente se
imprime su raíz cuadrada. La función round nos permite limitar la cantidad de decimales, en
este caso se limitó a 2.

5) Escriba un algoritmo en donde el usuario ingrese un número de 4 dígitos, si el


primer y último dígito son pares, imprimir 1, en caso contrario inverlos de posición e
imprimir el número resultante.
caso 1:

caso 2:

La entrada se almacena en la variable “a”, se crea una variable auxiliar donde


también guardamos el número ingresado, llamada “aux” y una variable booleana (lógica) x
que inicializamos en True, que la usaremos más adelante. Se verifica primero si el primer
dígito (más a la derecha) es par, usando el operador %, como hemos visto en anteriores
ocasiones. notar que aux%10 se trata del dígito más a la derecha y de ser par, creamos una
variable aux2 y la igualamos al dígito más a la izquierda, luego se verifica si tal variable es
par también y de ser verdad imprimimos 1 y además hacemos que la variable x valga falso
para que no se ejecute el condicional de la línea 7, ya que en ese condicional se cubre el
caso en que mínimo el primer dígito o el último sean impares. En tal caso lo que se hace es
intercambiar de posición los dígitos, guardándose el resultado en la variable aux. Para
lograrlo primero se iguala la variable al dígito más a la derecha y se multiplica por mil, se
le adiciona los dos siguientes dígitos multiplicados por 10 y por último se adiciona el dígito
que originalmente estaba más a la izquierda.

6) Se tienen 3 productos en una tienda, si el comprador tiene una edad mayor igual a
80 se le aplica un descuento al primer producto de 20%, 30% al segundo y un descuento
directamente proporcional a la edad. Si la edad del comprador es menor igual a 17, todos los
precios sufren un descuento de 5%. Diseñe un algoritmo que dada una edad y los precios de
cada producto (números enteros), muestre los precios de los producto tomando en cuenta las
reglas de venta de la tienda. Si la edad es mayor a 120 en vez de imprimirse los precios, se
imprime “Entrada inválida”.
Mediante la estructura if-else tan sólo se evaluó los casos en donde la edad era menor
igual a 17 o mayor igual a 80 además del caso en que se ingrese una edad mayor igual a
120. Luego de las estructuras condicionales se imprimen los precios, si algún condicional
se cumplió entonces los precios saldrán afectados de forma acorde con las reglas de la
tienda, sino los precios se imprimirán sin sufrir ningún precio. Notar que en el caso de que
la edad sea mayor igual a 80 y menor igual a 120, si la edad es mayor igual a 100 el precio
se reduce a 0 (no tiene sentido un precio negativo) para ese detalle se utiliza una estructura
if-else dentro del elif de la línea 10. Notar que al hacer en la línea 7, a=a-(a*0.05) allí
estamos reduciendo el valor de a (el precio del primer producto) un 5%. esto se hace con los
demás precios según el caso. Recordar que las operaciones encerradas en paréntesis se
realizan primero.

7) Un profesor malhumorado ha decido hacer los siguiente: si el promedio de las


calificaciones de sus alumnos es menor a 10, le bajará 2 puntos a todos sus estudiantes. En
caso contrario, si un alumno tiene 20, su nota la modificará a 19. Escriba un algoritmo que
dada las notas de 5 estudiantes (números enteros), aplique el criterio de corrección del
profesor y muestre las notas resultantes de cada alumno además del promedio de todas las
notas (promedio general). Recuerde que no pueden haber notas negativas.
Luego de recibir la entrada y almacenarse en variables se suman las 5 notas y el
resultado se divide entre 5 para obtener el promedio, luego se comprueba si es menor a 10 y
de ser cierto, a todas las variables en donde se guardaron las notas se le resta 2, luego se
verifica si alguna quedó con valor negativo y en tal caso se le asigna 0. Ahora, desde la
línea 12 se verifica si alguna nota es 20 para restarle 1 ( si alguna nota en este punto tiene 20
es porque no se cumplió el primer condicional). Se imprime las notas usando la función
format visto en el tema anterior. Notar que no se usa ningún elif porque queremos evaluar
cada caso sin que importe que el anterior sea falso o verdadero.

8) Dado 3 números enteros, diseñar un algoritmo que haga lo siguiente:

-Imprimir 1 si la suma de los dos primeros es mayor que el 3ero o si dicha suma es igual a 5
veces el tercero.
-Imprimir 2 si la suma de los dos últimos es menor que el doble del 1ero o si el resultado de
tal suma es par.
-Imprimir 3 si no se cumple ninguna condición anterior. Es posible que los dos primeros
casos se cumplan.
Aprovechamos para explicar el operador “or”. Este operador sirve para agrupar dos
comparaciones, el resultado de la operación or únicamente será falsa cuando ambas
condiciones son falsas, en cualquier otro caso resultará verdadero. Es posible agrupar más
de dos comparaciones con este operador pero necesitaríamos más de un “or” ya que
debemos recordar que este operador es binario, es decir, sólamente sirve para agrupar 2
comparaciones.
Con lo anterior explicado es fácil entender que si por lo menos una de las dos
comparaciones que están dentro los if de las líneas 5 y 7 resulta verdadera, se ejecutará las
instrucciones que estén dentro de los if.
Esta vez usamos otra vez una variable lógica (línea 4) para atender el 3er caso, el cual sólo
se evaluará si los dos primeros resultan falsos. Notar que dicha variable se inicializa en True
puesto que a ese punto el programa no sabe si las dos próximas condiciones son verdaderas
o falsas, en caso de que alguna o ambas sea verdadera no queremos que se imprima 3, así
que la variable la modificamos a falso . Otro aspecto importante a destacar es el uso
adecuado de los paréntesis para agrupar correctamente las operaciones, si se comete un error
a la hora de agrupar operaciones aritméticas o lógicas los resultados no serán los esperados.
9) Escriba un algoritmo que pida un año (número entero) y que escriba si es bisiesto o
no.Se recuerda que los años bisiestos son múltiplos de 4. Si el año es múltiplo de 100
entonces no lo es. Si es múltiplo de 100 y a su vez de 400 entonces sí es bisiesto.

Usamos una variable lógica para determinar si el año ingresado es bisiesto o no, se
inicializa en True, luego se evalúan los casos. Notar que en el primer condicional se usa la
sentencia pass, ya que si un año es divisible entre 4 es entonces bisiesto, y como
inicialmente b vale True no necesitamos modificar su valor, entonces no necesitamos hacer
algo en específico, y esa es precisamente la función de la sentencia pass, no hacer nada. En
el caso de que el año sea divisible entre 100 se modifica b a falso, pero luego se evalúa en
un condicional más interno si es divisible entre 400 y de ser verdad b volvería a ser
verdadero. Por último, se evalúa si b es verdadero o falso para imprimir si se trata de un
año bisiesto o no según el caso.

10) Dado un número entero de 4 dígitos, escriba un algoritmo que haga lo siguiente:

-Imprimir “1” si el número es par y si los dos dígitos más a la derecha al sumarse dan un
resultado par o múltiplo de 5.
-Imprimir “2” si el número es impar y si la suma de todos sus dígitos es impar o múltiplo de
7.
En anteriores ejercicios aprendimos a operar con los operadores “and” y el “or” por
si solos, ahora se explicara como usar ambos en un mismo condicional. Otra vez el tema de
los paréntesis es importante ya que nos permite agrupar cada operación lógica. Recordemos
que “and” permite agrupar dos comparaciones y retorna verdadero si y sólo si ambas
comparaciones son verdad. Por el contrario, el “or” retorna falso solamente cuando ambas
comparaciones son falsas. En los condicionales del algoritmo se muestra que se agrupa con
paréntesis la operación del “or”, de esta forma se trata como un solo objeto permitiendo que
el “and” agrupe 2 operaciones lógicas. Se evalúan los condicionales de la siguiente manera,
si la primera comparación (más a la izquierda) es falsa, sin importar el resultado del “or” el
condicional no se cumplirá, si es cierta, se verifica si la operación del “or” es verdadera, y
para que esto suceda una de las dos comparaciones que agrupa el or debe ser cierta. Siendo
entonces ambas operaciones lógicas verdaderas, el operador and retorna verdadero
permitiendo que el condicional se cumpla. En el algoritmo se hace lo siguiente: luego de
recibir el número de 4 dígitos se copia su valor en la variable aux y con ella se trabaja para
separar los dígitos del número y colocarlos en distintas variables, aux1, aux2, aux3 y aux4.
Creamos una variable “x” que almacenará la suma de los dos primeros dígitos que usaremos
en el primer condicional y una variable y que contendrá la suma de todos los dígitos que
usaremos en el 2do condicional. En el primer condicional se comprueba si el número es par
y además si “x” es par o divisible entre 5 (si no lo es, entonces no es múltiplo de 5), en caso
de cumplirse el condicional, se imprime 1. Luego en otro condicional, se evalúa si el
número es impar y además si “y” es impar (si no es divisible entre 2, no puede ser par) o si
es divisible entre 7 y en caso de que el condicional se cumpla se imprime 2.
Si necesitaramos repetir una misma instrucción varias veces sería tedioso tener que
volverla a escribir tantas veces la necesitemos ejecutar. Los
ciclos o también llamados bucles son estructuras iterativas que se encargan de ejecutar una o
varias instrucciones tantas veces según nosotros queramos y ahora aprenderemos a como
usarlos. Se trabajará con los ciclos while y for que están presente en la mayoría de los
lenguajes de programación.

1) Haga un algoritmo que imprima los primeros 15 múltiplos de 7.


El bucle for está conformado por una variable que hace el papel de iterador (en este
caso la variable “i”) y un rango en el cual dicho iterador trabajará. La función range define
un rango que es inclusivo por la izquierda y exclusivo por la derecha, es decir, notar que en
este algoritmo se coloca dentro la función range “1,16”, entonces el rango será desde 1 a
15. Este ciclo for funciona así, se verifica primero si el iterador está dentro del rango, en
caso de ser cierto, ejecuta las instrucciones dentro del ciclo, finalmente al iterador se le
suma 1 y vuelve a verificar si el iterador está dentro del rango, repite estos mismos pasos
hasta que deje de estar en dicho rango. En cada iteración se manda a imprimir con formato,
el número de la iteración antes de un paréntesis y al lado el producto de 7 y el iterador. La
función range, puede admitir un 3er argumento, el primer argumento como vimos, es el
número donde comenzará el rango, el segundo argumento sería el número que denota el fin
de dicho rango (exclusivo como se explicó antes) y el tercer argumento que denotaría el
incremento del iterador en cada iteración, si no se coloca ese 3er argumento, por defecto se
dejará en 1, por eso en este caso en cada iteración se le suma 1 al iterador.

2) Escriba un algoritmo que sume los números enteros que vaya ingresado el
usuario, esto terminará cuando ingrese “-1”. finalmente imprimir la suma total.
El usuario puede ingresar tanta cantidad de números como quiera, si ingresa -1 es
porque no ingresará más ninguno (en la suma, no se cuenta el -1). El bucle while, evalúa si
la condición es cierta para luego ejecutar sus instrucciones, las volverá a ejecutar hasta que
sea falsa dicha condición, de ahí su nombre, ya que se ejecutará dicho ciclo mientras la
condición sea verdadera. En este caso ponemos “True” dentro de los paréntesis del while
(que es donde se coloca las condición del ciclo while) , para que siempre se ejecute el ciclo,
pero adentro del while, colocamos un condicional que nos evalúe si el número ingresado por
el usuario es -1, en caso de ser cierto se ejecuta la instrucción “break” que hace que el
programa deje de ejecutar el ciclo inmediatamente, en caso de no ser igual a -1, se le
adiciona a la variable “sum”. Luego del ciclo se imprime la suma total. Hasta aquí hemos
visto los dos ciclos que tiene Python, el for y el while. Recordar que en las estructuras
condicionales como en las iterativas necesita colocar una sangría (indentado) para que
python diferencie las instrucciones que estén dentro de dicha estructura de las que están
afuera.

3) Escriba un algoritmo que dado un número entero ingresado por el usuario, se


imprima la cantidad de dígitos de tal número.
Otra vez usamos el ciclo while, la condición para que se ejecute este ciclo es que el
número sea distinto de 0. Luego de guardar el número ingresado en la variable “num”.
Utilizamos la variable “cont” inicializada en 0 para contar los dígitos del número. Dentro
del ciclo ponemos que se el “num” en cada iteración sea igual al resultado de dividirlo entre
10, pero se usa la división entera (//), que básicamente le borra el dígito más a la derecha y
luego de este la variable cont se le agrega 1 para ir contando. Cuando al número le quede
sólo un dígito el resultado será 0, se contará este nuevo dígito y entonces el ciclo terminará
de ejecutarse y finalmente se imprime la cantidad de dígito.

4) Elaborar un programa con un menú con 2 opciones.

Opción 1: (se selecciona ingresando “1”) Se pide al usuario que ingrese un número
entero positivo, para luego imprimir la suma de todos los números enteros positivos que le
preceden a dicho número (incluyendolo). La opción se llamará “sumatoria”.
Opción 2: (se selecciona ingresando “2”) pide al usuario que ingrese un número
entero positivo, y se debe imprimir su factorial. (Recordar que el factorial de un número
entero positivo es el producto de todos los números enteros comprendidos desde el 1 hasta
dicho número). La opción se llamará “factorial”.
Luego que alguna de las dos operaciones terminen, se le debe informar al usuario que
si quiere volver a escoger una opción, debe marcar 1, en otro caso finaliza el programa.
Como tal, todo nuestro programa está dentro de un bucle while, que se ejecuta
siempre y cuando la variable “prog” valga 1. Es por eso que al crearla le otorgamos de una
vez el valor 1. Luego que se ejecute una opción, le preguntamos al usuario si quiere
continuar usando el programa, en ese caso que marque 1 o cualquier otro número entero en
caso contrario, de todas formas el valor que ingrese se guardará en la variable prog. Para
que el usuario pueda seleccionar una opción, creamos la variable “op” y una estructura “if-
else”, el valor que ingrese el usuario irá a la variable “op” y si es 1 se cumplirá el primer
condicional que se trata de la opción sumatoria, que luego de pedirle al usuario que digite
un número positivo entero, se hace uso de un bucle for para obtener la suma de todos los
números comprendidos desde 1 hasta el número ingresado, notar el uso que se le da la
variable “suma” inicializada en 0, en cada iteración se suma el valor del iterador con el de la
variable “suma” y se guarda el valor esa misma variable. Si “op” vale 2, se ejecutará la
opción del factorial (elif) donde se pide al usuario el número que se calculará su factorial,
para eso se utiliza otra vez el bucle for y una variable “fact” inicializado en 1, en cada
iteración se multiplica el valor del iterador con el valor actual de la variable “fact” y se
guarda el valor en esa misma variable.

5) Elaborar un algoritmo que determine si un número entero positivo ingresado por


el usuario es primo o compuesto. Recordar que un número es considerado primo si tan sólo
es divisible entre 1 y el mismo número. En caso de no ser primo, imprima todos sus
divisores.
Con tan sólo encontrar un divisor distinto de 1 y del mismo número, sabemos que el
número es compuesto. Es precisamente lo que se hace en el for de la línea 3, tanteamos con
todos los números comprendidos de 1 hasta el número en cuestión y para eso usamos un
iterador ( en este caso “i”), en cada iteración se comprueba si al dividirse con el número
ingresado por el usuario el residuo es igual a 0, además de verificar si el valor actual del
iterador es distinto de 1 o del mismo número, en caso de ser cierto esta condición, el número
entonces no es primo y a la variable lógica “primo” se le modifica su valor a falso. Luego
si la variable “primo” es igual a True, el condicional de la línea 6 se cumplirá
imprimiendose el mensaje “El número ingresado es primo”. En caso de que “primo” sea
igual a False, se utiliza un bucle for, esta vez imprimiendo todos los divisores del número
ingresado, para eso basta comprobar si el iterador de dicho ciclo divide exactamente al
número, imprimiendo el valor del iterador en caso de ser cierto.

6) Desarrolle un algoritmo que resuelva la siguiente ecuación de segundo grado,


utilizando ciclos. Pista: Tiene 2 soluciones enteras, una negativa y otra positiva.
Usando la pista que nos da el enunciado tan sólo hay que tantear uno a uno los
valores que puedan hacer que la expresión del miembro izquierdo sea igual a 0 , tanto con
números positivos como negativos. Para eso se utiliza dos ciclos while, que se detendrán
sólo cuando encontremos un valor de x que satisfaga la ecuación, en ese caso usamos la
sentencia “break” para detenerlos. Para ambas búsquedas, usamos una variable que nos
ayude a tantear, incrementando 1 en cada iteración del primer while, para buscar la solución
positiva y disminuyendo 1 en cada iteración del segundo bucle para buscar la solución
negativa, notar que después del primer while, x le ponemos de nuevo 0. Finalmente
imprimimos las soluciones encontradas. Notar que las soluciones mostradas en la sección de
entrada/salida son correctas.

7) Escriba un algoritmo que reciba línea por línea dígitos de 1 al 9 ingresados por el
usuario hasta que éste ingrese -1, luego imprimir todos estos números como uno sólo (el
primer número ingresado será el dígito más a la izquierda). Si por ejemplo, los números
ingresados por el usuario sin contar el -1 son: 9 6 5 1 3 4 imprimir 965134. Asuma que no
se ingresará 0.
A dos o más variables se le pueden asignar valores, precediendo el operador de
asignación antes de la siguiente variable, así como se hizo en el algoritmo mostrado. Las
variables num1 y num2 en la línea 1 guardarán el valor del primer dígito, si es distinto de -1
entonces la condición del while se cumplirá iniciando el ciclo. Se multiplica por 10, num2
(variable en la cual se imprimirá el número al final) para luego pedir otro dígito (usando otra
vez num1) y sumarselo a num2, de esta manera el nuevo dígito quedará a la derecha. Luego
de terminar el ciclo se debe usar la división entera para quitar el 0 más a la derecha que
quedó por causa de la multiplicación efectuada en el ciclo. Por último, se debe imprimir el
número ya con los dígitos ingresados juntos que contiene la variable num2.

8) Elabore un Menú con las siguientes opciones:

Opción 1: Imprimir una escalera de asteriscos de n peldaños. n es un número entero


positivo ingresado por el usuario.
Si por ejemplo n es 3, se debe imprimir:
*
**
***
Opción 2: Imprimir los bordes de un cuadrado con asteriscos. Cada lado debe tener n
asteriscos donde n es un número entero positivo ingresado por el usuario.
Si por ejemplo n es 3, se debe imprimir:
***
* *
***
Luego de finalizarse alguna opción, se debe preguntar al usuario si quiere volver a seguir
usando esa opción, volver al menú principal o dejar de usar el programa.
Como en el problema 4, otra vez debemos desarrollar un menú, esta vez podemos
decidir que hacer justo después que se termine alguna opción. Debemos aclarar que la
instrucción “continue” hace que el bucle en donde esté esta instrucción inicie de nuevo
inmediatamente, produciendo la próxima iteración. En el 1er condicional del ciclo más
externo (línea 7) se evalúa la primera opción que se trata de la escalera de asteriscos, en el
2do condicional del ciclo más externo (línea 22 )se evalúa el caso del cuadrado. La variable
x, que es la primera que se creó se utiliza para el caso en que el usuario quiera volver al
menú principal, en caso de ser cierto el valor de la variable se modifica a True, el
condicional de la línea 40 comprobará si se continúa ejecutando el programa, o termina, esto
dependerá del valor de x. Notar que cada opción en sí está conformada de un ciclo while,
que seguirá iterando hasta que el usuario decida regresar al menú anterior o que el programa
finalice, en ese caso se usará la instrucción “break” que detiene inmediatamente el bucle.
Notar que para imprimir la correcta cantidad de asteriscos se multiplicó el string a imprimir
con la cantidad ingresada por el usuario, para imprimir la cantidad de espacios adecuada del
interior del cuadrado se tuvo que concatenar dentro de la función print con el operador “+”
además hay que destacar que se multiplicó el espacio por n-2 ya que en ambos bordes de
por si habrá un asterisco.

9) Dos números se les puede considerar “números amigos” si la suma de los


divisores propios de un número resulta ser el otro número. Ejemplo de números amigos
serían 220 y 284 ya que los divisores propios de 220 son 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 y
110, y suman 284 por otra parte, los divisores propios de 284 son 1, 2, 4, 71 y 142, que
suman 220.
Con lo anterior mencionado desarrolle un algoritmo que dado dos números enteros
positivos ingresados por el usuario determine si son números amigos o no.
Luego de pedirle al usuario que ingrese los números que quiera comprobar que son
amigos. Se crean 3 variables, suma1 para guardar la suma de todos los divisores propios del
primer número, suma 2 para hacer lo mismo pero con los divisores propios del segundo y
una variable lógica x que nos ayudará a ver si no son amigos los números ingresados. Con
el primer bucle se tantea en cada iteración con todos los números enteros positivos
anteriores al primer número, si se encuentra un divisor se le agrega a la variable suma1. Al
terminar este bucle se verifica si el valor de la sumatoria es igual al 2do número, si es así,
enseguida se hace todo lo anterior pero con los divisores del 2do número, se prueba si la
suma de todos los divisores encontrados da como resultado el primer número. Después se
verifica si esta última sumatoria es igual al primer número y si es cierto se imprime qué
efecto son números amigos de lo contrario, se modifica el valor de x a falso. Luego si x es
falso se imprime que los números ingresados no son amigos. Notar que el rango de los
ciclos se definió desde 1 hasta el mismo número, entonces van a iterar desde 1 hasta el
número anterior, recordar que la función range, es inclusiva por la izquierda y exclusiva por
la derecha, esto es porque no nos interesa evaluar si un número es divisible entre el mismo.
10) Dado dos números enteros positivos K y N ingresados por el usuario (siendo el
primero menor que el segundo) , diseñe un algoritmo que imprima números primos desde K
hasta N.

Luego de crear dos variables que guardarán los números que comprenderán el
rango de números primos que desea el usuario, creamos una variable lógica que nos
ayudará más tarde para imprimir un número en caso de ser primo. En el ciclo for de
la línea 4 creamos nuestro iterador “x” y establecemos el rango que va desde el
primer número hasta el segundo número más 1 ya que recordar que la función range
es exclusiva por la izquierda (estos números fueron los que ingresó el usuario) . En
cada iteración le otorgamos el valor de verdadero a la variable primo porque vamos a
comprobar si el valor actual del iterador es primo o no. Para saber si es primo o no
aplicamos el mismo algoritmo que hemos visto antes para saber si un número es
primo o no. En caso de que el número es primo, la variable “primo” no se modifica y
entonces el condicional de la línea 9 se cumplirá y por tanto se imprimirá el número.
Se debe saber que fuera de Python existen otros tipos de ciclos, como Do while por ejemplo.

Funciones

Es básicamente un pedazo de código el cual puede ser llamado varias veces en


cualquier algoritmo, por así decirlo es como copiar y pegar esas líneas de texto varias
veces, ayuda a la organización y comodidad.

Sintaxis:

def <Nombre de la clase> (<Parámetros formales>) : #Los parametros pueden ser


vacios
<instrucciones>
return <algo que se quiera retornar> #En el caso que se quiera retornar algo.

En el caso de Python siempre se toman las variables por referencia.

El usuario ingresara 10 números enteros, determinar si son pares o impares y además de determinar
si son primos o compuestos. Utilice ciclos y funciones.

def deter(x):
primo=True
for i in range(2,x):
if(x%i==0):
primo=False; break
if(primo):
print("Es primo")
else:
print("Es compuesto")
for i in range(6):
deter(int(input("Ingresar número: ")))
El usuario ingresara 10 cadena de caracteres (strings) , determinar en cada caso es capicua.
Ejemplo: “abba” es capicúa, en cambio “ajfha” no lo es.

def deter(x):
k=len(x)-1; capicua=True
for i in range(len(x)):
if(x[i] != x[k]):
capicua=False; break
if(k==i):
break
k-=1
if(capicua):
print("Es capicua ")
else:
print("No es capicua ")

for i in range(6):
deter(input("Ingresar string: "))

Realice un codigo el cual cuente todos los números múltiplos de 3 entre dos números dados.

Ejercicios:

Diga que se imprime:

Realice un programa que dado una entrada imprima si se está ingresando una vocal o
una consonante.

Realice un programa el cual imprima si el módulo 3 de un número es par o impar.


Diga si se imprime la variable “a”

Diga que se imprime en el siguiente programa:

Diga si se intercepta o si no se intercepta:

Realice una función la le muestre un menú al usuario y según la opción que


seleccione realice una sumatoria, una productoria, una suma o cerrar el programa.

Haga una función en la cual se retorne si el parámetro actual es un número o letra, y


según eso cuente la cantidad de letras y números en una sola impresión, si el usuario
ingresa “*” se finaliza el programa.

Arreglos/Listas

Cuando hablamos de arreglos hablamos de una cantidad de caracteres, enteros,


arreglos, entre otros, los cuales están “encadenados” un ejemplo sencillo, podríamos
decir que un string es un arreglo de caracteres, por ejemplo, en la palabra hola: siendo
la posición 0 (“Todos los arreglos son de el número total menos 1 en cantidad ya que
el 0 es el primer número, es decir, si la cantidad es 3 el arreglo es : 0, 1, 2) la letra H,
1 la letra o, 2 la letra l y 3 la letra a, es decir, cada posición es un espacio donde se
almacena un algo.

En Python no existen los arreglos, existen las listas, las cuales cumplen las mismas
funciones y prestaciones.

Sintaxis:

para declarar una lista


lista = [ ]

puede llenarse de datos así:

lista = [1, 2, 3, 4 ]

Y existen algunas funciones tales como reverse() que imprime el contenido de la lista
de derecha a izquierda, sort() que ordena la lista, entre otros.

Para tomar una sola variable en específico debes de referirte a ella según su posición,
de la siguiente manera.

lista [1]

Matrices
Las matrices son básicamente un arreglo de arreglos, se puede pasar de hacer
matrices bidimensionales, a tridimensionales e inclusive de infinitas dimensiones.

En python no existen matrices como tal, sino, en cambio, listas de listas las cuales se
crean manualmente.

Escritura y lectura de archivos


Se tiene que tener en cuenta que las entradas y salidas no solo pueden estar
relacionadas con usuarios, sino que también pueden estar relacionadas con archivos,
bien sea de texto o binarios, y existen varios tipos de interacciones con ellos.

Para abrir un archivo se debe colocar


Sintaxis

<nombre> = open(<ruta del archivo>, <modo>)

Entre los modos tenemos:


Por tipo de archivo:

“t” lo cual indica que se trata de un archivo .txt (texto)


“b” lo cual indica que se trata de un archivo .bin (binario)
“u” define saltos de línea universales para el modo de lectura

Por tipo de acceso:

“r” proveniente de read, se usa para la lectura del archivo.


“w” proveniente de write, se usa para escribir en el archivo, si ya existe uno este se
sobre escribe.
“a” al igual que w se usa para escribir un archivo, pero en este caso si ya existe se
escribe desde el final de este.
“x” es un modo de escritura en donde se crea un nuevo archivo, y su este ya existe da
un error del tipo FileExistsError.
“+” Es un modo de escritura y escritura.

Algunos métodos utilizados para la gestión de archivos:

Open() el cual se utiliza para abrir el archivo

close() se utiliza para cerrar el archivo

writetable() devuelve “True” si el archivo está en modo escritura

seektable() devuelve “True” si es posible desplazarse dentro del archivo


read() Si el archivo está en modo lectura leerá y retorna el contenido desde la
posición donde esté hasta el final del archivo, si se ingresa un número se lee esa
cantidad de posiciones.

write() escribe desde la posición donde se encuentre, y si ya existe algo queda sobre
escrito, cuando termina anota la nueva posición en un puntero.

tell() Dice en que posicion esta el puntero de un archivo

seek() Desplaza el puntero hacia la posición indicada

readline() lee el texto desde la posición en que se localiza hasta encontrar el carácter
de escape retorno de línea (\n).

readlines() leer el texto desde la posición en que se localiza y creará un objeto de tipo
tupla que contendrá cada línea dentro del archivo.

writelines() escribe el texto contenido dentro de un elemento de tipo lista o tupla.

Ejemplos:

Clases

Una clase es básicamente una forma de crear tu propio tipo de dato, incluyendo procesos,
funciones, tipos de variables, etc.

Una clase está estructurada de la siguiente manera:


Los atributos son las características de la clase, es decir, si es entero, flotante, string, etc.
Los métodos son las funciones las cuales dicen que se puede realizar con los atributos

La forma de acceder a los atributos y los métodos es a través de el nombre de el nombre de la clase
(osea, la variable igualada a la clase) “.” y el nombre de la función/variable.

Sintaxis en Python:
Class Nombre de la clase :

Atributos
Variable = ‘ ‘ #En caso de un String o carácter
Variable = 0 #En caso de un entero

Métodos
def Nombre de método(self, Parámetros, o vacío):
Instrucciones

def saludo(self, Parámetros):


print(“Hola soy %s” % nombre)
Se utiliza “self” en los parámetros para referirse a el objeto, no a la clase sino directamente al
objeto.

De esta manera las variables serían globales, en cambio, si hacemos lo siguiente:

class Nombre de clase :


def __init__(self, variable1, variable2):
self._val1 = “ “
self._val2 = 0
self._val3 = variable1
self._val4 = variable2

Esta función es una inicializadora, lo que hace es declarar las variables o atributos que serán
utilizados en la clase. el colocarlos de esta forma hace que solo puedan ser accedidos desde la clase

def Nombre de función(self):


instrucciones

Existe algo llamado Registro, lo cual se asemeja a una clase pero sin métodos, los registros tienen
como objetivo almacenar distintos tipos de datos en una sola sección. Estos también permiten
guardar varios tipos de bajo un nombre, y son accedidos de la misma manera que se accede en una
clase. En python estos directamente no existen.

Ejemplo:

Aquí podemos ver cómo se inicializa la clase, cómo se crean las funciones, en el “main” podemos
ver que creamos una variable var. la cual es la variable que toma el tipo “calculadora” teniendo sus
atributos y métodos, también podemos ver abajo como se llama a cada uno de sus métodos.
Ejercicios:

Cree una clase rectángulo en la cual el usuario ingrese el valor de los lados, se
calcule automáticamente el area y perimetro y se impriman cualquiera de los datos
mencionados según pida el usuario.

Realice una lista de clases de palabras, las cuales serán escritas por el usuario, entre
los atributos se debe indicar el número de letras que poseen cada una, y si es
palindrome, luego, después de realizar eso, guardar las palabras palíndromas en una
carpeta “palindrome.bin” y el resto en una carpeta llamada “palabras.txt”.

Realice una clase la cual le pida un usuario la ubicación inicial de una pelota, la
ubicación final, y el tiempo transcurrido, que se calculen y se guarden como atributos
de una clase o registros la distancia total recorrida y la aceleración y estos sean
después almacenados como archivos .txt o .bin

También podría gustarte