0% encontró este documento útil (0 votos)
8 vistas67 páginas

Aprende Python: Guía para Principiantes

Este documento proporciona una introducción al lenguaje de programación Python. Discute por qué Python es un buen lenguaje para principiantes, muestra cómo declarar variables y tipos de datos básicos, y explica la entrada y salida. El documento también presenta bucles, condicionales, listas, diccionarios y funciones en Python.

Traducido por

ScribdTranslations
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
8 vistas67 páginas

Aprende Python: Guía para Principiantes

Este documento proporciona una introducción al lenguaje de programación Python. Discute por qué Python es un buen lenguaje para principiantes, muestra cómo declarar variables y tipos de datos básicos, y explica la entrada y salida. El documento también presenta bucles, condicionales, listas, diccionarios y funciones en Python.

Traducido por

ScribdTranslations
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Tabla de contenidos

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.

Varias instituciones en Brasil y en el mundo están adoptando disciplinas de programación de


software en la educación primaria y secundaria. Teniendo esto en cuenta, este libro busca ayudar al
proceso inicial al mundo de desarrollo y programación.

El principal objetivo es desmitificar la programación a través de ejemplos prácticos y


ejercicios, para que podamos dejar de ser solo usuarios de tecnología, sino también
nos convertimos en creadores de ella.

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.

Está bastante relacionado con la comunidad de desarrollo de software nacional, por


conta de suas contribuições recebeu o prêmio de Microsoft MVP (Most Valuable
Profesional) en la categoría Tecnologías de Desarrollo.

Máster en computación aplicada con enfoque en inteligencia artificial y licenciatura en Ciencias


de la Computación. Consumidor y creador de juegos en su tiempo libre, apasionado por la tecnología,
literatura fantástica y juegos de cartas.

Puedes encontrar al autor en:

Linkedin
Github
Blog personal

¿Qué encontrarás en este libro?


Este libro es un producto gratuito compuesto por publicaciones del blog
[Link] publicaciones fueron editadas para mejorar la experiencia
de lectura.

3
Introducción

Cada capítulo aborda de forma directa un tema básico sobre programación de


ordenadores, utilizando el lenguaje de programación Python como ejemplo.

Todos los capítulos tienen una lista de ejercicios para afianzar, es bastante recomendable
que busques materiales externos para complementar tu aprendizaje.

Además, se sugiere encarecidamente que los ejercicios se realicen inmediatamente después de la


lectura del capítulo, para garantizar la práctica junto con la teoría.

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

Deberías aprender Python


Como ya se dijo anteriormente, programa mayoritariamente en la plataforma .NET, pero
considero un error enorme que los programadores se cierren en su mundito, ya sea Java,
.Net o cualquier plataforma que sea.

Las lenguajes de programación, en general, tienen diferentes características, el


el objetivo de este libro es iniciarte en el universo de la programación, lo que nos lleva a la pregunta:

Si quieres empezar a programar, ¿cuál es el mejor lenguaje? - Como siempre, depende.

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.

Pero como dije antes, no todo es negro y blanco, dependiendo de tu experiencia y


nociones del idioma inglés, sugiero echar un vistazo al lenguajePortugol.

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.

Python es un lenguaje sensacional, de verdad. Y podemos hacer muchas cosas con


ella, muchas en verdad, llega a ser aterrador.

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.

Puedes usar Python para:

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.

Tan simple como eso, ¿verdad?

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.

No he puesto nada sobre la instalación de Python y sobre el entorno de


desarrollo, esto se debe a que existen diversas formas de programar en Python, desde
ambientes web hasta ambientes de desarrollo completos.

Puedes acceder al sitio web:[Link] seleccionar el lenguaje Python, con eso ya


¡Podrás programar en Python sin necesidad de instalar nada!

Si querías una herramienta más completa, puedes utilizar la documentación de cómo


instalar la herramienta y el lenguaje Pythonen este enlace.

6
Comenzando con Python

Capítulo 2 - Empezando con Python


¡Bueno, empecemos! Sin mucha teoría ahora, ¡manos a la obra!

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

consideración, pero tenemos mucha más libertad que antes.

¿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.

¿Qué haces cuando necesitas decirle a alguien dónde vives?

Tú pasas la dirección, ¿cierto?

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?

Si no eres muy extraño, probablemente uses el sistema de coordenadas muy poco,


¿cierto? - Hacemos esto porque no es intuitivo para la mayoría de las personas, así como
las direcciones de memoria en su computadora.

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.

un valor utilizando el operador= , mira:

valor =42

Y eso es.

Lo interesante es que también puedes realizar operaciones con estos valores, mira:

valor =42
resultado = 42 + 10

En este caso, la información almacenada en la variableresultadoserá o resultado de


expresión matemática.

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

Vieron, a pesar del valor almacenado en la variableresultser o mismo que el otro


ejemplo (52), ahora estamos utilizando la variable para calcular.

¿Puedes mostrar el resultado almacenado en las variables con la función?imprimir, mira:

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.

Haz un algoritmo para resolver la ecuación z = a * a - b + c, almacenando el resultado


en la variable z. Considera que los valores iniciales de a, b y c son, respectivamente, 4, 6.5
e 10.5. Depois disso exiba o 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.

¿Conseguiste responder? - ¡Espero que sí! Si no funcionó, puedes consultar


las respuestas en el enlace de arriba.

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:

Números: enteros (int) y con decimales (float)


Textos (cadena o str)
Lógicos (bool)

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.

Bastó declarar las variablesbeccon valores decimales.

¡Vamos para los textos ahora!

Para definir que un valor es una cadena hay 3 opciones:

Entre comillas simples:texto;

9
Comenzando con Python

Entre aspas duplas:texto;


Entre una trinca de comillas dobles:texto;

Puedes utilizar cualquiera de ellos y tu programa entenderá que se trata de una


cadena.

Hagamos un ejemplo con la función print:

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.

Tendremos un capítulo complementario sobre el tipo cadena, tiene diversas características.


específicas. Entonces, por ahora vamos al siguiente tipo: ¡El tipo lógico!

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).

Vamos aplicar estos operadores en oraciones de lenguaje natural:

Hoy salió el sol por la mañana


Hoy llovió por la tarde -> considera esta frase como mentira

Estas afirmaciones en portugués pueden interpretarse como:

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

no_sol_por_la_mañana # -> Falso


no_chuva_por_la_tarde# -> Verdadero

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.

Vamos de nuevo a las oraciones:

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.

sol_por_la_mañanaylluvia_por_la_tarde # -> Falso


sol_por_la_mañana_y_no_chuva_por_la_tarde # -> 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:

sol_por_la_mañana_o_lluvia_por_la_tarde # -> Verdadero

sol_pela_mañana o no_chuva_pela_tarde # -> Verdadero


no_sol_en_la_mañana_o_lluvia_por_la_tarde

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

Verdadero Falso Falso

Falso Verdadero Falso

Falso Falso Falso

Oo)
Primer Valor Segundo Valor Resultado

Verdadero Verdadero Verdadero


Verdadero Falso Verdadero

Falso Verdadero Verdadero

Falso Falso Falso

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

5 > 3 # -> Verdadero

¡Tenemos diversos operadores para realizar estas comparaciones!

Operador Descripción

(igual) ReturnVerdaderocaso los dos valores sean iguales


!=
RetornaVerdaderocaso los dos valores sean diferentes
(diferente)

RetornaVerdaderocaso o valor à esquerda do operador seja maior que o


(mayor)
valor a la derecha del operador

> (mayor RetornaVerdaderocaso o valor à esquerda do operador seja maior ou igual


o igual) que el valor a la derecha del operador

RetornaVerdaderocaso o valor à esquerda do operador seja menor que o


< (menor)
valor a la derecha del operador

<= (mayor ReturnaVerdaderocaso o valor à esquerda do operador seja menor ou igual


ou igual) que o valor à direita do operador

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.

4. Haga un algoritmo que solicite un número al usuario, después de eso, escribaVerdaderono


console, caso el número tenga dos dígitos (Esté entre 10 y 99), de lo contrario
escribeFalso.

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

Capítulo 3 - Desvios condicionais, fazendo


¡su programa tomar decisiones!
Ahora que ya has visto los tipos básicos y has trabajado bastante con valores lógicos, procederemos a
introducir una complejidad en nuestros programas.

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:

Ve al mercado y compra leche, si no hay, compra agua.

¡Mira el razonamiento detrás! Necesitamos verificar si el mercado tiene leche en stock, si él


si lo tenemos, lo compramos, pero si no lo tenemos, compramos agua.

Como Python utiliza el inglés como idioma estándar, la condición se traduce a


comandosi, mira:

leite_em_estoque =True

ifleite_em_estoque
Compre leche
else:
Comprei agua

Ejecute este algoritmo, luego cambie el valor de la variable aFalsoe ejecútalo


¡Nuevamente!

¿Ves? ¡Ahora podemos hacer que los algoritmos tomen decisiones!

Necesitas usar el comandootropara el caso negativo, él sería el equivalente a un


sino, es decir: sicondiciónentão faça ou não faça y.

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.

¡Hagamos otro ejemplo!

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.

Generalmente es más común utilizar la expresión directamente en el comando, salvo en


casos donde esta misma comparación necesita hacerse más de una vez, en estos casos es
es mejor almacenar el resultado y reutilizarlo en lugar de hacer la comparación varias veces
veces.

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

Puedes poner varios comandossieotroaninhados, o sea, uno dentro del otro.


Este código funcionará sin problemas, pero eso no significa que esta sea la mejor forma de
hacer esto.

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")

Otra cosa que podemos explorar normalmente es la cuestión de múltiples condiciones.


Podemos utilizar los operadoresno, yeopara crear una condición de la misma
forma que usamos para la atribución de un valor lógico.

nota1 =7
nota2 =10

si nota1 > 5 y nota2 >= 7:


Aprobado

deu_sol =True

si no deu_sol:
Chovió

Por último, hay otra forma de describir el comandosi.

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:

Él fue aprobado si sacó 7 o más, de lo contrario fue reprobado.

Let's translate this to Python with the command we already know:

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.

3. Haga un programa que solicite al usuario su edad, después de eso, muestre la


clasificación de edad de acuerdo con los rangos 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.
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

Capítulo 4 - Valores None, Cadenas y Listas


En este punto, ya deberías ser capaz de crear variables y crear desvíos condicionales en tu
programa. Pero vamos dar un paso atrás y vamos a mirar un poco más de cerca
algunas características de los tipos en Python!

Vamos empezar presentando un nuevo tipo de valor, los valoresNinguno.

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)

Así de simple, solo una línea de código.

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á

Bien simple ¿verdad?

20
Valores None, Strings y Listas

Explorando un poco más de las cadenas


¡Ya hemos usado algunas veces variables del tipo string, pero aún hay mucho trabajo por hacer!

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.

Todas estas operaciones se llaman funciones. Este es un concepto bastante poderoso.


en los lenguajes de programación.

Por definición, una función es un comportamiento que pertenece a algo, mientras que una
una variable es una característica de algo.

¿Cómo así? - Imagina un coche. Algunas características de tu coche son: cantidad de


puertas, color, marca, año y así sucesivamente. Todas estas características pueden ser
transcritas para un programa en forma de variables.

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.

¡Pero no te asustes, es muy fácil de usar!

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

Estos valores que se pasan a una función se llaman parámetros.

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.

En este contexto, la funciónformatopermite que mezcles un texto libre con variables o


valores, ¡mira un ejemplo!

Hola {0}
Olá Gabriel

Ok, pero esto se volvió demasiado confuso! - Tranquilo, no es nada del otro mundo.

¿Qué hace la función?formatohaz es sustituir en el texto el formato{N}pelo parâmetro N.


Donde N es el orden de los parámetros, comenzando desde cero (0). Véase otro ejemplo:

Hola {0}, me llamo {1}


Hola Gabriel, me llamo Python

¿Ves? El primer parámetro entró en su lugar de"{0}", o segundo no lugar de"{1}"e


así sucesivamente!

Mas, ¿qué sucede si colocamos más de uno?"{0}"? Vamos a probar!

Hola {0}, me llamo {1}. {0}


Hola Gabriel, me llamo Python. Gabriel

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.

Con esta notación, la sintaxis ya no se basa en la posición del parámetro, basta


colocamos directamente el nombre de la variable entre llaves.

Hola {nombre_mayusculo}
Hola Gabriel

El problema de este enfoque es que no todas las herramientas de desarrollo


entienden la interpolación, entonces tal vez necesites escribir el nombre de la variable en un texto,
Lo que puede causar un error en su aplicación, si escribe el nombre de la variable incorrectamente.

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!

plato, tenedor, vaso


print(itens_cozinha.split(','))# -> ["plato", "tenedor", "vaso"]

¿Qué son estos corchetes? Vamos a entender qué está pasando.

Cuando utilizamos la funcióndividirdividimos el texto en varios pedazos diferentes, al fin y al cabo,


ahora tenemos tres elementos en lugar de un texto.

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.

de valores, utilizas solo un identificador/nombre para acceder a varios valores


diferentes.

Vamos guardar el resultado del split en una variable, mira:

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

print(itens[3])# -> Gera un error

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}

2. Haz un programa que solicite un mensaje cualquiera al usuario y muestre este


MENSAJE CON TODAS LAS LETRAS EN MAYÚSCULAS.

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

Algunos ejercicios utilizan funciones que no se mostraron en este post, puedes


búscalas a través de internet, documentación de Python o simplemente escribe la cadena
no Visual Studio y presiona ctrl + espacio (mostrará las funciones disponibles).

Se recomienda encarecidamente que intentes hacer los ejercicios antes de ver los
respuestas. Puedes encontrar las respuestasaquí.

24
Listas

Capítulo 5 - Operaciones con Listas


Si has estado practicando en Python, ya te habrás encontrado con el problema de creación
de variables para describir listas, por ejemplo, un conjunto de estudiantes, un conjunto de
carros estacionados o hasta una lista de compras!

¡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!

print(lista_de_compras[0])# -> Pan


imprimir(lista_de_compras[1])# -> Agua
print(lista_de_compras[2])# -> Leche
print(lista_de_compras[3])# -> Huevos

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])

Intenta imaginar la lista según el dibujo de abajo:

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í!

Al utilizar elagregar, añadimos un elemento al final de la lista, es decir, será el último


elemento. Además deagregarexisten diversas otras funciones y recursos para trabajar
con listas. Uno de los recursos disponibles es la palabra reservadaen.

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

dependiendo si la lista contiene o no el ítem informado.

Esto nos permite crear desvíos condicionales, por ejemplo, mira:

si "Café" en lista_de_compras:
Necesito comprar café

Bien simple, ¿verdad?

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.

len( lista_de_compras )# -> 5

Perceba que la cantidad de elementos no es lo mismo que la posición máxima del


índice. En nuestro ejemplo, la lista contiene cinco elementos, por lo tanto tenemos como índices válidos
0 hasta 4.

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?

Muchos principiantes intentan realizar la siguiente operación:

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.

Al hacer la operación anterior, dirás que el ítem en la posición 2 no contiene nada y no


que no hay ítem en la posición 2. ¿Percibes la diferencia sutil?

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.

¡Vamos a quitar los huevos (posición 3) de nuestra lista de compras!

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.

Es decir, teníamos el café en la posición 4 y ahora está en la posición 3, haciendo que la


la posición 4 deja de existir.

¡Vamos a entender mejor cada función con algunos ejercicios!

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

Capítulo 6 - Laços de Repetición - Parte 1


En este capítulo veremos uno de los recursos más importantes en cualquier idioma de
programación: Los lazos de repetición, también conocidos como bucles.

En el capítulo anterior se explicó el funcionamiento de las listas, así que continuaremos usando
listas aquí.

Debes recordar cómo accedemos a un elemento de una lista, ¿verdad?

¡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]

¿Cómo haríamos para imprimir cada número individualmente en la consola?

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!

Ve otra forma de realizar esta tarea:

numeros = [10,20,30,40,50,60,70,80,90,100]

por número en números


imprimir(numero)

Mucho más simple, ¿no es así? Pero calma, vamos a entender cómo funciona esto
comando.

30
Laços de Repetição - I

El resultado es notable que las instrucciones debajo del comandoparaejecutan más de


Una vez, en realidad por eso se llaman lazos de repetición. Porque repiten las
instrucciones hasta un determinado punto.

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.

Esta función permite crear listas bajo demanda, mira:

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

Un último modificador posible en la funciónrangoes el salto entre cada valor. Podemos


especificar que los valores suban de dos en dos, diez en diez y así sucesivamente. Basta
¡insertaremos un último parámetro!

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

Capítulo 7 - Laços de Repetição - Parte 2


El capítulo anterior introdujo el concepto de lazos de repetición utilizando el comandopara.
¡Pero esta no es la única forma de realizar este tipo de operación!

Además depara, tenemos el comandomientras!

Su sintaxis es un poco diferente de la sintaxis delpara, pero muy parecida a la sintaxis de


comandosi, pero no te engañes, las similitudes entre elsiy elmientrasacabaron ahí.

A modo de ejemplo, ¡utilizaremos la misma lista que en el capítulo pasado!

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.

Cuando esta comparación resulte en un valorFalsoel bloque de instrucciones delmientras


será ejecutado y el programa continuará normalmente. ¿Vamos a hacer un ejemplo?

Vamos imprimir todos los números de la listanúmeros, mira:

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.

¡Esto puede causar un problema serio en tu programa! Si por casualidad olvidamos de


alterar los valores que hacen la comparación delmientraspodemos quedar atrapados en un bucle
infinito, es decir, ¡nuestro programa nunca terminará!

¡Vamos a hacer la experiencia! Retira la instrucción que añade 1 a la [Link]óne


ejecuta el programa:

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])

Por lo tanto, no olvides cambiar los valores que influyen en la comparación!

Si por alguna razón aleatoria decides que quieres hacer un bucle infinito,
basta utilizar el comando de esta forma:

mientras True:
INFINITO

En lugar de hacer una comparación, marcamos directamente el resultado de


comparación comoVerdadero, ¡pero ten cuidado, eso puede salir mal!

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

El comandocontinuarhace que el bucle vuelva al inicio del bloque, es decir,


para que él continúe con la próxima iteración, pero interrumpe inmediatamente la interacción
actual.

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])

El resultado final es el mismo y en este caso no interrumpes el flujo principal del


programa.

La otra instrucción es elromper, en este caso la interrupción es más agresiva, interrumpe el


próprio laço de repetição inteiro, não somente a iteração atual.

Esto significa que, al utilizar el comandorompervamos salir del lazo de repetición


incluso si la comparación sigue siendo verdadera, rompiendo incluso bucles infinitos.

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

La estrategia para evitar elromperes simple. Si lo estás utilizando, probablemente tu


la lógica de verificación en el bucle de repetición no está cumpliendo su papel. En el ejemplo anterior
no queremos recorrer hasta el final de la lista como sugiere la condición, sino hasta el cuarto
posición:

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.

1. Elimina la instrucciónrompery la instruccióncontinuardo laço de repetição abaixo:

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

Capítulo 8 - ¡Usa diccionarios!


En este punto, ya deberías estar familiarizado con listas y bucles de repetición, ahora ya está.
a la hora de crear más estructuras, esta vez, ¡vamos a usar los diccionarios!

Los diccionarios permiten al desarrollador almacenar pares de clave-valor fácilmente! En


práctica esto significa que conseguimos crear una estructura para almacenar más de una
información correlacionada.

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í!

El problema de este enfoque es que su programa no podría relacionar las


información. Para su programa es como si esas variables fueran datos separados
entre sí, es decir, sin ninguna relación.

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
}

Como se mencionó anteriormente, un diccionario organiza la información en pares en el formato


clave-valor. En el ejemplo anterior, las claves son: nombre, apellido y edad y los valores
respectivos son: Gabriel, Schade y 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"]

Con esto conseguimos manipular la información relacionada en un mismo diccionario.


Podemos, por ejemplo, exhibir en la consola el nombre completo de la persona:

print( persona["nombre"], persona["apellido"] )

Al usar diccionarios, debes tener cuidado, porque si la clave no existe, la aplicación


¡Lanzará un error! Haz la prueba:

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

A través deobtenerpodemos buscar un valor en un diccionario de forma segura, haciendo que


que la aplicación no genere errores.

Además de la funciónobtener, también están disponibles las funcionesllavesevaloresellas


retornan respectivamente una lista que contiene todas las claves o todos los valores de
diccionario.

Vamos empezar utilizando la funciónllaves!

[Link]()
forchaveinchaves
imprimir(clave)

Lo mismo vale para obtener todos los valores:

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

Capítulo 9 - Modularización de código con


Funciones
En este capítulo vamos a aprender sobre cómo podemos descomponer nuestro código en partes.
menores, es decir, ¡modularlo!

¡Vamos a hacer esto utilizando nuestras propias 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!

Hasta el momento estamos programando soluciones pequeñas. Cada ejercicio se basaba en


un problema específico que conseguimos resolver con pocas líneas de código, pero en
En aplicaciones reales, es común que un solo programa resuelva diversas cosas diferentes.

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

Estas piezas reutilizables se llamanfuncionesEllas están formadas por un bloque de


código que ejecuta una determinada acción.

De hecho, durante los ejercicios anteriores, ya utilizamos funciones disponibles en Python.


varias veces. Elimprimire oentradason ejemplos de funciones disponibles, pero lo más
Lo interesante de esto es que podemos definir nuestras propias 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.

¡Veamos cómo podemos definir una función en nuestro código Python!

defola_mundo():
print("Hola mundo")

Primero es necesario utilizar la palabra reservadadef, esta palabra es responsable por


definirá función. Después de eso incluimos el nombre de la función, este nombre debe seguir las
mismas reglas para nombre de variables.

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:

defola_mundo():# -> Definición


print("Hola mundo")

hola_mundo()# -> Llamada para realizar la ejecución

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

¿Qué sucede en este flujo?

Bueno, primero las dos variablesnúmeroenumero2son declarados y los valores 10 y 15


se les atribuyen respectivamente. Después de estas dos líneas iniciales, la función
hola_mundoes ejecutada.

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

Dividir un algoritmo en partes más pequeñas también ayuda bastante a la testabilidad de un


programa. Siempre será más simple probar un bloque pequeño que el programa por
completo.

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.

Para permitir que esto sea posible, la funciónimprimirnecesita recibir un parámetro. No


en el caso de la función print, el parámetro es el texto que se escribirá, pero los parámetros pueden ser
utilizados para tareas diferentes.

¡Vamos a crear una función que eleve cualquier número al cuadrado!

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)

Es interesante notar que también podemos pasar variables y expresiones en el parámetro.


mira sólo:

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.

No todas las funciones producen resultados, observa la funciónsaludocriada anteriormente.


De facto, ella no necesita producir ningún resultado.

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.

Siempre que necesitamos crear un retorno utilizamos la palabra reservadavolverElla hace


con que la función produzca un resultado, así como una expresión.

Vamos refactorizar la funciónsoma:

def suma(numero1, numero2):


return numero1 + numero2

Ok, pero ¿cómo obtener el resultado de esta función? -¡Sencillo!

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

resultado = suma(5,5) - 2*5


print(resultado)# -> 0

imprimir(suma(3,7))# -> 10

La palabra reservadadevolverfuerza la interrupción de la función para que el resultado sea


retornado, por lo tanto es bastante común que este comando esté al final de la función. A pesar
de no haber ninguna obligatoriedad no es una buena práctica interrumpir el código con
umdevolver.

Mira este ejemplo:

defejemplo(valor):
valor * 2
si numero >10:
returnnumero

valor = valor + 5
returnvalor

En este ejemplo, si la variablenúmerosi es mayor que 10, la función se interrumpirá.


Caso contrário será retornado o valor da variávelvalorsumado a 5.

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

si numero > 10:


número
else:
resultado = valor + 5

returnresultado

De esta forma, centralizamos la regla en la variableresult, siempre retornándola,


independiente de cuál valor fue atribuido a ella.

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

¡Ahora tenemos un código mucho más corto y simple!

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

Capítulo 10 - Expresiones Lambda


Este es el último capítulo para la introducción a la programación utilizando Python, vamos a cerrar el
aprendizaje con un tipo diferente de función: ¡las 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.

def suma(numero1, numero2):


returnnumero1 + numero2

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:

soma_lambda = lambda numero1, numero2: numero1 + numero2

Notemos que la sintaxis es un poco diferente, utilizamos la palabra reservadalambdapara


declarar el inicio de la expresión, después de eso, insertamos los parámetros separados por
coma. Por último, ponemos el cuerpo de la expresión.

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.

¿Y para funciones sin retorno? -¡Ningún problema!

ola =lambda: print('Hola mundo')


Olá mundo

¡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?

En la práctica, puedes obtener el valor de retorno de la funciónimprimir, pero será un valor de


tipoNone ¡Por lo tanto, la misma sintaxis de lambda sigue funcionando normalmente!

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)

# Muestra los números


forparinpares
imprimir(par)

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.

Las posibilidades son inmensas y todo está más cerca de ti ahora.

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

Resolución de los ejercicios

Capítulo 2 - Comenzando con Python


1. Haga un algoritmo que solicite el nombre del usuario y luego escriba el nombre de la persona en
consola.

input('¿Cuál es tu nombre? ')


imprimir(nombre)

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.

int( input("¿Cuántos años tienes? ") )


edad >= 18
imprimir(maioridade)

3. Haga un algoritmo que solicite un número al usuario, después de eso, escribaVerdaderono


console, caso el número tenga dos dígitos (esté entre 10 y 99), de lo contrario escriba
Falso.

numero = int(input("Digite un número: "))


numero >= 10 y numero <= 99
imprimir(dois_digitos)

Capítulo 3 - Desvíos condicionales, haciendo su


¡programa para tomar decisiones!

1. Haga un algoritmo que solicite 3 notas al usuario, calcule la media e indique si el


el alumno fue aprobado o reprobado (la nota tiene que ser mayor o igual a siete para que el alumno sea
aprobado).

55
Resolución de los ejercicios

nota1 = float(input("Digite la primera nota: "))


nota2 = float(input("Digite la segunda nota: "))
float(input("Digite la tercera nota: "))
( nota1 + nota2 + nota3 ) / 3

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.

int (input ("Ingrese el año en que naciste: "))


2018 - año_nacimiento

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

int (input("Digite su edad: "))

si la edad >= 0 y la edad <= 11:

Niño

elifidade >=12andidade <=18:


Adolescente

elifidade >=19andidade <=24:


Joven

elifidade >=25y idade <=40:


Adulto

elifidade >=41yidade <=60:


Meia Idade

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).

int( input("Digite um valor: "))


segundo_valor = int(input("Digite un valor: "))
print("Primero" si primeiro_valor > segundo_valor else "Segundo")

Capítulo 4 - Valores None, Strings e Introducción


a Listas
1. Haz un programa que solicite el nombre del usuario y luego haga un saludo.
Hola {nombre ingresado por el usuario}.

Ingrese su nombre:
print(f"Hola {nome}")

2. Haga un programa que solicite un mensaje cualquiera al usuario y muestre este


MENSAJE CON TODAS LAS LETRAS EN MAYÚSCULAS.

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.

Digite su nombre completo:


nome_completo.split(" ")
imprimir(nome_completo_dividido[1])

Capítulo 5 - Operaciones con Listas


1. Haga un programa que inicialice una lista con los nombres de las personas de su familia.

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 = []

Ingrese el nombre de la primera ciudad:


[Link](cidade)

[Link](input("Digite el nombre de la segunda ciudad: "))


[Link](input("Escribe el nombre de la tercera ciudad: "))
ciudades

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: "))

Elija una posición del 0 (cero) hasta cuatro para excluir


uir de la lista: "))
delnomes[posicao_para_excluir]
print(nombres)

Capítulo 6 - Laços de Repetición - Parte 1


1. Haz un programa que inicialice una lista de compras con 5 artículos diferentes y los muestre
todos utilizando un bucle de repetición.

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.

for numero en rango(51,101,2):


imprimir(numero)

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)

for operador en rango(1,11):


paraoperador_2enrango(1,11):
resultado = operador * operador_2
imprimir(f"{operador} X {operador_2} = {resultado}")

Capítulo 7 - Lazos de Repetición - Parte 2


1. Haga un programa que inicialice una lista de compras con 5 artículos diferentes y muestre
todos utilizando un bucle de repeticiónmientras.

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:

Digite un número impar:

[Link](numero)
cantidad_restante -=1

posicao =0

mientrasposicao < len(numeros):


print(numeros[posicao])
posicion +=1

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

5. Eliminar la instrucciónrompery la instruccióncontinuardo laço de repetición abajo:

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

Capítulo 8 - ¡Utiliza Diccionarios!


1. Haga un programa que cree un diccionario para definir un producto, conteniendo su
Descripción y su precio.

{
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
]

para el artículo_compra en lista_compras

print("Producto:", item_compra["descripción"],"por", str(item_compra["precio"]),"rea


es.)

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

ifitem_compra["preço"] < mais_barato["preço"]:


artículo_compra

indice = indice + 1

producto más caro:


)
print("Producto más barato: ", más_barato["descripción"],"por", más_barato["precio"])
reais

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

Capítulo 9 - Modularización de código con


¡Funciones!
1. Haz un programa que escriba "Mi primera función", esta escritura debe ser realizada.
a partir de la llamada de una función.

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.")

nome_digitado = str(input("Escribe tu nombre: "))


Digite su edad:

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

numero = int(input("Digite el primer número: "))


numero2 = int(input("Digite el segundo número: "))
multiplicar(numero, numero2)
imprimir(resultado)

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

defobter_maior(numero, numero2, numero3):


maior =None
si numero > numero2 y numero > numero3:
mayor
elif numero2 > numeroandnumero2 > numero3:
mayor
de lo contrario:
numero3
retornar mayor

defdoblar(numero):
returnnumero *2

Digite el primer número:


numero2 = int(input("Digite el segundo número: "))
Digite el tercer número:

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: ") )

def agregar_nombre_a_la_lista(lista, nombre):


[Link](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

Capítulo 10 - Funciones Lambda

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.

mi_funcion = lambda: print("Mi primera función")


mi_funcion()

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.

escribir_nombre_edad = lambda nombre, edad: print(nombre, "tiene", edad, "años.")


str(input("Escribe tu nombre: "))
Digite sua idade:
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.
la multiplicación debe ser calculada en una función lambda.

multiplicar =lambdanumero1, numero2: numero1 * numero2

Digite el primer número:


Digite el segundo número:
resultado = multiplicar(numero, numero2)
imprimir(resultado)

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)

filtrar(lambda numero: numero > 10, numeros)


formaiorinmaiores
imprimir(maior)

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)

pares = filtrar(lambda numero: numero % 2 == 0, numeros)


filtrar(lambda numero: numero % 2 == 1, numeros)
escribir_array(pares)
escribir_array(impares)

67

También podría gustarte