#!/usr/bin/env python
'''
Bucles [Python]
Ejercicios de clase
---------------------------
Autor: Inove Coding School
Version: 1.1

Descripcion:
Programa creado para poner a prueba los conocimientos
adquiridos durante la clase
'''

__author__ = "Inove Coding School"
__email__ = "alumnos@inove.com.ar"
__version__ = "1.1"


def ej1():
    # Ejercicios con bucles "while"

    x = 0
    maximo = 6
    # Dado el siguiente "while", complete la condicion
    # para que el "while" itere siempre que <x sea menor a 6>
    # Además, complete la línea de código necesaria para que
    # el valor de "x" incremente "1" en cada iteración
    while x < maximo:    # reemplace "condicion" por lo que crea necesario
        print("Valor de x =", x)
        x += 1
        # Coloque la línea de código para que "X" incremente "1"

    x = 5
    mayor = 0
    # Dado el siguiente "while", complete la condicion
    # para que el "while" itere siempre que <x sea mayor o igual a 0>
    # Además, complete la línea de código necesaria para que
    # el valor de "x" decremente "1" en cada iteración

    while x >= mayor:    # reemplace "condicion" por lo que crea necesario
        print("Valor de x =", x)
        x -= 1
        # Coloque la línea de código para que "X" decremente "1"


def ej2():
    # Ejemplos con bucles "for"

    # Dado la siguiente lista de colores, utilizar "for"
    # para imprimir en pantalla todos los colores
    colores = ['rojo', 'naranja', 'verde', 'azul']

    # Itere el "for" utilizando la lista como parámero
    # y utilizar como elemento del "for" cada color
    # for color ...
    for color in colores:
        print(color)


    # Itere el "for" utilizando el tamaño de la lista
    # como parámetro y utilizar el índice para acceder a
    # los elementos de la lista
    # for i ...
    long_colores = len(colores)

    for i in range(long_colores):
        if i < long_colores:
            print(colores[i])
            i += 1


def ej3():
    # Ejemplos con bucles "for"

    # Dado la siguiente lista de números, utilizar "for"
    # para recorrer toda la lista y realizar la sumatoria de todos los números
    # La sumatoria se deberá ir guardando en la variable "suma"
    numeros = [1, 5, -1, 6, 10, 2, -5]
    suma = 0   # Variable ya inicializada, la suma arranca en cero
    numero = 0
    largo = len(numeros)
    for i in range(largo):
        if i < (largo):
            numero = numeros[i]
            suma = suma + numero
            i += 1
        print("Suma parcial: ", suma)    # Imprime los parciales de suma
    print("El total de la suma es: ", suma)   #Imprime la suma total y final





def ej4():
    # Ejercicios con bucles "while"

    x = 0
    # Realizar un bucle "while" cuya condición de continuidad
    # sea que <x sea menor a 10> y que <x sea distinto de 6>
    # Colocar ambas condiciones como condicion del "while" realizando
    # una condición compuesta (utilice el operador "and" o "or" según corresponda)
    # En cada iteracion del bucle debe incrementar el valor de "x" en "2"
    # e imprimir en pantalla el resultado de X (antes de incrementar) con print
    while x < 10 and x != 6:
        print(x)
        x += 2

    # Realice el mismo bucle "while" pero en vez de estar formado por una condición
    # compuesta, que el "while" siga iterando mientras <x sea menos a 10>, y dentro del
    # "while" consultar si <x es igual a 6>, y en ese caso realizar una interrupción del bucle
    # En cada iteracion del bucle debe incrementar el valor de "x" en "2"
    # e imprimir en pantalla el resultado de X (antes de incrementar) con print
    x = 0
    while x < 10:
        if x != 6:
            print(x)
            x += 2
        else:
             break



def ej5():
    # Ejercicio de seuencias numéricas
    # Pedir por consola dos números que representen el principio y fin de una
    # secuencia numérica.
    # Realizar un bucle "for" que recorra esa secuencia armada con "range"
    # y calcule la sumatoria total de todos los números dentro de esa secuencia
    # Tener en cuenta que "range" no incluye el número de "fin" en su secuencia,
    # sino que va hasta el anterior

    inicio = int(input('Ingrese el primer número de la secuencia\n'))
    final = int(input("Ingrese el último numero de la secuencia\n"))
    suma_total = 0
    suma_parcial = inicio
    for i in range(inicio, final):
        if i < final:
            suma_total = suma_total + suma_parcial
            suma_parcial = suma_parcial + 1
            i += 1
    print("La suma total de ese rango es: ", suma_total + final)

    # Otra forma parecida de construirlo

    #inicio = int(input('Ingrese el primero número de la secuencia\n'))
    #final = int(input("Ingrese el último numero de la secuencia\n"))
    ultimo = final + 1
    suma_total = 0
    suma_parcial = inicio
    for i in range(inicio, ultimo):
        if i < ultimo:
            suma_total = suma_total + suma_parcial
            suma_parcial = suma_parcial + 1
            i += 1
    print("La suma total de ese rango es: ", suma_total)



    # fin....

    # for ... in range(....)

    # Imprimir el valor de la sumatoria


def ej6():
    # Ejercicio de seuencias numéricas
    # Pedir por consola dos números que representen el principio y fin de una
    # secuencia numérica.
    # Realizar un bucle "for" que recorra esa secuencia armada con "range"
    # y cuante cuantos números son negativos y cuantos números son mayor o igual a cero
    # Tener en cuenta que "range" no incluye el número de "fin" en su secuencia,
    # sino que va hasta el anterior
    cantidad_numeros_positivos = 0
    numeros_negativos = 0
    #inicio = None
    #final = None
    inicio = int(input('Ingrese el primero número de la secuencia\n'))
    final = int(input("Ingrese el último número de la secuencia\n"))
    ultimo = final + 1
    numero = inicio
    for i in range(inicio, ultimo):
        if numero >= 0:
            numero = numero + 1
            cantidad_numeros_positivos += 1
        else:
            numero = numero + 1
            numeros_negativos += 1
    print("Tiene", cantidad_numeros_positivos, "numeros mayores o iguales a cero")
    print("Y tiene", numeros_negativos, "numeros negativos")



    # fin....

    cantidad_numeros_positivos = 0  # Inicializo el contador en 0
    #cantidad_numeros_negativos

    # for ... in range(....)

    # Imprimir el valor de la cantidad de números positivos y negativos


if __name__ == '__main__':
    print("Bienvenidos a otra clase de Inove con Python")
    #ej1()
    #ej2()
    #ej3()
    #ej4()
    #ej5()
    ej6()
