Tutoriales, ayuda, base de conocimientos
Canales de Youtube acerca de Python
https://pythonprogramming.net/
https://medium.com/python-pandemonium
https://python-para-impacientes.blogspot.com/p/indice.html
https://www.tutorialpython.com/
https://uniwebsidad.com/libros/python
https://docs.python.org/3/tutorial/
https://programminghistorian.org/es/lecciones/reutilizacion-de-codigo-y-modularidad
https://www.snakify.org/es/lessons/for_loop_range/
https://entrenamiento-python-basico.readthedocs.io/es/latest/leccion4/bucle_for.html
https://medium.com/@jasonrigden/a-guide-to-python-itertools-82e5a306cdf8
https://pynative.com/python-range-function/
https://rstopup.com/como-salir-del-bucle-while-en-python.htm
Python Examples MUST do – Coders Forever
https://pythones.net/clases-y-metodos-python-oop/
Ejercicios y Soluciones
https://www.w3resource.com/python-exercises/
https://pynative.com/python-basic-exercise-for-beginners/
http://www.openbookproject.net/thinkcs/archive/python/spanish2e/
http://www.pythondiario.com/2013/05/ejercicios-resueltos-en-python-parte-1.html
http://www.mclibre.org/consultar/python/
Editores de Codigo
Editores en la nube
Repl.it
Programa en la nube, ejecuta el codigo, compartilo, impresionante herramienta, imprescindible. lleva tu codigo a todas partes, ams de 50 lenguajes para programar.
Python para web
https://programminghistorian.org/es/lecciones/trabajar-con-paginas-web
https://programminghistorian.org/en/lessons/downloading-multiple-records-using-query-strings
https://programminghistorian.org/es/lecciones/descarga-automatizada-con-wget
CONCEPTOS INICIALES
Python ES sensitivo a la tabulacion, es decir, si nuestro codigo no esta perfetamente “ordenado”, al momento de ejecutarlo dara error, on lo cul es importantisimo revisar el mismo y utilizar un editor que “trabaje” con Python a fin de que automatiamente geenre las tabulaciones en funcion de nustro codigo.
Vamos a utilizar un metodo, esto es, un modo de trabajo.
El mismo sera como sigue:
“”” -> triple comillas para comentario inicial de lo que hace nuestro programa
# -> comentarios DENTRO del programa, es decir, para aclarar lo que hacen ciertas lineas o variables
def (): y main() -> con esta lineas indicaremos el comienzo y fin de nuestro programa
El ejemplo completo quedaría así:
"""
Ejemplo de comentario inicial
"""
#ejemplo de comentario dentro del codigo
def main():
#todo lo que va aca dentro se ejecutara
main()
Una VARIABLE es una posición de memoria (un cajón) en el cual “guardamos” información para usarla.
- Recordar que aunque ingresemos un numero, para Python sera una cadena (texto) a menos que le indiquemos lo contrario con la sentenia INT (integer->entero)
- Para “poner algo” en ese cajón/variable, necesitamos algún método, por ejemplo:
a = 55
La asignación (=) funciona de derecha a izquierda, es decir
a = 55 NO significa que a es igual 55, sino que 55 VA dentro de a (se le asigna 55 a la variable a)
- Otro método seria pedirle al usuario que ingrese un valor para operar con el
a = input (‘ING UN VALOR: ‘)
Así que una vez que el usuario ingrese un valor, esa ira a parar a la variable a
Podemos mostrar lo que ingreso el usuario con
Print (“Usted ingreso: ”, a)
Podemos hacer varias cosas con las variables, entre ellas:
a = int(a) -> transforma el contenido de la variable a en un número entero
x = a -> asigna el valor de la variable a en la variable x
a = str(a) -> convierte el contenido de la variable a en “cadena alfanumérica”
c = a+b -> el resultado de la operación “sumar la variable a + la variable b” va a parar dentro de la variable c
- Recordar
que las instrucciones e ejecutan de derecha a izquierda, asi que en este
ejemplo el resultado sera una adena:
- b = str(int(input (“ing otro:”)))
¿Cómo?
- Ingreso un valor input (“ing otro:”)
- Lo convierto a entero int(input (“ing otro:”))
- Lo convierto a cadena alfanumerica str(int(input (“ing otro:”)))
- Si SUMO cadenas va a CONCATENAR, no va a ejecutar la suma aritmetica, para eso ambos valores deberan ser enteros
El ejercicio 1 es un ejemplo de lo mncionado mas arriba.
Conceptos de procesamiento de datos
Hay DOS formas de operar con datos:
- Conozco la totalidad de los Datos
- Proceso mientars hay datos
o visto de otro modo
- cuantos datos son
- como terminan
Lectura ANTICIPADA con WHILE
WHILE funciona por VERDADERO y no sale hasta que la condicion es FALSA, entonces tengo 3 cosas que pasan con los datos
ANTES-> para todos los datos
DURANTE-> para cada dato procesado
DESPUES-> los totales (cuando se termina el ciclo)
Proceso en secuencia-> logica repetitiva lo uso cuando NO se cuantos datos proceso, y el resultado SIEMPRE se muestra al final.
La segunda estructura de control, es un ciclo especializado; FOR-> establece un contador
Si bien con FOR se pueden hacer WHILE, la diferencia es que
FOR-> SE cuantos datos son
WHILE-> SE cuando terminan
Bucle FOR
FOR loop se usa para “iterar” por los elementos de una secuencia. Es decir, si queremos repetir una parte de codigo N veces, o recorrer una serie de caracteres.
El bucle FOR se distingue por tener una variable explicita, o contador.
Ejemplo
"""
ejemplos de FOR basicos
"""
# mostrar numeros del 1 al 10
def for_1 ():
for a in range (1, 11):
print (a)
for_1 ()
print ("\n \n")
#lo mismo pero usnndo una variable fuera del for
def for_2 ():
a = range (1, 11)
for i in a:
print (i)
for_2 ()
Resultado
>>> %Run intro_a_for_y_while.py
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
>>>
Otro Ejemplo
#ahora recorro una palabra y muestro ada caracter
def for_3 ():
palabra = "computadora"
for a in palabra:
print (a)
for_3 ()
Resultado
c
o
m
p
u
t
a
d
o
r
a
Bucle WHILE
Entonces el bucle WHILE hace “algo” MIENTRAS la condicion sea cierta. Esta compuesto por un bloque de codigo y la condicion.
La condicion es evaluada, si es VERDADERA, el bloque de codigo se ejecuta. Esto se repite hasta que la condicion se torna FALSA.
Ejemplo
#ejemplo en donde acepto input del user
#y termina cuando teclea "stop"
def while_input ():
while True:
datos = input ("Ingrese texto, stop para detenerse: ")
print (datos.lower())
if datos == "stop":
break
while_input ()
Resultado
Ingrese texto, stop para detenerse: uno
uno
Ingrese texto, stop para detenerse: dos
dos
Ingrese texto, stop para detenerse: hola
hola
Ingrese texto, stop para detenerse: stop
stop
>>>
Tips
What is the most clever yet simple algorithm?
A fast division-by-two of a given integer (rounded down), without actually doing division:
N >> 1
This operation is simply a right-bit-shift, which is done very quickly by the CPU. Far faster than any general division operation. Similarly, you can divide by 4, 8, 16, or any other power of two. You can also multiply the given integer by powers of two by using the left-bit-shift. Incredibly, this trick also works when the given integer is negative, thanks to the “two’s complement” method of representing negative integers.
A fast method for determining if a given integer is even or odd, without using the modulo operation.
N & 1
This operation is simply an “and 1”. It returns the value of the least-significant-bit (LSB) of the given integer. An odd integer will return 1, while an even integer will return 0. This too can be generalized to return the modulo of any power of two (2n), by replacing the “1” with the value of 2n−1. This trick also works with negative integers, thanks to the usage of “two’s compliment”.
A fast method for finding the maximum power of 2 that divides a given integer. This trick also works because of the usage of “two’s compliment”. And is obviously symmetric in sign, so it works for negative integers too.
-N & N
Opportunities to apply this algorithm would probably not come up as often as with the previous algorithms. But it’s probably worth remembering, if only because it might show up as an interview question.