UNIVERSIDAD TÉCNICA DEL
NORTE
FACULTAD DE INGENIERÍA EN
CIENCIAS APLICADAS
FUNDAMENTOS DE PYTHON 1
CARRERA:
INGENIERIA EN
TELECOMUNICACIONES
NOMBRE:
CESAR SEBASTIAN FLORES
BASANTES
DOCENTE:
MsC. LUIS EDILBERTO SUAREZ
ZAMBRANO
INTRODUCCION:
Módulo 1: Introducción a Python y programación informática
El módulo 1 del Curso de Fundamentos de Python 1 se enfoca en proporcionar
una introducción completa al lenguaje de programación Python. Se cubren los conceptos
fundamentales necesarios para comenzar a programar, incluyendo la instalación del
entorno de desarrollo, la ejecución de scripts y el uso de la consola interactiva. Además,
se exploran las estructuras básicas de Python, como variables y tipos de datos, incluyendo
enteros, flotantes, cadenas y booleanos. También nos introduce en el pensamiento
computacional y enseña a resolver problemas utilizando algoritmos simples. Se exploran
las estructuras de control condicionales (if-else) y los bucles (for y while) para controlar
el flujo de ejecución de un programa. Mediante una combinación de explicaciones
teóricas y ejercicios prácticos, los estudiantes adquieren habilidades básicas de
programación y aprenden a aplicar los conceptos aprendidos utilizando Python.
Módulo 2: Tipos de datos
El módulo 2 del Curso de Fundamentos de Python 1 se centra en las estructuras
de datos y las funciones. Para aprender sobre las listas, que son formas de almacenar y
manipular conjuntos de datos ordenados. Se exploran las operaciones comunes en estas
estructuras de datos, como la búsqueda, la inserción y la eliminación de elementos.
Además, introduce en los diccionarios, que son estructuras de datos clave-valor que
permiten una búsqueda eficiente y un acceso rápido a la información. Aprender a crear
diccionarios ya utilizar métodos para manipularlos y extraer información relevante.
OBJETIVOS
Generar un pensamiento lógico u computacional permitiendo conocer otra forma
de los sistemas con el fin de incrementar conocimientos y habilidades para el desarrollo
y programación en el lenguaje Python.
OBJETIVOS ESPECIFICOS
• Estudiar los conceptos básicos de programación y su implementación en el
lenguaje Python.
• Desarrollar la capacidad para analizar, diseñar y desarrollar software de baja y
media complejidad.
¿Cómo funciona un programa de computadora?
Un programa hace que una computadora sea usable. Sin un programa, una
computadora no es más que un objeto. Las computadoras pueden realizar tareas muy
complejas, pero esta habilidad no es innata Solo puede ejecutar operaciones
extremadamente simples
Lenguajes naturales vs lenguajes de programación
Un lenguaje es un medio para expresar y registrar pensamientos. Hay muchos
lenguajes a nuestro alrededor. Algunos de ellos no requieren ni hablar ni escribir Las
computadoras también tienen su propio lenguaje, llamado lenguaje máquina, que es muy
rudimentario.
Una computadora, incluso la más técnicamente probada, está desprovista de
cualquier rastro de inteligencia. Se podría decir que es como un perro bien adiestrado:
responde sólo a un conjunto predeterminado de comandos conocidos. Los comandos que
reconoce son muy simples.
¿Qué compone un lenguaje?
Podemos decir que cada lenguaje (máquina o natural, no importa) consta de los
siguientes elementos:
Un alfabeto: Es un conjunto de símbolos utilizados para formar palabras de un
lenguaje determinado
Un léxico: Un conjunto de palabras que el lenguaje ofrece a sus usuarios
Una sintaxis: Es un conjunto de reglas utilizadas para precisar si una determinada
cadena de palabras forma una oración válida
Una semántica: Es un conjunto de reglas que determina si una frase tiene sentido
Lenguaje máquina vs lenguaje de alto nivel
El IL es, el alfabeto de un lenguaje máquina. Este es el conjunto de símbolos más
simple y primario que podemos usar para dar comandos a una computadora. Necesitamos
un lenguaje en el que los humanos puedan escribir sus programas y un lenguaje que las
computadoras puedan usar para ejecutar los programas Un programa escrito en un
lenguaje de programación de alto nivel se denomina código fuente. Del mismo modo, el
archivo que contiene el código fuente se denomina archivo fuente.
Compilación vs. Interpretación
La programación informática es el acto de componer los elementos del lenguaje
de programación seleccionado en el orden que provocará el efecto deseado Por supuesto,
dicha composición tiene que ser correcta en muchos sentidos:
• alfabéticamente – un programa debe estar escrito en un alfabeto
reconocible, como romano, cirílico, etc.
• léxicamente – cada lenguaje de programación tiene su diccionario
y hay que dominarlo; afortunadamente, es mucho más simple y pequeño que el
diccionario de cualquier idioma natural;
• sintácticamente – cada idioma tiene sus reglas y hay que
obedecerlas;
• semánticamente – el programa debe tener sentido.
Desafortunadamente, un programador también puede cometer errores con cada
uno de los cuatro sentidos anteriores. Cada uno de ellos puede hacer que el programa se
vuelva completamente inútil.
¿Qué hace el intérprete?
El intérprete lee el código fuente de la forma habitual en la cultura occidental: de
arriba a abajo y de izquierda a derecha. En primer lugar, el intérprete verifica si todas las
líneas posteriores son correctas, Si el compilador encuentra un error, finaliza el trabajo
inmediatamente. El único resultado en este caso es un mensaje de error.
Compilación vs. Interpretación – Ventajas y Desventajas
Ventaja
• La ejecución del código convertido suele ser más rápida;
• Solo el usuario debe tener el compilador; el usuario final puede usar
el código sin él;
• Puedes ejecutar el código tan pronto como lo completes; no hay
fases adicionales de traducción;
Desventajas
• La compilación en sí puede ser un proceso que consume mucho
tiempo; es posible que no pueda ejecutar su código inmediatamente después de
realizar una modificación;
• Debes tener tantos compiladores como plataformas de hardware
donde desees que se ejecute tu código.
Python - una herramienta, no un reptil
¿Qué es Python?
Python es un lenguaje de programación de alto nivel, interpretado, orientado a
objetos y de uso generalizado con semántica dinámica, que se utiliza para la programación
de propósito general.
¿Quién creó Python?
Python fue creado por Guido van Rossum, nacido en 1956 en Haarlem, Países
Bajos. Por supuesto no desarrolló y evolucionó todos los componentes de Python. La
velocidad con la que Python se ha extendido por todo el mundo es el resultado del trabajo
continuo de miles de programadores, testers, usuarios y entusiastas.
Los objetivos de Python En 1999 se definió los objetivos para Python:
• Un lenguaje fácil e intuitivo tan poderoso como los de los
principales conductores.
• De código abierto, para que cualquiera pueda contribuir a su
desarrollo.
• El código que es tan comprensible como el inglés simple.
• Adecuado para tareas cotidianas, permitiendo tiempos de
desarrollo cortos.
¿Dónde podemos ver Python en acción?
Se utiliza mucho para implementar complejos Servicios de Internet como motores
de búsqueda, almacenamiento en la nube y herramientas, redes sociales, etc.
Tu primer programa
Es hora de comenzar a escribir código real y funcional en Python Ejecuta el código
en la ventana del editor a la derecha. Si todo sale bien, verás la línea de texto en la ventana
de consola. Como alternativa, inicia IDLE, crea un nuevo archivo fuente de Python,
coloca este código, nombra el archivo y guárdalo. Ahora ejecútalo. Si todo sale bien, verás
el texto contenido entre comillas en la ventana de la consola IDLE.
Tu Primer Programa
Es hora de comenzar a escribir código real y funcional en Python
Ejecuta el código en la ventana del editor a la derecha. Si todo sale bien, verás la
línea de texto en la ventana de consola.
Como alternativa, inicia IDLE, crea un nuevo archivo fuente de Python, coloca
este código, nombra el archivo y guárdalo. Ahora ejecútalo. Si todo sale bien, verás el
texto contenido entre comillas en la ventana de la consola IDLE.
Como puedes ver, el primer programa consta de las siguientes partes:
• La palabra print;
• Un paréntesis de apertura;
• Una comilla;
• Una línea de texto: ¡Hola, Mundo!;
• Otra comilla;
• Un paréntesis de cierre.
La función print ()
La palabra print que puedes ver aquí es el nombre de una función. Eso no
significa que donde quiera que aparezca esta palabra, será siempre el nombre de una
función.
Argumentos de funciones
Como se dijo anteriormente, una función puede tener:
• Un efecto
• Un resultado.
Las funciones de Python, por otro lado, son más versátiles. Dependiendo de las
necesidades individuales, pueden aceptar cualquier cantidad de argumentos - tantos
como sea necesario para realizar sus tareas. El único argumento entregado a la función
print () en este ejemplo es una cadena: print ("¡Hola, Mundo!") Como puedes ver, la
cadena está delimitada por comillas
Invocación de funciones
El nombre de la función (print en este caso) junto con los paréntesis y los
argumento(s), forman la invocación de la función.
Trabajando con la función print ()
El comando print (), el cual es una de las directivas más sencillas de Python,
simplemente imprime una línea de texto en la pantalla.
La función print () y su efecto, argumentos, y valores retornados
1. ¿Qué efecto tiene la función print ()?
• Toma sus argumentos.
• Los convierte a un formato legible si es necesario.
• Envía los datos resultantes al dispositivo de salida en otras
palabras, todo lo que pongas en la función print () se aparecerá en tu pantalla.
Instrucciones
La sintaxis de Python es bastante específica en esta área. A diferencia de la
mayoría de los lenguajes de programación, Python requiere que no haya más de una
instrucción por línea.
Usando múltiples argumentos
Hasta ahora hemos probado el comportamiento de la función print () sin argumentos y
con un argumento. También vale la pena intentar alimentar a la función print () con más
de un argumento.
Argumentos de palabra clave
La función print () tiene dos argumentos de palabra clave que puedes usar para tus
propósitos. El primero se llama end. El argumento de palabra clave que puede hacer esto
se denomina sep.
Literales - los datos en sí mismos
Los literales son notaciones para representar valores fijos en el código. Python tiene
varios tipos de literales - es decir, un literal puede ser un número, por ejemplo, 123), o
una cadena (por ejemplo, "Yo soy un literal.").
Enteros
El sistema binario es un sistema numérico que emplea 2 como su base. Por lo tanto, un
número binario está compuesto por 0s y 1s únicamente, por ejemplo, 1010 es 10 en
decimal. Los sistemas de numeración Octales y Hexadecimales son similares pues
emplean 8 y 16 como sus bases respectivamente. El sistema hexadecimal utiliza los
números decimales más seis letras adicionales.
Flotantes
Los enteros (o simplemente int) son uno de los tipos numéricos que soporta Python. Son
números que no tienen una parte fraccionaria, por ejemplo, 256, o -1 (enteros negativos).
Cadenas
Los números punto-flotante (o simplemente flotantes) son otro tipo numérico que soporta
Python. Son números que contienen (o son capaces de contener) una parte fraccionaria.
Valores Booleanos
Para codificar un apóstrofe o una comilla dentro de una cadena se puede utilizar el
carácter de escape, por ejemplo, 'I\'m happy.', o abrir y cerrar la cadena utilizando un
conjunto de símbolos distintos al símbolo que se desea codificar, por ejemplo, "I'm
happy." para codificar un apóstrofe, y 'Él dijo "Python", no "typhoon"' para codificar
comillas.
Literales de Python - Cadenas
Los valores booleanos son dos objetos constantes True y False empleados para representar
valores de verdad (en contextos numéricos 1 es True, mientras que 0 es False.
Python como una calculadora
Una expresión es una combinación de valores (o variables, operadores, llamadas a
funciones, aprenderás de ello pronto) las cuales son evaluadas y dan como resultado un
valor, por ejemplo, 2 + 2.
Operadores Básicos
Los operadores son símbolos especiales o palabras clave que son capaces de operar en
los valores y realizar operaciones matemáticas, por ejemplo, el * multiplica dos valores:
x * y.
Operadores y sus prioridades
Los operadores aritméticos en Python: + (suma), - (resta), * (multiplicación), / (división
clásica: regresa un flotante siempre), % (módulo: divide el operando izquierdo entre el
operando derecho y regresa el residuo de la operación, por ejemplo, 5 % 2 = 1), **
(exponenciación: el operando izquierdo se eleva a la potencia del operando derecho, por
ejemplo, 2 ** 3 = 2 * 2 * 2 = 8), // (división entera: retorna el número resultado de la
división, pero redondeado al número entero inferior más cercano, por ejemplo, 3 // 2.0 =
1.0)
Un operador unario es un operador con solo un operando, por ejemplo, -1, o +3.
Un operador binario es un operador con dos operandos, por ejemplo, 4 + 5, o 12 % 5.
Algunos operadores actúan antes que otros, a esto se le llama - jerarquía de prioridades:
• El operador ** (exponencial) tiene la prioridad más alta
• Posteriormente los operadores unarios + y - (nota: los operadores unarios a la
derecha del operador exponencial enlazan con mayor fuerza, por ejemplo 4 ** -1
es igual a 0.25)
• Después *, /, //, y %,
• Finalmente, la prioridad más baja: los operadores binarios + y -.
Las subexpresiones dentro de paréntesis siempre se calculan primero, por ejemplo, 15 - 1
* (5 *(1 + 2)) = 0. Los operadores de exponenciación utilizan enlazado del lado derecho,
por ejemplo, 2 ** 2 ** 3 = 256
Variables
Una variable es una ubicación nombrada reservada para almacenar valores en la memoria.
Una variable es creada o inicializada automáticamente cuando se le asigna un valor por
primera vez. (2.1.4.1)
Cada variable debe de tener un nombre único - un identificador. Un nombre válido debe
ser aquel que no contiene espacios, debe comenzar con un guion bajo (_), o una letra, y
no puede ser una palabra reservada de Python. El primer personaje puede estar seguido
de guiones bajos, letras y dígitos. Las variables en Python son sensibles a mayúsculas y
minúsculas. Python es un lenguaje de tipo dinámico, lo que significa que no se necesita
declarar variables en él. Para asignar a valores las variables, se utiliza simplemente el
operador de cerrar, es decir el signo de igual (=), por ejemplo. var = 1
También es posible utilizar operadores de reembolso compuesto (operadores abreviados)
para modificar los valores asignados a las variables, por ejemplo, o. var += 1var /= 5 * 2
Se les puede asignar nuevos valores a variables ya existentes utilizando el operador de
cierre o un operador abreviado.
Comentarios – ¿por qué, ¿cuándo y dónde?
Los comentarios pueden ser utilizados para colocar información adicional en el código.
Son omitidos al momento de la ejecución. Dicha información es para los lectores que
están manipulando el código. En Python, un comentario es un fragmento de texto que
comienza con una#. El comentario se extiende hasta el final de la línea.
Marcar fragmentos de código
Si desea colocar un comentario que abarque varias líneas, es necesario colocar un#al
inicio de cada línea. Además, se puede utilizar un comentario para marcar un fragmento
de código que no es necesario en el momento y no se desea ejecutar. (observa la última
línea de código del siguiente fragmento)
* Cuando sea posible, se deben auto comentar los nombres de las variables, por ejemplo,
si se están utilizando dos variables para almacenar la altura y longitud de algo, los
nombres longitud y ancho son una mejor elecciónmivar1ymivar2.
*Es importante utilizar los comentarios para que los programas sean más fáciles de
entender, además de emplear variables legibles y significativas en el código. Sin embargo,
es igualmente importante no utilizar nombres de variables que sean confusos, o dejar
comentarios que contengan información incorrecta.
*Los comentarios pueden ser muy útiles cuando tú estás leyendo tu propio código después
de un tiempo (es común que los desarrolladores olviden lo que su propio código hace), y
cuando otros están leyendo tu propio código (les puede ayudar a comprender que es lo
que hacen tus programas y como es que lo hacen).
La función input ()
La función imprimir () envía datos a la consola, mientras que la funciona porté () obtiene
datos de la consola.
La función input () con un argumento
La función aporte () viene con un parámetro opcional: la cadena de mensaje. Te permite
escribir un mensaje antes de que el usuario ingrese algo
El resultado de la función input ()
El resultado de la función aporte () es una cadena. Se pueden unir cadenas unas con otras
a través del operador de concatenación (+).
También se pueden multiplicar (*- replicación) cadenas
Los operadores de comparación (o también denominados operadores relacionales) se
utilizan para comparar valores. La siguiente tabla ilustra cómo funcionan los operadores
de comparación, asumiendo que x = 0,y = 1, yz = 0:
Cuando desees ejecutar algún código solo si se cumple una determinada condición,
puedes usar una sentencia condicional:
Una serie de sentencias si, por ejemplo:
Cada sentencia si se prueba por separado.
La sentencia si-elif-else, por ejemplo:
Si la condición para si es FALSO, el programa verifica las condiciones de los bloques el
if posteriores: el primer e lif que mar Verdadero es el que se ejecuta. Si todas las
condiciones son FALSO, ejecutará sea el bloque demás.
Existen dos tipos de bucles en Python: mientras y para:
El bucle mientras ejecuta una sentencia o un conjunto de sentencias siempre que una
condición booleana especificada sea verdadera.
El bucle para ejecuta un conjunto de sentencias muchas veces; se usa para iterar sobre
una secuencia (por ejemplo, una lista, un diccionario, una tupla o un conjunto; pronto
aprenderás sobre ellos) u otros objetos que son iterables (por ejemplo, cadenas). Puedes
usar el bucle para para iterar sobre una secuencia de números usando la función
incorporada rango.
Pasar las sentencias romper y continuar para cambiar el flujo de un bucle:
Utiliza romper para salir de un bucle, por ejemplo:
Utiliza continuar para omitir la iteración actual, y continuar con la siguiente iteración.
Los bucles mientras y para también pueden tener una cláusula demás en Python. La
cláusula demás se ejecuta después de que el bucle finalice su ejecución siempre y cuando
no haya terminado con romper.
La función rango () genera una secuencia de números. Acepta enteros y devuelve objetos
de rango. La sintaxis de rango () tiene el siguiente aspecto: rango (inicio, parada, paso),
donde: comenzares un parámetro opcional que especifica el número de inicio de la
secuencia (0 por defecto) detener es un parámetro opcional que especifica el final de la
secuencia generada (no está incluido).
Y paso es un parámetro opcional que especifica la diferencia entre los números en la
secuencia es (1 por defecto.) Python es compatible con los siguientes operadores lógicos:
y→ si ambos operan son verdaderos, la condición es verdadera, por ejemplo, (Verdadero
y Verdadero) es Verdadero.
o→ si alguno de los operandos es verdadero, la condición es verdadera, por ejemplo,
(Verdadero o falso) es Verdadero.
no→ devuelve False si el resultado es verdadero y devuelve True si es falso, por ejemplo,
no es verdades FALSO.
Puedes utilizar operadores bit a bit para manipular bits de datos individuales. Los
siguientes datos de muestra:
X = 15, cual es0000 1111en binario,
Y = 16, cual es0001 0000en binario.
Se utilizarán para ilustrar el significado de operadores bit a bit en Python. Analice los
ejemplos a continuación:
&=hace un poco un poco y (y), por ejempló e y = 0, cual es0000 0000en binario,
|=hace un poco un poco o (o), por ejempló | y = 31, cual es0001 1111en binario,
˜= hace un poco un poco no (no), por ejemplo, ˜ x = 240*, cual es1111 0000en binario,
^ = hace un bit a bit por, por ejemplo ^ y = 31, cual es0001 1111en binario
>> = hace un desplazamiento bit a bit a la derecha, por ejemplo, y >> 1 = 8, cual es0000
1000en binario, <<< 3 =, cual es1000 0000en binario. *-dieciséis (decimal del
complemento a 2 con signo) -- lee más acerca de la operación Complemento a dos.
Puedes usar el método clasificar () para ordenar los elementos de una lista, por ejemplo:
También hay un método de lista llamado contrarrestar (), que puedes usar para invertir la
lista, por ejemplo:
Una función es un bloque de código que realiza una tarea específica cuando la función es
llamada (invocada). Las funciones son útiles para hacer que el código sea reutilizable,
que este mejor organizado, y más legible. Las funciones contienen parámetros y pueden
retornar valores.
Existen al menos cuatro tipos de funciones básicas en Python: están las que se encuentran
en módulos preinstalados. funciones definidas por el usuario las cuales son escritas por
los programadores para los programadores - puedes escribir tus propias funciones y
utilizarlas libremente en tu código, las funciones Lamb da (aprenderás acerca de ellas en
el curso Fundamentos de Python 2.)
Las funciones propias se pueden definir utilizando la palabra reservada definitivamente y
con la siguiente sintaxis:
def your_function(optional parameters):
# el cuerpo de la función
Una variable que existe fuera de una función tiene alcance dentro del cuerpo de la función
Una función puede invocar otras funciones o incluso a sí misma. Cuando una función se
invoca a sí misma, se le conoce como recursividad, y la función que se invoca a sí misma
y contiene una condición de terminación (la cual le dice a la función que ya no siga
invocándose a sí misma) es llamada una función recursiva.
Se pueden emplear funciones recursivas en Python para crear funciones limpias,
elegantes, y dividir el código en trozos más pequeños. Sin embargo, se debe tener mucho
cuidado ya que es muy fácil cometer un error y crear una función la cual nunca terminará.
También se debe considerar que las funciones recursivas consumen mucha memoria, y
por lo tanto pueden ser en ocasiones ineficientes.
Al emplear la recursividad, se deben de tomar en cuenta tanto sus ventajas como
desventajas.
La función factorial es un ejemplo clásico de cómo se puede implementar el concepto de
recursividad:
Debes recordar cómo probar y depurar tu código. Utiliza técnicas de depuración como
depuración de impresión; si es posible - pide a alguien que lea tu código y te ayude a
encontrar errores o mejorarlo; intenta aislar el fragmento de código que es problemático
y susceptible a errores: prueba tus funciones aplicando valores de argumento predecibles,
y trata de manejar las situaciones en las que alguien ingresa valores incorrectos; comenta
las partes del código que ocultan el problema. Finalmente, toma descansos y vuelve a tu
código después de un tiempo con un par de ojos nuevos.
CONCLUSIONES
Los fundamentos esenciales de la programación, tales como variables, tipos de datos y
estructuras de control, se exponen de manera precisa y accesible. Además, se incluyen
ejemplos ilustrativos y ejercicios prácticos, brindando a los estudiantes la oportunidad de
poner en práctica estos conceptos específicamente en el entorno del lenguaje de
programación Python. Este enfoque no solo facilita la comprensión de los estudiantes,
sino que también contribuye al fortalecimiento de sus habilidades de programación al
aplicar los conocimientos adquiridos en situaciones prácticas y concretas.
El programa educativo ha impartido las destrezas esenciales para examinar problemas y
descomponerlos en elementos más pequeños y manejables. Se ha adquirido la capacidad
de identificar requisitos, establecer metas bien definidas y comprender las limitaciones
del problema en cuestión. Esta competencia analítica posibilita abordar proyectos de
programación de manera sistemática y eficaz, promoviendo una aproximación
estructurada para enfrentar desafíos en el ámbito de la programación.