Aprende Python: Guía para Principiantes
Aprende Python: Guía para Principiantes
Introducción 1.1
Deberías aprender Python 1.2
Comenzando con Python 1.3
Desvíos condicionales, haciendo que su programa tome decisiones 1.4
Valores None, cadenas y listas 1.5
Listas 1.6
Laços de Repetição - I 1.7
Laços de Repetição - II 1.8
Diccionarios 1.9
Modularización de código con Funciones 1.10
Expresiones Lambda 1.11
Conclusión 1.12
Resolución de los ejercicios 1.13
2
Introducción
Prefacio
El mundo está cada vez más conectado, la necesidad de desarrollar el pensamiento
computacional y la capacidad de solucionar problemas a través de la programación es
crescente.
Sobre el autor
Gabriel Schade Cardoso es desarrollador de software en la plataforma .NET desde 2008,
además, actúa como profesor en el curso de ciencias de la computación y sistemas para
internet.
Linkedin
Github
Blog personal
3
Introducción
Todos los capítulos tienen una lista de ejercicios para afianzar, es bastante recomendable
que busques materiales externos para complementar tu aprendizaje.
Espero que disfrutes de este viaje por el mundo de la programación utilizando uno de los
¡lenguajes más simples disponibles!
4
Deberías aprender Python
Caso você tenha um entendimento básico (bem básico) de inglês e deseja iniciar com uma
lenguaje de mercado, sugiero encarecidamente el lenguaje Python. Por eso, lo utilizaremos.
en este libro.
Este lenguaje es mantenido por la universidad UNIVALI y tiene el objetivo de facilitar la iniciación
en programación utilizando términos en portugués y una sintaxis simplificada.
Pero nuevamente, vale la pena enfatizar que, a pesar de su excelente enfoque educativo, Portugol no es
una lengua de mercado, por lo tanto, vamos a utilizar Python.
Suelo decir que tanto C# como F# son lenguajes de propósito general, es decir,
pueden aplicarse a varios escenarios, pero ninguna de ellas es tan versátil como
Python.
Crear scripts de automatización, por ejemplo, cada N minutos hacer un ping a todos los
páginas del sitio;
Grafos
Visión computacional;
Aplicaciones de escritorio multiplataforma;
Aplicativos Android;
Aplicaciones web;
Aprendizaje Automático;
5
Deberías aprender Python
Como si eso no fuera suficiente, Python sigue siendo un lenguaje con una sintaxis súper
simples. Haciendo que el código se parezca mucho a una versión simplificada de
inglés.
En este primer capítulo solo llegaremos hasta el comienzo del comienzo, el mayorhitda
computación, el grande: "¡Hola Mundo!"
print("Hola Mundo")
¡Y eso es todo! No hay nada omitido en el código, no hay declaración de ningún nombre complicado.
como espacio de nombres, importación de paquete, funciónprincipalnada.
Otro punto muy interesante sobre Python es que utiliza una sintaxis basada en
espaciado, algo que F# reutilizó y también hizo.
Esto hace que el lenguaje sea considerablemente más compacto, porque no es necesario puntos y
comas, llaves y todo el ruido normalmente presente en los códigos que los programadores
escriben.
6
Comenzando con Python
Es importante resaltar que para este libro estoy utilizando la versión 3.6 de Python y el Visual
Studio 2017 como IDE, podrás elegir un entorno diferente, pero recomiendo
utilizar lo mismo para evitar posibles conflictos.
V vamos comenzar desde el principio. Bien desde el mismo principio. Veremos variables, tipos y entrada
y salida (E/S).
Declarando Variables
La cosa más básica que podemos encontrar en un lenguaje de programación son las
variables. Pero, ¿qué son las variables?
De forma simples, las variables son los datos manipulados por tu programa. Estos datos
son almacenados de forma temporal en la memoria de su computadora.
Antiguamente era necesario tener mucho más cuidado al utilizar demasiadas variables, por culpa de
debido a la limitación de la memoria de las computadoras, hoy en día esto aún necesita ser tenido en cuenta
¿Pero cómo sabemos que las variables están almacenadas en la memoria? -Bueno, la memoria de
El computador funciona parecido a nuestro sistema social.
La memoria del ordenador hace lo mismo, cada espacio posible tiene una dirección
único, así su computadora sabrá dónde encontrar la información.
Imagina que la dirección son las coordenadas de latitud y longitud de un lugar, es bien
específico y no se repite. Pero con qué frecuencia pasas tu dirección en el sistema
de coordenadas?
7
Comenzando con Python
Resolviendo este problema creando nombres para los países, ciudades y calles. En ese mismo
lógica, no utilizamos el sistema de direccionamiento de memoria del ordenador, él es
demasiado complicado y ni siquiera tenemos control total de dónde se almacenan las cosas (y eso
es genial).
Para acceder a los datos en memoria, utilizamos identificadores, es decir, nombres. Una
una variable, al final de cuentas, es una composición de tres cosas: identificador de acceso +
dato almacenado + tipo.
Peraí, tipo? -É, tipo, mas por enquanto você não precisa se preocupar com isso.
¡Vamos al código!
¿Cómo crear una variable en Python? -Es muy simple, solo tienes que darle un nombre y asignarle un valor.
valor =42
Y eso es.
Lo interesante es que también puedes realizar operaciones con estos valores, mira:
valor =42
resultado = 42 + 10
Así como en muchas otras lenguas, puedes utilizar una variable como un valor.
Es decir, cualquier lugar donde pongas un valor, puedes reemplazarlo por una
variable.
valor =42
valor +10
valor =42
valor +10
imprimir(resultado)
8
Comenzando con Python
Vamos a practicar
Haz un algoritmo para resolver la ecuación z = x + y - 4, almacenando el resultado en
variable z. Considere que los valores iniciales de x e y son, respectivamente, 10 y 5.
Después de eso, muestra el resultado.
Atención
Se recomienda encarecidamente que intentes hacer los ejercicios antes de ver las
respuestas. Puedes encontrar las respuestasaquí, tenga cuidado de no recibir
spoilers de los próximos ejercicios.
Ahora que ya has realizado algunas pequeñas pruebas, hablemos de los tipos.
Recuerda que hablamos de que una variable se compone de: identificador, dato y tipo? Así es.
Creo que ha quedado muy clara la cuestión del identificador y del valor, pero tal vez el tipo
aún está confundido, pero tranquilo, te explico.
El tipo es lo que define la característica del dato que la variable almacena, en Python no
precisamos dizer explicitamente isso em nenhum momento, mas podemos deduzir.
En los ejercicios hicimos algunas operaciones matemáticas, pero no todos los datos son
números. A veces necesitamos almacenar valores de otros tipos, vamos a conocerlos:
Una cosa muy interesante sobre los tipos es que, una vez que los conocemos, podemos
simplemente trabajar como hicimos con los números antes. Quizás ni siquiera tengas
reparado, más en el segundo ejercicio utilizamos tanto números enteros como floats.
9
Comenzando con Python
print("¡Hola Python!")
Particularmente prefiero utilizar la sintaxis con comillas dobles, pero siéntete libre de usar la
que más le agradar.
Vamos juntos hacer un programa que solicite el nombre del usuario y luego lo muestre en
¡consola! Para solicitar una información al usuario utiliza la funciónentrada, conforme código:
Digite su nombre:
imprimir(nombre)
¿Legal, verdad? - Ten en cuenta que puedes utilizar la funciónentradapara obtener datos de cualquier tipo,
no solo para textos, sino que en los otros casos será necesario transformar el tipo.
Las variables de tipo lógico o booleanas se utilizan para definir verdades (True) y mentiras.
(Falso). Este tipo de variable solo puede almacenar estos dos valores.
Ve un ejemplo:
verdade =True
mentira =False
Generalmente en los otros idiomas, los valores de este tipo se escriben en letras minúsculas,
más en Python estos valores comienzan con letra mayúscula, pero las diferencias acaban ahí.
Así como los valores numéricos, también es posible realizar operaciones con valores
lógicos. En este caso utilizamos los operadores: no (no),e(y) eou(o).
10
Comenzando con Python
sol_pela_mañana =Verdadero
chuva_pela_tarde =False
Ahora vamos a aplicar los operadores, comenzando por el operador de negación (no):
Hojenãodeu sol pela manhã -> si la primera afirmación era verdadera, esta afirmación es
lie
Hojenãochoveu pela tarde -> se a segunda afirmação era mentira, esta afirmação é
verdad
¿Notaron algo?
¡El operador de negación invierte el valor de un valor lógico! Lo que antes era verdad ahora es
mentira y viceversa.
Mira en el código:
sol_pela_mañana =Verdadero
chuva_pela_tarde =False
El segundo operador es el operador. Este operador relaciona dos valores diferentes para
producir uno nuevo. En este caso, para que el resultado de una operación sea verdadero, los dos
Los valores relacionados deben ser verdaderos.
Hoy salió el sol por la mañana y llovió por la tarde -> será una mentira, pues definimos que
no hubo lluvia por la tarde.
Hoy salió el sol por la mañana y no llovió por la tarde -> será verdad, pues al negar el
valor de la lluvia, los dos valores relacionados devolverán verdadero.
El operador o funciona de forma bastante similar a e, pero en este caso el valor producido
será verdadero siempre que uno de los valores sea verdadero. Este caso es el que funciona
peor comparado con nuestro lenguaje, pero creo que aún ayuda a entender:
Hoy hizo sol por la mañana o llovió por la tarde -> si una de las afirmaciones es
verdadera, la frase es una verdad.
11
Comenzando con Python
Mira en el código:
Para ayudar a entender estas operaciones tenemos las famosas "Tablas de Verdad", mira:
Negación (no)
Valor Resultado
Verdadero Falso
Falso Verdadero
E (y)
Primer Valor Segundo Valor Resultado
Verdadero Verdadero Verdadero
Oo)
Primer Valor Segundo Valor Resultado
Además de estos operadores, los tipos lógicos también pueden producirse al comparar
valores de cualquier tipo, por ejemplo: 5 > 3 (¿cinco es mayor que tres?), esta expresión
¡retorna un valor lógico!
12
Comenzando con Python
Operador Descripción
Perceba que para compararmos os valores utilizamos dos iguales.== , eso es porque cuando
utilizamos solamente uno igual estamos asignando un valor. Mira:
x = 5
y = 10
x = y # -> estamos haciendo que la variable x reciba el mismo valor que la variable y
x == y# -> estamos comparando si los valores de x e y son iguales
Let's practice
1. Haga un algoritmo que solicite un número al usuario
2. Haga un algoritmo que solicite el nombre del usuario y luego escriba el nombre de la persona
sin consola.
3. Haga un algoritmo que pregunte al usuario cuántos años tiene, después de eso,
escribeVerdaderono console, caso él ya haya alcanzado la mayoría de edad (18 años), caso
contrario escribaFalso.
13
Comenzando con Python
Atención
Se recomienda encarecidamente que intentes hacer los ejercicios antes de ver los
respuestas. Puedes encontrar las respuestasaquí.
14
Desvíos condicionales, haciendo que tu programa tome decisiones
Crearemos una desviación condicional, es decir, haremos que el programa siga por un
camino u otro de acuerdo con una condición.
Así como casi todo lo que he estado diciendo por aquí, la sintaxis para crear un desvío
El condicional en Python es bastante simple.
Lo primero que necesitamos entender es: cuando hablamos de una condición, significa
que necesitamos saber si algo es verdad o mentira, es decir, necesitamos utilizar un tipo
lógico.
La idea detrás de las desvíos condicionales se utiliza todo el tiempo en nuestras conversaciones de
día a día, mira este ejemplo:
leite_em_estoque =True
ifleite_em_estoque
Compre leche
else:
Comprei agua
15
Desvíos condicionales, haciendo que tu programa tome decisiones
Perceba también que después de la condición es necesario colocar los dos puntos, eso es
necesario para la sintaxis de Python.
Crea una variable numérica para representar una calificación de un examen, después de eso
Exiba a mensagem 'Aprobado' si la nota es mayor o igual a 7, de lo contrario
exiba a mensagem "Reprobado".
nota =5
si nota >=7:
Aprobado
sino:
Reprobado
En este caso, puedes optar por dos enfoques distintos: guardar el resultado de la
comparación en una variable lógica y compararla o utilizar la expresión directamente en
comandosi.
También sucede que necesitamos tratar más de dos casos, es decir, hay situaciones en que
umsee umsenaonão no son suficientes para atender todas las condiciones, mira este ejemplo:
Un alumno que saque más de 7 ya está aprobado, si saca 7 o 6 irá a recuperación y
Abajo de esto estará reprobado. ¿Cómo hacer?
nota =6
si nota >7:
Aprobado
else:
si nota == 7 o nota == 6:
print("Recuperación")
else:
Reprobado
16
Desvíos condicionales, haciendo que tu programa tome decisiones
Para casos donde es necesario una expresión: sino si, utiliza el comandoelifEste
comando es una mezcla de los dos anteriores. Funciona como unsi, pero solo será
testado caso osianterior ter resultado emFalso, mira:
si nota >7:
Aprobado
elifnota == 7 o nota == 6:
Recuperación
otro:
print("Reprobado")
Este ejemplo es bastante simple, pero ya nos da para entender la utilización delelif. É
es importante resaltar también que este comando de desvío permite solo unasies un
sinoque estén conectados, pero puedes insertar cuántoselifforem necessários.
Valores confiables
Otro concepto interesante en Python es la cuestión de los valores Truthy, este concepto define
cuando los valores son confiables, o verdaderos para su uso. Por ejemplo, en el caso de un
número, cualquier valor que sea diferente de cero es un valor confiable (incluyendo números
negativos).
Lo mismo se aplica para textos (cadenas), cualquier texto diferente de vacío es considerado
como confiable, es decir, solo el valor "" no lo es.
Esta funcionalidad permite que la variable sea evaluada directamente, sin que necesitemos
hacer la comparación, mira el ejemplo con un valor entero:
valor =4
si valor != 0:
print("El valor no es cero")
ifvalor
El valor no es cero
Los dos códigos harán lo mismo, ¡pero la segunda forma es aún más simple! O
lo mismo sirve para las cadenas:
17
Desvíos condicionales, haciendo que tu programa tome decisiones
prueba
si texto !="":
print("El texto no está vacío")
iftexto:
print("El texto no está vacío")
nota1 =7
nota2 =10
deu_sol =True
si no deu_sol:
Chovió
Esta otra forma es conocida como condición ternaria. Se utiliza principalmente para
condiciones cortas y permite una sintaxis más ágil, generalmente de una sola línea.
El orden de las cosas cambia un poco, pero aún se parece bastante al lenguaje natural.
Mira esta frase:
nota =6
si nota >=7:
Aprobado
sino:
Reprobado
Ahora veamos cómo queda esta misma operación al utilizar una condición ternaria
nota =6
print("Aprovado" if nota >= 7 else "Reprobado" z )
18
Desvíos condicionales, haciendo que tu programa tome decisiones
El orden de las palabras cambia un poco, pero no te asustes, vamos con calma que pronto
te acostumbras.
Vamos a Practicar
1. Haga un algoritmo que solicite 3 notas al usuario, calcule el promedio e indique si el
el alumno fue aprobado o reprobado (la nota debe ser mayor o igual a siete para el alumno)
ser aprobado).
2. Haga un algoritmo que solicite el año en que nació el usuario, después de eso, haga el
programa describir si el usuario cumplirá o ya cumplió 18 años este año.
Niño de 0 a 11 años;
Adolescente de 12 a 18 años;
Joven de 19 a 24 años;
Adulto de 25 a 40 años;
Meia Idade para 41 até 60 anos;
Anciano mayor de 60 años.
4. Haga un programa que solicite al usuario 2 valores, utilice una condición ternaria para
escribir cuál es el mayor valor: el primero o el segundo (en caso de que los valores sean iguales,
considere el segundo).
Atención
Se recomienda encarecidamente que intentes hacer los ejercicios antes de ver los
respuestas. Puedes encontrar las respuestasaquí.
19
Valores None, Cadenas y Listas
ValoresNone se utilizan para describir variables que fueron creadas, pero que no
no tienen ningún valor asociado a ellas. Espera, ¿cómo así?
Yo explico.
Para utilizar una variable, necesitas declararla antes, ¿verdad? ¡Hagamos una prueba!
Ejecuta el código a continuación:
imprimir(teste)
Este código, por más simple e inofensivo que pueda parecer, genera un error en su
aplicación.
Este error ocurre porque la variablepruebano fue creada antes, entonces ocurre lo que
chamamos deNameError.
Pero, ¿y si no queremos que este error ocurra, pero al mismo tiempo tampoco...
queremos asignar memoria para la variableprueba, ¿cómo hacer? - Usa elNinguno!
teste =None
imprimir(teste)
¡Problema resuelto!
Otro punto importante es que las desviaciones condicionales siempre resultarán enFalsocuándo
realizado con una variable que contenga el valorNinguno:
Ninguno
ifteste:
print(teste)# -> no se ejecutará
20
Valores None, Strings y Listas
Este tipo permite una serie de operaciones diferentes. Podemos verificar si el texto contiene
Sómente números, colocar a primeira letra maiúscula, substituir uma letra no texto e muitas
otras cosas.
Por definición, una función es un comportamiento que pertenece a algo, mientras que una
una variable es una característica de algo.
Pero su coche también arranca, acelera y frena. Todas estas cosas son comportamientos, o
sea, son acciones del coche. Las acciones se traducen a un programa a través de funciones.
Vamos hacer el primer ejemplo juntos, vamos a transformar la primera letra de una cadena.
EN MAYÚSCULO, HAREMOS ESTO A TRAVÉS DE LA FUNCIÓNCAPITALIZAR:
gabriel
[Link]()
imprimir(nome_maiusculo)# -> Gabriel
Nota que cuando ejecutamos una función es necesario utilizar() , esto ocurre porque
existen casos donde necesitamos informar valores para realizar una acción, para sustituir
una letra con la funciónreemplazar, por ejemplo.
En este caso necesitamos informar dos valores diferentes: el primero indica la letra que será
sustituyó y el segundo indica la letra que la sustituirá, mira:
gabriel
[Link]('e','a')
print(nombre_con_letra_alterada)# -> gabrial
Otra función muy útil en las cadenas es la funciónformato, ella permite, como su nombre sugiere,
formatear textos.
21
Valores None, Cadenas e Listas
Entonces, ¿puedo poner un texto en cursiva? - No, no estamos hablando de este tipo de
formateo.
Hola {0}
Olá Gabriel
Ok, pero esto se volvió demasiado confuso! - Tranquilo, no es nada del otro mundo.
Como se puede ver en el código, todas las ocurrencias de este formato son reemplazadas.
¡pelo parámetro!
De hecho, existe una segunda forma de mezclar texto libre con variables, se
llama interpolación de cadenas.
Yo considero esta sintaxis más simple de entender. Para hacer una interpolación de
strings necesitamos colocar la letra 'f' antes de la cadena.
Hola {nombre_mayusculo}
Hola Gabriel
22
Valores None, cadenas y listas
Ahora vamos a la última función de cadenas que voy a mostrar aquí, se llamadividir!
Esta función es muy útil y bastante popular. En este caso, elegimos un carácter para
quebrar o texto em partes diferentes. Por exemplo, imagine uma variável com o seguinte
valorplato, tenedor, vaso.
Esta variable contiene el nombre de algunos artículos de cocina, pero ¿y si tuviéramos que separarlos?
¿los? -Sencillos, utiliza la funcióndividirseparando los valores por la coma!
Pero si solo podemos almacenar un valor en una variable, ¿cómo guardaríamos los 3 elementos?
Para nuestra suerte hay un tipo especial llamado 'chamadolista'. Este tipo funciona como una colección.
itens = itens_cozinha.split(",")
Ok, pero ahora, ¿cómo hago para acceder a los valores individuales? -Sencillo, utilizamos un
índice.
No te preocupes, es muy simple, después de todo ya has trabajado con índices en la funciónformato,
eso mismo, los índices son números secuenciales que en el caso de Python comienzan con cero
(0).
En el caso de las listas utilizamos corchetes para definir los índices, mira:
itens_cozinha.split(",")
imprimir(itens[0])# -> plato
print(itens[1])# -> tenedor
print(itens[2])# -> vaso
Siempre tenemos que tener cuidado al acceder a un índice, ya que cuando accedemos a índices
¡Más allá de los límites de la lista se genera un error!
23
Valores None, Cadenas y Listas
Ten en cuenta que siempre el mayor índice de la lista será igual a su tamaño - 1.
En nuestro ejemplo tenemos tres elementos diferentes, por lo tanto el último índice válido es 2.
¡Vamos a practicar!
1. Haz un programa que solicite el nombre del usuario y después de eso haga un saludo.
Hola {nombre ingresado por el usuario}
3. Haga un programa que solicite la edad del usuario, verifique si el texto informado solo
contiene números. Si contiene solo números, muestre el mensaje: "Tienes "
{idade digitada} años.
inválida.
4. Haga un programa que solicite el nombre completo del usuario y muestre solo su
segundo nombre/primer apellido.
Atención
Se recomienda encarecidamente que intentes hacer los ejercicios antes de ver los
respuestas. Puedes encontrar las respuestasaquí.
24
Listas
¡No necesitas crear una variable para cada elemento de la lista! Como vimos en el capítulo
pasado, puedes manipular múltiples valores bajo una única variable. Estas variables se
¡chamamListas!
Así como los ejemplos descritos anteriormente, todo tipo de información que necesita ser
agrupada en algún tipo de conjunto utiliza este recurso, un ejemplo de esto fue la función
dividirque vimos en el capítulo anterior.
Vamos empezar viendo cómo crear una lista vacía, es decir, una variable que se identifique.
con el tipo lista, incluso sin contener nada dentro de sí, al igual que muchas otras cosas,
Es muy fácil definir una lista en Python, solo hay que declarar el nombre de la variable y utilizarla.
colchetes vacíos, veja:
lista_de_compras = []
¡Así de simple! Además, también puedes crear la lista ya incluyendo algunos elementos en ella.
¡Basta separar cada elemento de la lista por coma!
lista_de_compras = ["Pão","Água","Leite","Ovos"]
Perceba que cada item de la lista es inicializado individualmente y separados por coma. Usted
¿Recuerdas cómo accedemos a cada elemento de la lista? -¡A través de su índice!
Es importante recordar que el índice siempre comienza en cero, intentar obtener el primer elemento.
utilizar el índice 1 es un error bastante común entre los principiantes, pero con el tiempo te
acostumbra.
Un punto interesante en Python es que también puedes acceder a la lista de atrás para
frente, pero ahora el índice comienza desde -1:
25
Listas
print(lista_de_compras[-1])
imprimir(lista_de_compras[-2])
print(lista_de_compras[-3])
print(lista_de_compras[-4])
Puedes cambiar el valor de un elemento en una lista tan fácil como obtenerlo, solo tienes que utilizar el
índice e realizar a alteração como uma variável normal.
Zumo de Naranja
El código cambia el ítem 'Leche' por 'Jugo de Naranja', funcionando de la misma manera que
una variable común.
Hasta ahora, solo hemos cambiado el valor de ítems ya existentes, pero si necesitamos agregar uno
nuevo ítem, ¿cómo lo hacemos?
¿Qué ocurre si intentamos acceder a la posición después del final de la lista? -En nuestro caso, la
posición 4. Veja:
Café
Este código no funcionará, ya que esta asignación debe ser utilizada solo para alterar el
valor de ítems ya existentes!
Para incluir un nuevo elemento es necesario utilizar la funciónagregare informando o item que
será adicionado en la lista, conforme al ejemplo.
lista_de_compras.append("Café")
26
Listas
¡Ahora sí!
Podemos utilizar este comando para verificar si un ítem está en la lista, solo hay que utilizar la
siguiente sintaxis:elemento , esto devolverá un valor lógicoVerdaderoouFalso,
en la lista
si "Café" en lista_de_compras:
Necesito comprar café
Otra tarea bastante común es la necesidad de contar cuántos elementos hay en una lista determinada.
posee, para hacer esto utilizamos la funciónlenembutida en el lenguaje.
La funciónlenes una abreviatura paralength, palabra en inglés para tamaño. Esta función
debe recibir una lista como parámetro y devolverá un entero con la cantidad de
elementos.
Ya hemos visto cómo agregar elementos a una lista, cómo verificar si un elemento está contenido en ella y
hasta verificar la cantidad de elementos, pero aún no hemos visto cómo eliminar un elemento de la lista.
¿Alguna pista?
lista_de_compras[2] =None
El razonamiento hasta cierto punto tiene algo de sentido, si digo que no hay nada en la posición 2,
entonces este ítem no debe existir, ¿verdad? -Incorrecto.
27
Listas
En el primer caso dices que la posición 2 existe, pero no hay nada en ella, mientras que en
segundo caso, tú la quitas de la lista.
Ok, pero ¿cómo hacemos para removerla de la lista? De la misma forma que tenemos una
abreviatura paralenghttambém hay una abreviatura paradelete. Este comando se llama
del.
dellista_de_compras
Simples así.
Ahora es importante que notes que la posición 3 no dejará de existir. Lo que sucede es
El hecho es que todos los elementos que estaban en una posición mayor que la del elemento excluido son
desplazados una posición a la izquierda.
Vamos a practicar
1. Haz un programa que inicialice una lista con los nombres de las personas de tu familia.
2. Haga un programa que inicialice una lista vacía y solicite al usuario 3 nombres de
ciudades, una por vez, cada vez que el usuario escriba un nombre, el programa debe incluir
este nombre en la lista de ciudades.
3. Haga un programa que inicialice una lista con varios números diferentes, luego
Disco, solicite al usuario un número, verifique si el número está o no en la lista y muéstrelo.
una mensaje notificando al usuario del resultado.
4. Haz un programa que inicialice una lista vacía y la llene con 5 nombres diferentes
digitados por el usuario, después de eso solicita un número de 0 a 4 y elimina el elemento
de esta posición.
Atención
Se recomienda encarecidamente que intentes hacer los ejercicios antes de ver los
respuestas. Puedes encontrar las respuestasaquí.
28
Listas
29
Laços de Repetição - I
En el capítulo anterior se explicó el funcionamiento de las listas, así que continuaremos usando
listas aquí.
¡A través de su índice! Vamos a hacer un ejemplo creando una lista de diez números, mira:
numeros = [10,20,30,40,50,60,70,80,90,100]
numeros = [10,20,30,40,50,60,70,80,90,100]
print(numeros[0])
print(numeros[1])
print(numeros[2])
imprimir(numeros[3])
print(numeros[4])
print(numeros[5])
imprimir(numeros[6])
print(numeros[7])
print(numeros[8])
print(numeros[9])
Perceba que esta tarea es bastante trabajosa, además de eso, podemos tener problemas con
listas mayores. Este tipo de tarea repetitiva puede ser sustituida por un bucle de repetición!
numeros = [10,20,30,40,50,60,70,80,90,100]
Mucho más simple, ¿no es así? Pero calma, vamos a entender cómo funciona esto
comando.
30
Laços de Repetição - I
Vamos allá, primero la sintaxis para el comando: es necesario usar la palabra reservadapara
para iniciar el comando, parecido con lo que hicimos con el comandosi.
Entonces declaramos una variable, seguida del comandoene do nome de uma variável que
sea una lista.
Con esta estructura definimos que, la variable que creamos (número, en nuestro ejemplo)
recibirá un elemento de la lista en cada iteración del bucle, es decir, primero la variablenúmero
recibe el primer valor de la lista, ejecuta todas las operaciones del bucle de repetición (en este
caso apenas un print) y vuelve al inicio del bloque, cambiando el valor de la variable a el
próximo item de la lista.
Esto ocurre hasta que la lista llegue al final, en este momento el bucle de repetición se cierra y el
el programa continuará normalmente.
¿Pero entonces solo podemos utilizar el bucle de repetición para recorrer listas? -Definitivamente,
no.
Podemos utilizarlos también para repetir una serie de instrucciones, incluso si no hay una
lista envuelta, para hacer esto tenemos la funciónrangodisponible en Python.
valor =0
forindiceinrange(5):
valor +=10
imprimir(valor)
En este caso se mostrarán los valores: 10, 20, 30, 40 y 50. Esto es porque la funciónrango
indica que el lazo debe repetirse 5 veces. Para garantizar eso, ella crea una lista con los
valores [0, 1, 2, 3, 4].
Esta función crea una lista en este formato por defecto, pero es posible cambiar esto.
comportamiento a través de parámetros. Es posible, por ejemplo, utilizar dos parámetros
diferentes, uno con el valor inicial y otro con el valor límite.
porvalorenrango(5,10):
imprimir(valor)
En este caso, la lista creada contendrá los valores: [5, 6, 7, 8, 9]. Ten en cuenta que el valor límite nunca es
incluido en la lista, él de hecho, define el límite de ella y no su último valor.
31
Laços de Repetição - I
porvalorinrango(0,10,2):
imprimir(valor)
En este caso, la lista resultante es: [0, 2, 4, 6, 8], muy agradable, ¿verdad?
Ahora que ya hemos visto las variaciones delrango¡Y de este comando, vamos a practicar!
Vamos a practicar
1. Haz un programa que inicialice una lista de compras con 5 artículos diferentes y muestre
todos utilizando un bucle de repetición.
2. Haga un programa que inicialice y cree una lista con los valores del 1 al 10 y luego
exiba apenas los números pares.
3. Haz un programa que muestre todos los valores impares entre 50 y 100 utilizando el
rango.
4. Haga un programa que inicialice una lista vacía, solicite al usuario 10 números
diferentes, uno por vez. Si el número ingresado es par, súmale uno a su valor.
Después de eso, muestra los 10 números digitados.
5. Haz un programa que muestre las tablas de multiplicar del 1 al 10 en el formato: '2 x 3 = 6', (utiliza
dos comandospor)
Atención
Se recomienda encarecidamente que intentes hacer los ejercicios antes de ver los
respuestas. Puedes encontrar las respuestasaquí.
32
Laços de Repetición - II
numeros = [10,20,30,40,50,60,70,80,90,100]
La idea detrás del comandomientrases repetir una tarea mientras una condición sea
verdadera, es decir, en la declaración del comando necesitamos realizar una comparación, en caso de que
esta comparación sea verdadera el bloque de instrucciones delmientrasserá ejecutado.
El programa volverá al inicio del bloque después de que la última instrucción de este comando sea
ejecutada, haciendo de nuevo la comparación.
numeros = [10,20,30,40,50,60,70,80,90,100]
posicao =0
mientras posición < len(números):
print(numeros[posicion])
posición +=1
Note que acaba quedando un poco diferente del comandopara. En este caso necesitamos
almacenar la posición de la lista en una variable y alterarla manualmente en cada repetición del
lazo.
33
Laços de Repetição - II
numeros = [10,20,30,40,50,60,70,80,90,100]
posicao =0
mientras posicao < len(numeros):
print(numeros[posicion])
Si por alguna razón aleatoria decides que quieres hacer un bucle infinito,
basta utilizar el comando de esta forma:
mientras True:
INFINITO
Ahora vamos a dos nuevos comandos que pueden ser utilizados en un bucle de
repetición, debo decir que, no me gusta ninguno de ellos, pero existen y no pretendo
ignóralos.
Son ellos:continuary oromper, ambos interfieren en las interacciones del bucle de repetición.
34
Laços de Repetição - II
Vamos hacer un ejemplo para escribir todos los elementos de la lista de números, excepto a
posición 5:
posicao =0
mientras posicion < len(numeros):
posicion +=1
si posicao == 5:
continuar
print(numeros[posicao-1])
Esa es la cuestión que me hace no gustar de esta instrucción, simplemente puedes reestructurar.
las instrucciones para que no necesite utilizar elcontinuar, mira:
posicao =0
mientras posicion < len(numeros):
posicion += 1
si posicao !=5:
print(numeros[posicao-1])
posicao =0
mientras posicao < len(numeros):
posición += 1
ifposicao ==5:
romper
imprimir(numeros[posicao-1])
Con el código anterior, se mostrarían los números de la posición 0 hasta la posición 4. Ninguno
número después de la posición 4 se mostrará en la consola, porque elromperinterrumpió todo el
bucle de repetición.
35
Laços de Repetição - II
posicao =0
mientrasposicao <5:
print(numeros[posicion])
posicion +=1
Vamos a Practicar
1. Haz un programa que inicialice una lista de compras con 5 artículos diferentes y muestre
todos utilizando un bucle de repeticiónmientras.
2. Haz un programa que inicialice una lista con los valores de 1 a 10 y luego muestre
apenas los números pares utilizandomientras.
3. Haz un programa que inicialice una lista vacía, solicite al usuario 10 números
números impares diferentes, uno por vez. Si el número ingresado es par, solicita de nuevo
un número, hasta que el valor sea un número impar. Después de eso, muestra los 10 números
digitados.
4. Haga un programa que muestre un menú para que el usuario seleccione una de las tres opciones:
1 - Hola mundo
2 - Yo programo en Python
3 - Lazos de repetición
El programa debe solicitar al usuario una de las 3 opciones, en caso de que el usuario ingrese un valor.
diferente de las opciones (1, 2 o 3), el programa debe presentar nuevamente el menú de
opciones hasta que se elija una de ellas. Por último, el programa debe mostrar un mensaje
diferente para cada opción.
numeros = [1,2,3,4,5,6,7,8,9,10]
posicao =0
mientras posicao < len(numeros):
posicion += 1
si posición == 3:
continuar
elifposicao == 6:
romper
print(numeros[posicao-1])
36
Laços de Repetición - II
Atención
Se recomienda encarecidamente que intentes hacer los ejercicios antes de ver los
respuestas. Puedes encontrar las respuestasaquí.
37
Diccionarios
Imagina que deseas almacenar datos sobre una persona. Necesitarás guardar el
nombre, apellido, edad y cuanta más información sea necesaria. Es posible crear
¿Todas estas variables separadas? ¡Por supuesto que sí!
Si alguna vez has visto un objeto enJSON, verás que hay muchas similitudes
entre estas dos cosas, ve cómo se parece un diccionario en Python:
pessoa = {
Gabriel
Schade
"idade":27
}
En nuestro caso, las claves son valores del tipocadena, pero no hay una obligatoriedad
nisso (a pesar de ser bastante común) mientras que los valores comúnmente varían de
tipos.
Al igual que en las listas, podemos alterar y obtener los valores de un diccionario, pero en este
caso ao invés de utilizarmos um índice, utilizamos a chave. Isso faz com que os dicionários
sean extremadamente simples de trabajar, vea el siguiente código:
Schade Cardoso
Este código es muy similar a cambiar el valor de un elemento en la lista y hace lo mismo,
más esta vez alterando un valor de un diccionario.
38
Diccionarios
Podemos hacer el mismo proceso para obtener un valor del diccionario y almacenarlo en
otra variable, mira:
pessoa["nome"]
pessoa["cpf"]
Sabiendo esto, existe otra forma en Python para obtener un valor de un diccionario.
Podemos hacer esto a través de la funciónobtener. Para esta función necesitamos enviar dos
informaciones: la clave es un valor predeterminado para el caso de que la clave no exista.
[Link]("cpf", None)
print(cpf)# -> Ninguno
[Link]()
forchaveinchaves
imprimir(clave)
valores = [Link]()
porvalorinvalores:
print(valor)
39
Diccionarios
Podemos utilizar estas funciones para escribir cada clave y su respectivo valor, por
ejemplo
chaves = [Link]()
forchaveinchaves
persona[chave]
clave + ': ' + str(valor)
imprimir( texto )
El código anterior fue separado para que quede claro el paso a paso de las instrucciones, pero usted
puedes incluir todas estas instrucciones en una sola línea de código si lo consideras mejor
cómodo
[Link]()
forchaveinchaves
print( chave, ":", str( pessoa[chave]) )
Por fin, al igual que hicimos con las listas, también podemos eliminar un elemento del
diccionario con el comandodelEs importante decir que eldeleliminar completamente o
elemento clave-valor del diccionario.
delpessoa
print(pessoa["sobrenome"])
El código anterior generará un error, porque a partir del momento en que el comandodelfue
aplicado a la clave-valor "apellido", deja de existir en el diccionario, por lo tanto, toma
¡cuidado!
Vamos a practicar
1. Haga un programa que cree un diccionario para definir un producto, que contenga su
descripción y su precio.
2. Haz un programa que inicialice una lista de compras con 5 artículos diferentes, donde
cada ítem es un diccionario que contiene la descripción y el precio del producto. Después de eso,
recorra a la lista y muestre la información de cada ítem.
3. Utiliza la lista de compras del programa anterior para identificar cuál es el producto más
barato y cuál es el producto más caro de la lista de compras.
40
Diccionarios
4. Haz un programa que tenga una lista con 5 personas, donde cada persona tiene su
nombre y apellido almacenados en un diccionario, después de eso, muestra todos los nombres
y apellidos. Para complicar un poco las cosas, vamos a simular que estos datos
fueron obtenidos de la web y con eso recibimos algunas inconsistencias. Dos de los cinco
las personas tienen el diccionario donde las claves están en mayúsculas y los otros tres en
minúsculo.
Atención
Se recomienda encarecidamente que intentes hacer los ejercicios antes de ver los
respuestas. Puedes encontrar las respuestasaquí.
41
Modularización de código con Funciones
Este capítulo tal vez sea un poco más teórico que los anteriores, pero no te preocupes,
¡Vamos a programar bastante aquí también!
La creación de soluciones más complejas y programas más grandes se convierte en una tarea bastante
difícil se continuamos programando de la manera que estamos. Necesitamos hacer que el
programa sea separado en piezas más pequeñas.
De esta manera, cada vez que necesitemos resolver un problema más complejo,
podemos conectar estas piezas para formar una solución.
Para eso, necesitamos que estas piezas sean reutilizables, así como piezas de lego.
42
Modularización de código con Funciones
De manera general, cada función debe realizar solo una acción. De esta forma, se vuelve más
reutilizable y útil para sus programas.
Siempre que tengas una función que realiza más de una tarea, mantente atento, eso
probablemente es una señal de código malo. Tal vez esta función deba ser dividida en dos
o más funciones.
defola_mundo():
print("Hola mundo")
43
Modularización de código con Funciones
Por fin, estamos incluyendo los caracteres() , a partir de aquí utilizamos los: y todos los
los comandos que pertenecen a este bloque siguen las mismas reglas que los comandos ya vistos:
si, , paray etc.
mientras
Pero hay una diferencia importante, al definir una función no hacemos que aquellos
los comandos se ejecuten, solo estamos describiendo lo que sucederá cuando
ejecutaremos la función.
Para ejecutar una función necesitas utilizar su nombre seguido de los paréntesis, mira:
Puedes colocar dentro de una función cuántos comandos desees y todos ellos serán
ejecutados tan pronto como se ejecute la función.
Después de que una función es definida, es como si la llamada para ejecutarla fuera un nuevo
comando de Python, a partir de agora, estamos creando nuestras propias instrucciones y ellas
se comportan de la misma manera que las funciones de Python.
Mira cómo queda el flujo de ejecución del programa considerando que esta llamada es
realizada entre operaciones que ya vimos antes.
numero =10
numero2 =15
hola_mundo()
resultado = numero + numero2
Cuando esto sucede, la ejecución del código principal se "congela" para ejecutar todas las
instrucciones de la función. Después de eso regresa a la siguiente instrucción.
44
Modularización de código con Funciones
Parámetros
Es común necesitar datos para realizar algún tipo de operación. Mira la funciónimprimir
por ejemplo, la tarea de esta función es escribir cualquier cosa en la consola ¿verdad? -Cierto.
def elevar_al_cuadrado(numero):
imprimir(numero * numero)
45
Modularización de código con Funciones
¡Basta con colocar el parámetro entre los paréntesis en la definición de la función! Como ya
utilizamos varias veces la funciónimprimirdebes imaginar cómo pasamos un número
para esta función ¿no?
elevar_al_cuadrado(9)
elevar_al_cuadrado(9)
elevar_al_cuadrado(4+5)
nueve
elevar_al_cuadrado(nueve)
En todos los casos, el resultado de la función será el mismo, después de todo estamos pasando lo mismo
¡parámetro!
Ahora vamos a crear una función que sume dos números diferentes! Sí, puedes crear
¡Múltiples parámetros! Solo sepáralos por coma, mira:
defsoma(numero1, numero2):
imprimir(numero1 + numero2)
suma(2,5)# -> 7
soma(3,3)# -> 6
soma(10,5)# -> 15
Legal, ¿no?
Además, no hay restricción sobre el tipo enviado por parámetro, veamos otro ejemplo:
defsaudacao(nome):
print("Hola", nombre)
Retornos
Además de recibir información (parámetros), las funciones también pueden producir resultados.
Estos resultados se llaman retornos.
46
Modularización de código con funciones
Por otro lado, no tiene mucho sentido la funciónsomaapenas escribir el resultado de la suma.
La función se volvería mucho más reutilizable al producir un resultado. De esta manera, el
el desarrollador podría hacer lo que quisiera con el resultado, incluso escribirlo.
Basta pensar que la función pasa a comportarse como una expresión, por lo tanto conseguimos
realizar atribuciones, sumas y cualquier otra operación que podríamos hacer con una
expresión. Mira:
suma(1,2)
print(resultado)# -> 3
resultado = suma(2,2) * 3
imprimir(resultado)# -> 12
imprimir(suma(3,7))# -> 10
defejemplo(valor):
valor * 2
si numero >10:
returnnumero
valor = valor + 5
returnvalor
47
Modularización de código con Funciones
Es importante que entiendas que este código no está necesariamente equivocado, pero
se crea una complejidad que no necesita existir, mantendremos la funcionalidad y
reescríbelo para tener solo una instrucción de retorno, mira:
defejemplo(valor):
Ninguno
valor *2
returnresultado
En Python podemos acortar esta función un poco más utilizando la desviación condicional.
ternario
defejemplo(valor):
numero = valor *2
returnnumeroifnumero >10elsevalor +5
Con esto pasamos por todos los conceptos involucrados en la creación de una función!
Vamos a practicar
1. Haz un programa que escriba "Mi primera función", esta escritura debe ser
realizada a partir de la llamada de una función.
2. Haga un programa que solicite el nombre del usuario y la edad del usuario, después de eso
{nombre} tiene {edad} años.
una función.
3. Haga un programa que solicite dos números al usuario y muestre la multiplicación de ellos.
La multiplicación debe calcularse en una función.
4. Haga un programa que solicite al usuario tres números diferentes y muestre el doble del
mayor número. Para hacer esto separa tu código en dos funciones diferentes: Una
función para retornar el mayor de los tres números y otra función para doblar el número.
48
Modularización de código con Funciones
5. Haz un programa que inicie una lista vacía, después de eso solicita 5 nombres
diferentes al usuario (utiliza bucle de repetición). Cada nombre digitado debe ser
añadido a la lista y por último, todos los nombres deben ser escritos en la consola. Utiliza una
función para solicitar y retornar el nombre ingresado, una función para agregar el nombre a
lista (pasando el nombre y la lista como parámetro) y otra función para escribir todos los
nombres en la consola.
Atención
Se recomienda encarecidamente que intentes hacer los ejercicios antes de ver las
respuestas. Puedes encontrar las respuestasaquí.
49
Expresiones Lambda
Para comprender este post es esencial que hayas comprendido antes el tema del
capítulo anterior: funciones.
Todas las características de una función lambda son muy parecidas a las funciones
comunes que ya hemos visto, con excepción de dos cosas: no tienen una definición en
código, es decir, se declaran como variables y no poseen undefpropio; y ellas son
funciones de una línea, que funcionan como si hubiera la instruccióndevolverantes de
comando.
La función anterior es una función de suma normal, al ser una función de una línea podemos
transfórmala en una función lambda, o en una expresión lambda. Para eso, utiliza el
comandolambdaconforme código:
Recordando que el cuerpo de la expresión siempre debe contener solo una línea de comando y
ella funciona como si hubiera una instrucción dedevolverantes de esta línea.
Por lo tanto, las dos funciones de suma son definiciones diferentes para la misma función:
print(suma(1,2)) # -> 3
print(soma_lambda(1,2))# -> 3
También podemos tener una función lambda sin parámetros, cuando sea el caso, basta
omitimos la declaración de parámetros normalmente:
lambda:3+2
50
Expresiones Lambda
En la práctica, esta función no tiene mucho sentido, pero es un buen ejemplo para entender el
qué está sucediendo. En este caso creamos una función llamadaobtener_valorque
siempre retorna el número cinco. La definición estándar de esta función sería la siguiente
manera
defobter_valor():
regresar3+2
Perceba que uno de los puntos fuertes de las expresiones lambda es su síntesis, son una forma
rápida de definir funciones simples.
¡Mira que estamos utilizando una función lambda que no tiene retorno ni parámetros!
Pero todo funcionará correctamente.
Tal vez te parezca un poco extraño, después de todo, ya había escrito antes que las expresiones lambda
funcionan como si hubiera undevolverantes de la instrucción y la funciónimprimirno genera
retornos. Entonces, ¿cómo lo entiende?
Uso
Ok, entendí el concepto, pero ¿para qué sirve eso? Ahora viene la parte más complicada.
de esta lección, existen funciones que pueden recibir otras funciones como parámetro!
Sí, no leíste mal, una función recibe como parámetro a otra función. Estos son los
ejemplos donde las expresiones lambda son más utilizadas.
Vamos hacer un ejercicio utilizando los conceptos que ya sabemos y luego rehacerlo
¡utilizando expresiones lambda!
Vamos declarar una lista con varios números diferentes, después de eso, copiaremos
solo los números pares para una segunda lista y los mostraremos en la consola. Tranquilo,
¿cierto?
51
Expresiones Lambda
numeros = [0,2,3,4,5,7]
pares = []
fornumeroinnumeros
si numero % 2 == 0:
[Link](numero)
Utilizamos un bucle de repetición para filtrar la lista que contiene todos los
números para una nueva lista que contenga solamente los números pares.
En este bucle de repetición obtenemos los números uno por uno, verificamos si es par o no y
caso sea, lo añadimos a la lista de pares.
Este comportamiento de filtrar una lista es bastante común, por eso, el lenguaje
ofrece un recurso para simplificar esta implementación. Ese recurso es la funciónfiltro!
Esta función recibe dos parámetros: uno de ellos es la lista que se va a filtrar, claro, y el otro
el parámetro es la función que realiza el filtro de la lista!
Esta función de filtro debe tener solo un parámetro (del mismo tipo que cada elemento)
da lista) y debe devolver unbooleano.
De esta forma, todas las listas, de cualquier tipo, pueden utilizar la misma funciónfiltro.
En nuestro caso, tenemos una lista de números, por lo tanto nuestra función debe recibir un
número y devolver un valor lógico, en la práctica, es la misma comparación que ya hicimos en
implementación anterior:número % 2 == 0, mira cómo hacemos lo mismo utilizando el
filtro
numeros = [0,2,3,4,5,7]
pares = filter(lambda valor: valor % 2 == 0, numeros)
forparinpares
imprimir(par)
Transformamos todo nuestro lazo de repetición con un desvío condicional en uno solo.
¡instrucción! ¿Genial, verdad?
Ofiltrono es la única función capaz de realizar este tipo de operación, pero es un buen
¡Ejemplo para que entiendas el poder de las expresiones lambda!
Vamos a practicar
52
Expresiones Lambda
1. Haz un programa que escriba 'Mi primera función', esta escritura debe ser
realizada a partir de la llamada de una función que fue declarada como una expresión
lambda.
2. Haga un programa que solicite el nombre del usuario y la edad del usuario, después de eso
{nome} tiene {idade} años.
una función lambda.
3. Haga un programa que solicite dos números al usuario y muestre la multiplicación de ellos.
La multiplicación debe ser calculada en una función lambda.
4. Haga un programa que solicite cinco números al usuario, después de eso, muestre solo
los números mayores que 10. Utiliza la funciónfiltropara hacer esto.
5. Haga un programa que solicite diez números al usuario, después de eso, muestre todos
números pares y solo entonces muestra todos los números impares. Utiliza la funciónfiltro
para hacer esto.
Atención
Se recomienda encarecidamente que intentes hacer los ejercicios antes de ver los
respuestas. Puedes encontrar las respuestasaquí.
53
Conclusión
Conclusión
El objetivo de este libro es ser un punto de partida para el mundo de la programación, existen
muchos temas que no se han abordado aquí, como: orientación a objetos, programación
funcional, programación web, inteligencia artificial y así sucesivamente.
No tomes este libro como única fuente de estudio de ninguna manera, existen diversos
materiales disponibles en línea.
Espero que haya sido una buena fuente de estudio y siéntete libre de enviarme cualquier cosa.
¡tipo de retroalimentación!
54
Resolución de los ejercicios
2. Haz un algoritmo que pregunte al usuario cuántos años tiene, después de eso, escribe
Verdaderono console, caso ele já tenha alcançado a maioridade (18 anos), caso contrário
escribeFalso.
55
Resolución de los ejercicios
si media >= 7:
Aprobado
de lo contrario:
Reprobado
2. Haz un algoritmo que solicite el año en que nació el usuario, después de eso, haz el
programa describir si el usuario hará o ya ha cumplido 18 años este año.
ifidade ==18:
El usuario cumplirá 18 años este año.
3. Haga un programa que solicite al usuario su edad, después de eso, muestre la clasificación
etaria de acuerdo con las franjas de valores:
Niño de 0 a 11 años;
Adolescente de 12 a 18 años;
Joven de 19 a 24 años;
Adulto de 25 a 40 años;
Meia Idade para 41 até 60 anos;
Anciano mayor de 60 años.
56
Resolución de los ejercicios
Niño
elifidade >60:
Idoso
4. Haga un programa que solicite al usuario 2 valores, utilice una condición ternaria para
escribir cuál es el mayor valor: el primero o el segundo (en caso de que los valores sean iguales,
considere el segundo).
Ingrese su nombre:
print(f"Hola {nome}")
Ingrese un mensaje:
IMPRIMIR([Link]())
57
Resolución de los ejercicios
3. Haga un programa que solicite la edad del usuario, verifique si el texto ingresado solo
contiene números. Si solo contiene números, muestre el mensaje: "Tienes {edad"
años.
[Link]():
Tienes {edad} años.
else:
print("Has ingresado una edad inválida")
4. Haga un programa que solicite el nombre completo del usuario y muestre solo el suyo
segundo nombre/primer apellido.
familia = ["Gabriel","Anderson","Luluzinha","Mariazinha","Joãozinho"]
imprimir(familia)
2. Haz un programa que inicialice una lista vacía y solicite al usuario 3 nombres de
ciudades, una por vez, cada vez que el usuario escriba un nombre, el programa debe incluir esto
nombre en la lista de ciudades.
cidades = []
3. Haga un programa que inicialice una lista con varios números diferentes, después de eso,
solicite al usuario un número, verifique si el número está o no en la lista y muestre una
mensaje notificando al usuario del resultado.
58
Resolución de los ejercicios
numeros = [1,3,6,10,5,23]
int(input("Digite un número: "))
ifnumero_digitadoinnumeros:
print(f"El número {numero_digitado} está en la lista")
de lo contrario:
El número {numero_digitado} no está en la lista
4. Haga un programa que inicialice una lista vacía y la llene con 5 nombres diferentes
digitados por el usuario, después de eso solicita un número del 0 al 4 y elimina el elemento
de esta posición.
nomes = []
[Link](input("Digite el primer nombre: "))
[Link](input("Escribe el segundo nombre: "))
[Link](input("Digite el tercer nombre: "))
[Link](input("Ingresa el cuarto nombre: "))
[Link](input("Digite el quinto nombre: "))
itens_compra = ["Arroz","Leite","Ovos","Feijão","Tomate"]
foriteminitens_compra
imprimir(item)
2. Haz un programa que inicie creando una lista con los valores del 1 al 10 y luego
muestre solo los números pares.
por numeroinrango(1,11):
si numero % 2 == 0:
imprimir(numero)
3. Haz un programa que muestre todos los valores impares entre 50 y 100 utilizando el rango.
59
Resolución de los ejercicios
4. Haga un programa que inicialice una lista vacía, solicite al usuario 10 números
diferentes, uno por vez. Si el número ingresado es par, agregue uno a su valor.
Después de eso, muestra los 10 números ingresados.
numeros = []
pornumeroinrange(10):
item_digitado = int(input("Digite un valor: "))
si(item_digitado %2==0):
item_digitado += 1
[Link](item_digitado)
fornumeroinnumeros
imprimir(numero)
5. Haz un programa que muestre las tablas de multiplicar del 1 al 10 en el formato: "2 x 3 = 6", (utiliza dos
comandospara)
itens_compra = ["Arroz","Leite","Ovos","Feijão","Tomate"]
posicao =0
mientras posicao < len(itens_compra):
print(itens_compra[posicao])
posición+=1
2. Haga un programa que inicialice una lista con los valores del 1 al 10 y luego los muestre
apenas los números pares utilizandomientras.
numeros = [1,2,3,4,5,6,7,8,9,10]
posicao =0
mientras posicion < len(numeros):
numeros[posicao]
si numero % 2 == 0:
imprimir(numero)
posicion+=1
60
Resolución de los ejercicios
3. Haz un programa que inicialice una lista vacía, solicite al usuario 10 números impares
diferentes, uno por vez. Si el número introducido es par, solicite nuevamente un número, hasta
que el valor sea un número impar. Después de eso, muestra los 10 números ingresados.
numeros = []
numero =0
quantidade_sobrando =10
mientras cantidad_sobrando > 0:
numero =0
mientras numero % 2 == 0:
[Link](numero)
cantidad_restante -=1
posicao =0
4. Haga un programa que muestre un menú para que el usuario seleccione una de las tres opciones:
Hola mundo
Yo programo en Python
3 - Laços de repetición
El programa debe solicitar al usuario una de las 3 opciones, si el usuario ingresa un valor.
diferente de las opciones (1, 2 o 3), el programa debe presentar nuevamente el menú de
opciones hasta que una de ellas sea elegida. Por último, el programa debe mostrar un mensaje
diferente para cada opción.
opcao =0
opcoes = [1,2,3]
mientrasopcaonot enopcoes:
Seleccione una de las opciones a continuación:
print("1 - Hola mundo ")
print("2 - Yo programo en Python ")
print("3 - Laços de repetición ")
int( input ("Seleccione la opción: "))
siopcion ==1:
print("¡Hola mundo!")
elifopcao ==2:
¡Ya estoy en mi sexta lección de Python!
de lo contrario:
En esta lección estoy estudiando el bucle de repetición While
61
Resolución de los ejercicios
numeros = [1,2,3,4,5,6,7,8,9,10]
posicao =0
mientrasposicao < len(numeros):
posición +=1
si posición == 3:
continuar
elifposicao == 6:
romper
print(numeros[posicao-1])
numeros = [1,2,3,4,5,6,7,8,9,10]
posicao =0
mientras posicao < 5:
si posición != 2:
imprimir(numeros[posicion])
posición +=1
{
Agua
"preço":2.00
}
2. Haga un programa que inicialice una lista de compras con 5 artículos diferentes, donde cada
es un diccionario que contiene la descripción y el precio del producto. Después de eso, recorre la lista
y muestre la información de cada ítem.
lista_compras = [
Agua
Leche
Carne
Pizza
Chocolate
]
62
Resolución de los ejercicios
3. Utiliza la lista de compras del programa anterior para identificar cuál es el producto más barato
¿Y cuál es el producto más caro de la lista de compras?
mais_barato =None
mais_caro =None
indice =0
mientras indice < len(lista_compras):
lista_compras[indice]
si indice == 0:
artículo_de_compra
artículo_compra
else:
ifitem_compra["preço"] > mais_caro["preço"]:
artículo_compra
indice = indice + 1
4. Haz un programa que tenga una lista con 5 personas, donde cada persona tenga su
nombre y apellido almacenado en un diccionario, después de eso, muestra todos los nombres y
sobrenomes. Para complicar um pouco as coisas, vamos simular que estes dados foram
obtenidos de la web y con eso recibimos algunas inconsistencias. Dos de las cinco personas
poseen el diccionario donde las claves están en mayúsculas y los otros tres en minúsculas.
pessoas = [
Joãozinho
Mariazinha
Gabriel
Joana
Everton
]
porpessoainpessoas
[Link]("nome", None)
[Link]("sobrenome", None)
si no nome:
nome = [Link]("NOME", None)
si no sobrenome:
[Link]("APELLIDO", None)
imprimir(nombre, apellido)
63
Resolución de los ejercicios
defminha_funcao():
print("Mi primera función")
mi_función()
2. Haga un programa que solicite el nombre del usuario y la edad del usuario, después de eso
exiba la mensaje:{nome} tiene {idade} años.. Este mensaje debe ser escrito en
una función.
defescrever_nome_idade(nome, idade):
print(nombre, "tiene", edad, "años.")
escribir_nombre_edad(nombre_digitado, edad_digitada)
3. Haga un programa que solicite dos números al usuario y muestre la multiplicación de ellos. A
la multiplicación debe ser calculada en una función.
defmultiplicar(numero1, numero2):
returnnumero1 * numero2
4. Haga un programa que solicite al usuario tres números diferentes y muestre el doble de
mayor número. Para hacer esto separa tu código en dos funciones diferentes: Una función
para retornar el mayor de los tres números y otra función para duplicar el número.
64
Resolución de los ejercicios
defdoblar(numero):
returnnumero *2
obtener_mayor(numero,numero2,numero3)
imprimir(doblar(mayor))
5. Haz un programa que inicialice una lista vacía, después de eso solicita 5 nombres diferentes
al usuario (utilice un bucle de repetición). Cada nombre digitado debe ser agregado a la lista y por
fin, todos los nombres deben ser escritos en la consola. Utiliza una función para solicitar y
retornar el nombre digitado, una función para agregar el nombre a la lista (pasando el nombre y la
lista por parámetro) y otra función para escribir todos los nombres en la consola.
defsolicitar_nome():
returnstr ( input("Escribe un nombre: ") )
definir_nombres(lista):
fornomeinlista
imprimir(nome)
nomes = []
for contador in range(0, 5):
nome = solicitar_nome()
adicionar_nombre_a_la_lista(nombres, nombre)
escribir_nombres
65
Resolução dos exercícios
1. Hacer un programa que escriba 'Mi primera función', esta escritura debe ser realizada
a partir de la llamada a una función que fue declarada como una expresión lambda.
2. Haga un programa que solicite el nombre del usuario y la edad del usuario, después de eso
{nombre} tiene {edad} años.
una función lambda.
3. Haga un programa que solicite dos números al usuario y muestre la multiplicación de ellos.
la multiplicación debe ser calculada en una función lambda.
4. Haz un programa que pida cinco números al usuario, después de eso, muestra solo los
números mayores que 10. Utiliza la funciónfiltropara hacer esto.
numeros = []
for indice in range(1,5):
numero = int(input("Digite un número: "))
[Link](numero)
5. Haga un programa que solicite diez números al usuario, después de eso, muestre todos
números pares y solo entonces muestra todos los números impares. Utiliza la funciónfiltropara
hacer esto.
66
Resolución de los ejercicios
defescrever_array(array):
porvalorenarray
imprimir(valor)
numeros = []
for indice in range(1, 10):
número
[Link](numero)
67