Recursos, Herramientas, Sitios Utiles y mas

Tutoriales, ayuda, base de conocimientos

Canales de Youtube acerca de Python

https://pythonprogramming.net/

http://www.pythontutor.com/

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/

Como salir de WHILE en Python


Editores de Codigo

https://thonny.org/

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.

https://repl.it/

Repl_it

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?

  1. Ingreso un valor input (“ing otro:”)
  2. Lo convierto a entero int(input (“ing otro:”))
  3. Lo convierto a cadena alfanumerica str(int(input (“ing otro:”)))
  4. 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.

Leave a Reply

Your email address will not be published. Required fields are marked *