Curso basico de python
Contenido
Curso basico de python ....................................................................................................................... 1
¿Qué es un algoritmo? .................................................................................................................... 2
Instalación de herramientas para programar ................................................................................. 3
Consola ............................................................................................................................................ 3
Operadores aritméticos .................................................................................................................. 3
Variables .......................................................................................................................................... 4
Los primitivos: tipos de datos sencillos ........................................................................................... 5
Convertir un dato a un tipo diferente ............................................................................................. 6
Operadores lógicos y de comparación ............................................................................................ 7
Primer programa: conversor de monedas ...................................................................................... 9
Condicionales ................................................................................................................................ 11
Varios países en el conversor de monedas ................................................................................... 12
Funciones ...................................................................................................................................... 15
Aplicando funciones al conversor de monedas ............................................................................ 17
Cadenas de caracteres .................................................................................................................. 19
Slices .............................................................................................................................................. 21
Proyecto: Palíndromo.................................................................................................................... 22
Bucles ............................................................................................................................................ 23
Bucle while .................................................................................................................................... 24
Bucle FOR ...................................................................................................................................... 25
Recorriendo un string con for ....................................................................................................... 27
Interrumpir ciclos con break y continue ....................................................................................... 28
Proyecto prueba de primalidad .................................................................................................... 31
Proyecto: video juego ................................................................................................................... 34
Almacenar varios valores en una variable: listas .......................................................................... 35
Tuplas ............................................................................................................................................ 38
Diccionarios ................................................................................................................................... 39
Proyecto: generador de contraseñas ............................................................................................ 43
Un DevOps es el encargado de mantener toda la infraestructura a partir de la cual funciona una
aplicación.
Python funciona bien en los siguientes campos
¿Qué es un algoritmo?
Es una serie de pasos ordenados para resolver un problema.
• Serie de pasos ordenados para resolver un problema
• Finito
• No es ambiguo: No se puede tener un paso que un contexto signifique una cosa y en otor
contexto otra cosa
Instalación de herramientas para programar
1. Editor de código: Visual studio code, PYChar, Sublime text, Atom.
[Link]
2. Consola: Manejar la computadora sin necesidad de la interfaz gráfica. CMD, PowerShell,
Cmder. [Link]
3. Lenguaje: Python. [Link]
Consola
CTRL+L: Limpiar pantalla
cd: Change directory. Cambiar directorio. cd .. mover a carpeta padre. cd nombre de la carpeta
ls: lista de archivos
mkdir: make directory. Crear una carpeta. mkdir nombre de la carpeta
touch: crear archivo. Touch nombre [Link]ón
[Link]
desarrollo reto:
cd Escritorio
mkdir 20210713
cd 20210713
touch [Link]
touch [Link]
touch [Link]
ls
Operadores aritméticos
Abrir consola interactiva.
py (En Linux o mac Python3)
Aquí podemos ingresar una operación matemática y ver el resultado inmediatamente
5+5
10
Pero en el código deberíamos incluir print
print(5+5)
10
Para división entera o euclidiana:
21 // 4
Para el módulo:
21 % 5
Potencia:
2 ** 2
Python sigue las reglas de precedencia de operadores. Es decir, resuelve primero los paréntesis,
después potencias y raíces, luego multiplicaciones y divisiones y finalmente sumas y restas.
Variables
Hablando en términos matemáticos o lógicos una variable es un símbolo constituyente de un
predicado, formula, algoritmo o proposición. Fuera del ámbito matemático se utiliza para desinar
una cantidad que puede tomar distintitos valores dentro de un conjunto de números especificado.
De manera fácil es una caja donde podemos guarda objetos. Tiene un nombre que lo identifica de
manera única.
Con el comando exit() salgo de la consola interactiva de Python.
Guardar un numero en una variable:
>>> numero = 3
>>> print(numero)
>>> numero
>>> numero1 = 5
>>> numero2 = 6
>>> numero1
>>> numero2
>>> numero1 + numero2
11
>>> numero1 = 12
>>> numero1
12
>>> numero1 + numero2
18
>>> numero1 - numero2
>>> numero_resultado = numero1 + numero2
>>> numero_resultado
18
Las reglas para los identificadores son:
• No puede comenzar con un número
• Las palabras deben estar en minúsculas
• Si se tienen varias palabras se deben separar con guion bajo (_)
Los primitivos: tipos de datos sencillos
En este caso cuando no referimos a objetos no hablamos de programación orientada a objetos si
no de tipos de datos. En Python todo es un objeto.
Tipos de datos:
• Números enteros
• Números de punto flotante
• Textos (cadenas de caracteres (string))
• Booleanos (Verdadero y falso)
+ para concatenar texto, * Repetir texto
El separador de decimales es el punto (.)
>>> nombre = ""
>>> nombre = "Andres"
>>> nombre2 = 'María José'
>>> nombre2
'María José'
>>> nombre + nombre2
'AndresMaría José'
>>> nombre + nombre2
'AndresMaría José'
>>> nombre * 4
'AndresAndresAndresAndres'
>>> nombre + ", " + nombre2
'Andres, María José'
>>> numero_decimal = 3.4
>>> numero_decimal
3.4
>>> es_estudiante = True
>>> es_estudiante
True
>>> trabaja = False
>>> trabaja
False
Convertir un dato a un tipo diferente
Con el comando input un numero se guarda como cadena de texto
>>> numero1 = input("Escribe un número: ")
Escribe un número: 4
>>> numero1
'4'
>>> numero2 = input("Escribe un número: ")
Escribe un número: 5
>>> numero2
'5'
>>> numero1 + numero2
'45'
>>> numero1 = int(numero1)
>>> numero1
4
>>> numero2 = int(numero2)
>>> numero2
>>> numero1 + numero2
>>> numero_decimal = 4.5
>>> int(numero_decimal)
>>> str(numero_decimal)
'4.5'
>>>
Operadores lógicos y de comparación
and para comparar si dos valores son verdaderos.
or para comparar si dos valores son falsos.
not para invertir el valor booleano.
== Compara dos valores y te dice si son iguales o no.
!= Compara dos valores y te dice sin son diferentes o no.
> Compara si es mayor que otro valor.
> Compara si es menor que otro valor.
>= igual o mayor que el valor a comparar.
<= igual o menor que el valor a comparar.
>>> es_estudiante = True
>>> es_estudiante
True
>>> trabaja = False
>>> trabaja
False
>>> es_estudiante and trabaja
False
>>> es_estudiante or trabajo
True
>>> not es_estudiante
False
>>> not trabaja
True
>>> numero1 = 5
>>> numero2 = 5
>>> numero1
>>> numero2
>>> numero1 == numero2
True
>>> numero3 = 7
>>> numero3
>>> numero1 == numero3
False
>>> numero1 != numero3
True
>>> numero1 > numero3
False
>>> numero1 < numero3
True
>>> numero1 >= numero3
False
>>> numero1 >= numero2
True
>>> numero1 <= numero2
True
>>> numero1 <= numero3
True
>>>
Primer programa: conversor de monedas
Creación programa en Visual Studio
pesos = input("¿Cuántos pesos colombianos tienes?: ")
pesos = float(pesos)
valor_dolar = 3875
dolares = pesos / valor_dolar
dolares = str(dolares)
print("Tienes $" + dolares + " dólares")
Guardar siempre con extensión .py
Ejecución en consola
D:\Documentos\Cursos\Curso basico de Python\Consola
λ cd ..
D:\Documentos\Cursos\Curso basico de Python
λ ls
'~$sico [Link]' 'Instalación de nuestras herramientas en [Link]'
'Basico [Link]' 'Instalación de nuestras herramientas en [Link]'
Consola/ Programas/
D:\Documentos\Cursos\Curso basico de Python
λ cd Programas
D:\Documentos\Cursos\Curso basico de Python\Programas
λ ls
[Link]
D:\Documentos\Cursos\Curso basico de Python\Programas
λ py [Link]
¿Cuántos pesos colombianos tienes?: 10000
Tienes $2.5806451612903225 dólares
Corrigiendo redondeo de decimales con la función round
pesos = input("¿Cuántos pesos colombianos tienes?: ")
pesos = float(pesos)
valor_dolar = 3875
dolares = pesos / valor_dolar
dolares = round(dolares, 2)
dolares = str(dolares)
print("Tienes $" + dolares + " dólares")
RETO con euro
euro a dólar
euro = input("¿Cuántos euros tienes?: ")
euro = float(euro)
valor_dolar = (1 / 1.18)
dolares = euro / valor_dolar
dolares = round(dolares, 2)
dolares = str(dolares)
print("Tienes $" + dolares + " dólares")
py conversor_euro_dolar.py
¿Cuántos euros tienes?: 1
Tienes $1.18 dólares
dólar a euro
dolar = input("¿Cuántos dólares tienes?: ")
dolar = float(dolar)
valor_euro = (1.18)
euros = dolar / valor_euro
euros = round(euros, 2)
euros = str(euros)
print("Tienes € " + euros + " euros")
py conversor_dolar_euro.py
¿Cuántos dólares tienes?: 1
Tienes € 0.85 euros
Condicionales
Después de los : siempre en la siguiente línea va con una indentación de cuatro espacios
edad = int(input("Escribe tu edad: "))
if edad > 17:
print("Eres mayor de edad")
else:
print("Eres menor de edad")
λ py [Link]
Escribe tu edad: 15
Eres menor de edad
D:\Documentos\Cursos\Curso basico de Python\Programas
λ py [Link]
Escribe tu edad: 29
Eres mayor de edad
Ctrl + } comenta todo lo seleccionado
# edad = int(input("Escribe tu edad: "))
# if edad > 17:
# print("Eres mayor de edad")
# else:
# print("Eres menor de edad")
numero = int(input("Escribe un número: "))
if numero > 5:
print("Es mayor a 5")
elif numero == 5:
print("Es igual a 5")
else:
print("Es menor a 5")
λ py [Link]
Escribe un número: 6
Es mayor a 5
D:\Documentos\Cursos\Curso basico de Python\Programas
λ py [Link]
Escribe un número: 5
Es igual a 5
D:\Documentos\Cursos\Curso basico de Python\Programas
λ py [Link]
Escribe un número: 4
Es menor a 5
Varios países en el conversor de monedas
Otra forma de incluir texto es con triples comillas “””adhkashdkhaskhdkash”””
Win + . para incluir un emoji
menu = """
Bienvenido al conversor de monedas 💰
1 - Pesos colombianos
2 - Pesos argentinos
3 - Pesos mexicanos
Elige una opción: """
opcion = int(input(menu))
if opcion == 1:
pesos = input("¿Cuántos pesos colombianos tienes?: ")
pesos = float(pesos)
valor_dolar = 3875
dolares = pesos / valor_dolar
dolares = round(dolares, 2)
dolares = str(dolares)
print("Tienes $" + dolares + " dólares")
elif opcion == 2:
pesos = input("¿Cuántos pesos argentinos tienes?: ")
pesos = float(pesos)
valor_dolar = 65
dolares = pesos / valor_dolar
dolares = round(dolares, 2)
dolares = str(dolares)
print("Tienes $" + dolares + " dólares")
elif opcion == 3:
pesos = input("¿Cuántos pesos mexicanos tienes?: ")
pesos = float(pesos)
valor_dolar = 24
dolares = pesos / valor_dolar
dolares = round(dolares, 2)
dolares = str(dolares)
print("Tienes $" + dolares + " dólares")
else:
print("Ingresa una opción correcta por favor")
λ py [Link]
Bienvenido al conversor de monedas �
1 - Pesos colombianos
2 - Pesos argentinos
3 - Pesos mexicanos
Elige una opción: 1
¿Cuántos pesos colombianos tienes?: 20000
Tienes $5.16 dólares
D:\Documentos\Cursos\Curso basico de Python\Programas
λ py [Link]
Bienvenido al conversor de monedas �
1 - Pesos colombianos
2 - Pesos argentinos
3 - Pesos mexicanos
Elige una opción: 2
¿Cuántos pesos argentinos tienes?: 70
Tienes $1.08 dólares
D:\Documentos\Cursos\Curso basico de Python\Programas
λ py [Link]
Bienvenido al conversor de monedas �
1 - Pesos colombianos
2 - Pesos argentinos
3 - Pesos mexicanos
Elige una opción: 3
¿Cuántos pesos mexicanos tienes?: 240
Tienes $10.0 dólares
D:\Documentos\Cursos\Curso basico de Python\Programas
λ py [Link]
Bienvenido al conversor de monedas �
1 - Pesos colombianos
2 - Pesos argentinos
3 - Pesos mexicanos
Elige una opción: 4
Ingresa una opción correcta por favor
Funciones
Debo definir la función y luego invoco la función
def imprimir_mensaje():
print("Mensaje especial: ")
print("¡Estoy aprendiendo a usar funciones")
imprimir_mensaje()
imprimir_mensaje()
imprimir_mensaje()
λ py [Link]
Mensaje especial:
¡Estoy aprendiendo a usar funciones
Mensaje especial:
¡Estoy aprendiendo a usar funciones
Mensaje especial:
¡Estoy aprendiendo a usar funciones
Parámetros son variables que voy a tener disponibles para usar dentro de la función
def conversacion(mensaje):
print("Hola")
print("Cómo estás")
print(mensaje)
print("Adios")
opcion = int(input("Elige una opción (1, 2, 3): "))
if opcion == 1:
conversacion("Elegiste la opcion 1")
elif opcion == 2:
conversacion("Elegiste la opción 2")
elif opcion == 3:
conversacion("Elegiste la opción 3")
else:
print("Escribe la opción correcta")
λ py [Link]
Elige una opción (1, 2, 3): 1
Hola
Cómo estás
Elegiste la opcion 1
Adios
D:\Documentos\Cursos\Curso basico de Python\Programas
λ py [Link]
Elige una opción (1, 2, 3): 2
Hola
Cómo estás
Elegiste la opción 2
Adios
D:\Documentos\Cursos\Curso basico de Python\Programas
λ py [Link]
Elige una opción (1, 2, 3): 3
Hola
Cómo estás
Elegiste la opción 3
Adios
D:\Documentos\Cursos\Curso basico de Python\Programas
λ py [Link]
Elige una opción (1, 2, 3): 4
Escribe la opción correcta
Aplicando funciones al conversor de monedas
Con return puedo devolver una variable para utilizarla por fuera de la función
def suma(a, b):
print("Se suman dos números")
resultado = a + b
return resultado
sumatoria = suma(1, 4)
print(sumatoria)
λ py [Link]
Se suman dos números
Aplicado al conversor de monedas
def conversor(tipo_pesos, valor_dolar):
pesos = input("¿Cuántos pesos" + tipo_pesos + "tienes?: ")
pesos = float(pesos)
dolares = pesos / valor_dolar
dolares = round(dolares, 2)
dolares = str(dolares)
print("Tienes $" + dolares + " dólares")
menu = """
Bienvenido al conversor de monedas 💰
1 - Pesos colombianos
2 - Pesos argentinos
3 - Pesos mexicanos
Elige una opción: """
opcion = int(input(menu))
if opcion == 1:
conversor("colombianos", 3875)
elif opcion == 2:
conversor("argentinos", 65)
elif opcion == 3:
conversor("mexicanos", 24)
else:
print("Ingresa una opción correcta por favor")
λ py [Link]
Bienvenido al conversor de monedas �
1 - Pesos colombianos
2 - Pesos argentinos
3 - Pesos mexicanos
Elige una opción: 1
¿Cuántos pesoscolombianostienes?: 30000
Tienes $7.74 dólares
D:\Documentos\Cursos\Curso basico de Python\Programas
λ py [Link]
Bienvenido al conversor de monedas �
1 - Pesos colombianos
2 - Pesos argentinos
3 - Pesos mexicanos
Elige una opción: 2
¿Cuántos pesosargentinostienes?: 130
Tienes $2.0 dólares
D:\Documentos\Cursos\Curso basico de Python\Programas
λ py [Link]
Bienvenido al conversor de monedas �
1 - Pesos colombianos
2 - Pesos argentinos
3 - Pesos mexicanos
Elige una opción: 3
¿Cuántos pesosmexicanostienes?: 67
Tienes $2.79 dólares
Cadenas de caracteres
Colocar en mayúsculas el texto. Método es una función que es especial para un tipo de dato en
particular.
>>> nombre = input("¿Cuál es tu nombre?: ")
¿Cuál es tu nombre?: facundo
>>> [Link]()
'FACUNDO'
>>> [Link]()
'Facundo'
>>> nombre = [Link]()
>>> nombre
'Facundo'
Quitar espacio método strip
>>> nombre
'Facundo '
>>> nombre = [Link]()
>>> nombre
'Facundo'
Cambiar a minúsculas método lower
>>> nombre = [Link]()
>>> nombre
'facundo'
Remplazar caracteres método replace
>>> nombre = [Link]("o", "a")
>>> nombre
'facunda'
Acceder a caracteres que tiene una cadena de caracteres lo hago mediante índices. El índice inicia
en 0
>>> nombre[0]
'f'
>>> nombre[1]
'a'
>>> letra = nombre[2]
>>> letra
'c'
Para averiguar el numero de caracteres de una cadena de caracteres se usa la función len
>>> len(nombre)
>>> len(letra)
>>> len("Hola! Este es el curso de python")
32
Funciones con len o print son funciones built in es decir que son funciones que vienen dentro del
lenguaje y que no necesito crear para poder invocarlas
Slices
>>> nombre = "Francisco"
>>> nombre
'Francisco'
>>> nombre[0]
'F'
>>> nombre[1]
'r'
>>> nombre[0:3]
'Fra'
>>> nombre[:3]
'Fra'
>>> nombre[3:]
'ncisco'
>>> nombre[1:7]
'rancis'
>>> nombre[1:7]
'rancis'
>>> nombre[1:7:2]
'rni'
>>> nombre[::]
'Francisco'
>>> nombre[1::3]
'rcc'
>>> nombre[::-1]
'ocsicnarF'
Proyecto: Palíndromo
Palabra o frases que se leen igual, al contrario.
Como buena practica se debe dejar dos espacios entre funciones.
La ejecución del programa siempre se deja en una función main o run. Se incluye el punto de
entrada.
def palindromo(palabra):
palabra = [Link](' ', '')
palabra = [Link]()
palabra_invertida = palabra[::-1]
if palabra == palabra_invertida:
return True
else:
return False
def run():
palabra = input('Escribe una palabara: ')
es_palindromo = palindromo(palabra)
if es_palindromo == True:
print('Es palindromo')
else:
print('No es palíndromo')
if __name__ == '__main__':
run()
λ py [Link]
Escribe una palabara: Luz Azual
No es palíndromo
D:\Documentos\Cursos\Curso basico de Python\Programas
λ py [Link]
Escribe una palabara: Luz Azul
Es palindromo
D:\Documentos\Cursos\Curso basico de Python\Programas
λ py [Link]
Escribe una palabara: Platzi
No es palíndromo
Bucles
Bucle while
Es el bucle fundamental, casi todos los lenguajes lo implementan de manera nativa.
Las constantes se definen en mayúscula
def run():
LIMITE = 1000
contador = 0
potencia_2 = 2**contador
while potencia_2 < LIMITE:
print('2 elevado a ' + str(contador) + ' es igual a: ' + str(potenci
a_2))
contador = contador + 1
potencia_2 = 2**contador
if __name__ == '__main__':
run()
λ py [Link]
2 elevado a 0 es igual a: 1
2 elevado a 1 es igual a: 2
2 elevado a 2 es igual a: 4
2 elevado a 3 es igual a: 8
2 elevado a 4 es igual a: 16
2 elevado a 5 es igual a: 32
2 elevado a 6 es igual a: 64
2 elevado a 7 es igual a: 128
2 elevado a 8 es igual a: 256
2 elevado a 9 es igual a: 512
Bucle FOR
Rage para definir un rango y list para convertir ese rango en una lista
a = list(range(1000))
print(a)
λ py [Link]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387,
388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467,
468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527,
528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547,
548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567,
568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587,
588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607,
608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627,
628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647,
648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667,
668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687,
688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707,
708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727,
728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747,
748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767,
768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787,
788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807,
808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827,
828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847,
848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867,
868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887,
888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907,
908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927,
928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947,
948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967,
968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987,
988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999]
def run():
LIMITE = 1000
for contador in range(1, LIMITE+1):
print(contador)
if __name__ == '__main__':
run()
Imprimir la table del 11
for i in range(10):
print(11 * i)
λ py [Link]
11
22
33
44
55
66
77
88
Recorriendo un string con for
Forzar cerrado de programa en consola CTRL + C
def run():
nombre = input('Escribe tu nombre: ')
for letra in nombre:
print(letra)
if __name__ == '__main__':
run()
λ py [Link]
Escribe tu nombre: andres
def run():
# nombre = input('Escribe tu nombre: ')
# for letra in nombre:
# print(letra)
frase = input('Escribe una frase: ')
for caracter in frase:
print([Link]())
if __name__ == '__main__':
run()
λ py [Link]
Escribe una frase: Este es el curso de Python
E
Interrumpir ciclos con break y continue
Todo el código debajo de continue no se ejecuta
def run():
for contador in range(10):
if contador %2 != 0:
continue
print(contador)
if __name__ == '__main__':
run()
λ py break_continue.py
def run():
# for contador in range(10):
# if contador %2 != 0:
# continue
# print(contador)
for i in range (10):
print(i)
if i == 7:
break
if __name__ == '__main__':
run()
λ py break_continue.py
6
7
def run():
# for contador in range(10):
# if contador %2 != 0:
# continue
# print(contador)
# for i in range (10):
# print(i)
# if i == 7:
# break
texto = input('Escribe un texto: ')
for letra in texto:
if letra == 'o':
break
print(letra)
if __name__ == '__main__':
run()
λ py break_continue.py
Escribe un texto: andres alfonso rodiguez
reto break y continue en otro ciclo
Proyecto prueba de primalidad
Números primos: números que se dividen por si mismo o por 1.
En Python se puede obviar en el condicional if el == True
def es_primo(numero):
contador = 0
for i in range (1, numero+1):
if i == 1 or i == numero:
continue
if numero % i == 0:
contador += 1
if contador == 0:
return True
else :
return False
def run():
numero = int(input('Escribe un número: '))
if es_primo(numero):
print('Es primo')
else:
print('No es primo')
if __name__ == '__main__':
run()
λ py prueba_primalidad.py
Escribe un número: 1
Es primo
D:\Documentos\Cursos\Curso basico de Python\Programas
λ py prueba_primalidad.py
Escribe un número: 17
Es primo
D:\Documentos\Cursos\Curso basico de Python\Programas
λ py prueba_primalidad.py
Escribe un número: 49
No es primo
D:\Documentos\Cursos\Curso basico de Python\Programas
λ py prueba_primalidad.py
Escribe un número: 64
No es primo
Reto números primos
def es_primo(numero):
contador = 0
PRIMO = '23571'
for caracter in PRIMO:
if numero == 1:
contador += 1
break
if caracter == '1':
divisor = (int(caracter)) + 10
else:
divisor = int(caracter)
if divisor >= numero:
continue
if numero % divisor == 0:
contador += 1
if divisor > numero and numero // divisor > divisor:
contador = 0
if contador == 0:
return True
else :
return False
def run():
numero = int(input('Escribe un número: '))
if es_primo(numero):
print('Es primo')
else:
print('No es primo')
if __name__ == '__main__':
run()
λ py reto_numeros_primos.py
Escribe un número: 1
No es primo
D:\Documentos\Cursos\Curso basico de Python\Programas
λ py reto_numeros_primos.py
Escribe un número: 2
Es primo
D:\Documentos\Cursos\Curso basico de Python\Programas
λ py reto_numeros_primos.py
Escribe un número: 18
No es primo
D:\Documentos\Cursos\Curso basico de Python\Programas
λ py reto_numeros_primos.py
Escribe un número: 17
Es primo
Proyecto: video juego
Utilizar código escrito por otras personas. Para eso utilizo import
Con . por ejemplo, random. Accedemos a las funciones de un determinado modulo.
import random
def run():
numero_aleatorio = [Link](1,100)
numero_elegido = int(input('Elige un número del 1 al 100: '))
while numero_elegido != numero_aleatorio:
if numero_elegido < numero_aleatorio:
print('Buesca un número más grade')
else:
print('Busca un número más pequeño')
numero_elegido = int(input('Elige otro número: '))
print('¡Ganaste!')
if __name__ == '__main__':
run()
λ py adivina_el_numero.py
Elige un número del 1 al 100: 34
Buesca un número más grade
Elige otro número: 45
Buesca un número más grade
Elige otro número: 67
Buesca un número más grade
Elige otro número: 90
Buesca un número más grade
Elige otro número: 100
Busca un número más pequeño
Elige otro número: 99
Busca un número más pequeño
Elige otro número: 98
Busca un número más pequeño
Elige otro número: 97
Busca un número más pequeño
Elige otro número: 96
Busca un número más pequeño
Elige otro número: 95
¡Ganaste!
Almacenar varios valores en una variable: listas
Guardar varios objetos dentro de una caja
Las listas pertenecen a un conjunto llamado estructuras de datos. Las estructuras de datos son
formas que nos brindan los lenguajes de programación para guardar varios valores en una variable
con diferente formato. Las listas nos permiten guardar varios tipos de valores dentro de una
misma caja o variable.
λ py
Python 3.7.1 (default, Dec 10 2018, 22:54:23) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> numero = 1
>>> numero
>>> numero = 4
>>> numero
>>> numeros = [1, 3, 6, 8, 9, 45, 90]
>>> numeros
[1, 3, 6, 8, 9, 45, 90]
>>> objetos = ['Hola', 3, 4, 5, True]
>>> objetos
['Hola', 3, 4, 5, True]
>>> objeto[1]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'objeto' is not defined
>>> objetos[1]
>>> objetos[0]
'Hola'
>>> objetos[3]
>>> objetos[4]
True
>>> objetos[5]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
>>> [Link](False)
>>> objetos
['Hola', 3, 4, 5, True, False]
>>> [Link](1)
>>> objetos
['Hola', 3, 4, 5, True, False, 1]
>>> [Link](1)
>>> objetos
['Hola', 4, 5, True, False, 1]
>>> for elemento in objetos:
... print(elemento)
...
Hola
True
False
>>> objetos[::-1]
[1, False, True, 5, 4, 'Hola']
>>> objetos[1:3]
[4, 5]
>>>
Tuplas
Las listas requieren mucha memoria ya que son dinámicas y le puedo agregar datos, en este caso
es más útil las tuplas ya que son estáticos, es decir son inmutables. Los ciclos funcionan mucho
más rápidos con las tuplas. A las tuplas no se les puede ni retirar ni añadir objetos.
λ py
Python 3.7.1 (default, Dec 10 2018, 22:54:23) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> numeros=[1, 2, 3, 4, 5]
>>> numeros
[1, 2, 3, 4, 5]
>>> [Link]('Hola')
>>> numeros
[1, 2, 3, 4, 5, 'Hola']
>>> [Link](5)
'Hola'
>>> numeros
[1, 2, 3, 4, 5]
>>> numeros2 = [6, 7, 8, 9]
>>> numeros2
[6, 7, 8, 9]
>>> lista_final = numeros + numeros2
>>> lista_final
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> numeros * 5
[1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
>>> mi_tupla = (1, 2, 3, 4, 5)
>>> mi_tupla
(1, 2, 3, 4, 5)
>>> mi_tupla.append(5)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'append'
>>> mi_tupla.pop(2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'pop'
>>> for numero in mi_tupla:
... print(numero)
...
Diccionarios
Los diccionarios son unas estructuras de datos de llaves y valores. Vamos ha acceder a los datos a
través de llaves, es decir el nombre del índice. Una buena practica es incluir 4 espacios dentro de
las llaves para mantener un orden en el código.
def run():
mi_diccionario = {
'llave1': 1,
'llave2': 2,
'llave3': 3,
}
print(mi_diccionario)
if __name__ == '__main__':
run()
λ py [Link]
{'llave1': 1, 'llave2': 2, 'llave3': 3}
def run():
mi_diccionario = {
'llave1': 1,
'llave2': 2,
'llave3': 3,
}
print(mi_diccionario['llave1'])
print(mi_diccionario['llave2'])
print(mi_diccionario['llave3'])
if __name__ == '__main__':
run()
λ py [Link]
def run():
mi_diccionario = {
'llave1': 1,
'llave2': 2,
'llave3': 3,
}
# print(mi_diccionario['llave1'])
# print(mi_diccionario['llave2'])
# print(mi_diccionario['llave3'])
poblacion_paises = {
'Argentina' : 44938712,
'Brasil' : 210147125,
'Colombia' : 50372424
}
print(poblacion_paises['Argentina'])
if __name__ == '__main__':
run()
λ py [Link]
44938712
def run():
mi_diccionario = {
'llave1': 1,
'llave2': 2,
'llave3': 3,
}
# print(mi_diccionario['llave1'])
# print(mi_diccionario['llave2'])
# print(mi_diccionario['llave3'])
poblacion_paises = {
'Argentina' : 44938712,
'Brasil' : 210147125,
'Colombia' : 50372424
}
# print(poblacion_paises['Argentina'])
for pais in poblacion_paises.keys():
print(pais)
if __name__ == '__main__':
run()
λ py [Link]
Argentina
Brasil
Colombia
def run():
mi_diccionario = {
'llave1': 1,
'llave2': 2,
'llave3': 3,
}
# print(mi_diccionario['llave1'])
# print(mi_diccionario['llave2'])
# print(mi_diccionario['llave3'])
poblacion_paises = {
'Argentina' : 44938712,
'Brasil' : 210147125,
'Colombia' : 50372424
}
# print(poblacion_paises['Argentina'])
# for pais in poblacion_paises.keys():
# print(pais)
for pais in poblacion_paises.values():
print(pais)
if __name__ == '__main__':
run()
λ py [Link]
44938712
210147125
50372424
def run():
mi_diccionario = {
'llave1': 1,
'llave2': 2,
'llave3': 3,
}
# print(mi_diccionario['llave1'])
# print(mi_diccionario['llave2'])
# print(mi_diccionario['llave3'])
poblacion_paises = {
'Argentina' : 44938712,
'Brasil' : 210147125,
'Colombia' : 50372424
}
# print(poblacion_paises['Argentina'])
# for pais in poblacion_paises.keys():
# print(pais)
# for pais in poblacion_paises.values():
# print(pais)
for pais, poblacion in poblacion_paises.items():
print(pais + ' tiene ' + str(poblacion) + ' habitantes')
if __name__ == '__main__':
run()
λ py [Link]
Argentina tiene 44938712 habitantes
Brasil tiene 210147125 habitantes
Colombia tiene 50372424 habitantes
Proyecto: generador de contraseñas
[Link] es una función especial del modulo random y me permite elegir al azar un item en
este caso de la lista.
"".join(contrasena) me genera un string a partir de la lista.
import random
def generar_contrasena():
mayusculas = ['A', 'B', 'C', 'D', 'E', 'F', 'G']
minusculas = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
simbolos = ['!', '#', '$', '&', '/', '(', ')']
numeros = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']
caracteres = mayusculas + minusculas + simbolos+ numeros
contrasena = []
for i in range(15):
caracter_random = [Link](caracteres)
[Link](caracter_random)
contrasena = "".join(contrasena)
return contrasena
def run():
contrasena = generar_contrasena()
print('Tu nueva contraseña es: ' + contrasena)
if __name__ == '__main__':
run()
λ py generador_contrasena.py
Tu nueva contraseña es: eebEF65#d49a9/(
D:\Documentos\Cursos\Curso basico de Python\Programas
λ py generador_contrasena.py
Tu nueva contraseña es: $60DfE!8B17bc!$
D:\Documentos\Cursos\Curso basico de Python\Programas
λ py generador_contrasena.py
Tu nueva contraseña es: $B72ad4g4)Ebba3