Soluciones ejercicios

# Crea una función llamada area_cuadrado que tome
# la longitud de un lado como argumento y devuelva el área del cuadrado.

def area_cuadrado(lado):
    if lado<=0:
        return 0
    return lado*lado # return lado**2

# Crea una función llamada promedio que tome tres números
# como argumentos y devuelva su promedio.

def promedio(num1,num2,num3):
    return(num1+num2+num3)/3

print(promedio(2,4,6))

# Crea una función factorial que calcule el factorial de un número entero dado. El factorial de un número n se calcula
# como el producto de todos los enteros positivos desde 1 hasta n.

def factorial(numero):
    resultado=1
    for i in range(1,numero+1):
        resultado*=i
    return resultado

def factorial2(numero):
    resultado=numero
    for i in range(2,numero):
        resultado*=i
    return resultado

def factorial3(numero):
    resultado=1
    for i in range(numero,1,-1):
        resultado*=i
    return resultado

def factorial4(numero):
    for i in range(2,numero):
        numero*=i
    return numero

print(factorial4(5))

# Crea una función cuenta_letras a la que le pasamos una cadena y una letra
# y nos devuelva cuantas veces aparece esa letra en la cadena

def cuenta_letras(cadena,letra):
    cont=0
    # recorrer todas las letras de la cadena
    for caracter in cadena:
        # si la letra de la cadena es igual a la letra que nos pasan
        # contamos una aparición
        if caracter==letra:
            cont+=1
    return cont

print(cuenta_letras("hola que tal estas","s"))

Funciones

# funciones
# Un fragmento de código que realiza algo y que se puede reutilizar
# Una manera de organizar código, de simplificar flujo de programa
# Tener las cosas centralizadas

def saludo(nombre="Desconocido"): # parámetro nombre
    print("Hola",nombre,"que tal estás. Yo muy bien.")
    print("Es importante aprender las funciones")
    print("Y estudiar")

saludo("Juan")
print("yo no")
saludo("Ana")
print("Yo tampoco")
saludo(15)


def mayor(a,b):
    if (a>b):
        print(a)
    else:
        print(b)

mayor(8,8)
mayor(1,89)
mayor(87,1)

# PURAS

# funciones
# Un fragmento de código que realiza algo y que se puede reutilizar
# Una manera de organizar código, de simplificar flujo de programa
# Tener las cosas centralizadas

# Esto sí es una función pura
def saludo(nombre="Desconocido"): # parámetro nombre
    return "Hola "+nombre+" que tal estás. Yo muy bien." # return nos sirve para devolver algo


resultado=saludo("Juan")
print(resultado)

# Funciones puras
# es una caja negra. Le paso parámetros y me devuelve resultados
# Sin interactuar con el entorno

def mayor(a,b):
    if (a>b):
        return a
    else:
        return b

num=mayor(23,232)

# Un programa que sume una lista de numeros solo si son pares

def es_par(numero):
    return numero % 2 == 0
def sumaPares(lista):
    total = 0
    for numero in lista:
        if es_par(numero): # ¿Por qué utilizar una función?
            total += numero
    return total

lista=[1,2,3,4,5,6]

print(sumaPares(lista))

# Crear una función que le pasemos tres numeros y nos devuelva el mayor

# el def y el nombre
# parametros
# codigo que resuelve el problema
# devolver el resultado
# probar

def mayor(a,b,c):
    if a>=b and a>=c:
        return a
    if b>=a and b>=c:
        return b
    return c

print(mayor(10,200,200))

Bucles anidados

# pintar un arbolito
for i in range(5):
    for j in range(i + 1):
        print("*", end=" ")
    print()

# Todas las tablas de multiplicaar
for j in range(1,11):
    print("Tabla de multiplicar del ",j)
    for i in range(1,11):
        print(f"{i} x {j} = {i*j}")

# Todos los números primos hasta el 100
for numero in range(2,100):
    es_primo=True
    for i in range(2,numero):
        if (numero % i==0):
            es_primo=False
            break
    if es_primo:
        print(numero, end=", ")

for i in range(2,20):
    numero=i
    while numero!=1:
    # Si el número es par (numero %2==0) dividirlo entre 2
        print(numero,end=", ")
        if numero%2==0:
            numero//=2 # numero=int(numero/2)
    # Si el número es impar multiplicarlo por 3 y sumarle 1
        else:
            numero=numero*3+1
    # lo imprimo
    print(1)

Soluciones ejercicio

# Pedir al usuario un número

numero=int(input("Introduce un número"))
# Hacemos un proceso hasta que el número sea 1
# Cuando sea uno hemos acabado

while numero!=1:
# Si el número es par (numero %2==0) dividirlo entre 2
    print(numero,end=", ")
    if numero%2==0:
        numero//=2 # numero=int(numero/2)
# Si el número es impar multiplicarlo por 3 y sumarle 1
    else:
        numero=numero*3+1
# lo imprimo
print(1)


# Pedir al usuario un número

numero=int(input("Introduce un número"))
# Hacemos un proceso hasta que el número sea 1
# Cuando sea uno hemos acabado
cadena=str(numero)+", "
while numero!=1:
# Si el número es par (numero %2==0) dividirlo entre 2

    if numero%2==0:
        numero//=2 # numero=int(numero/2)
# Si el número es impar multiplicarlo por 3 y sumarle 1
    else:
        numero=numero*3+1
    cadena+=str(numero)+", "
# lo imprimo
print(cadena[:-2])

Respuestas ejercicios

"""Crea un programa que recorra una cadena de caracteres y cuente
cuántas veces aparece la letra “a” en la cadena."""

# Pensar en una manera de resolverlo
# voy letra por letra y si encuentro una a la cuento


# Si una letra es una a contar uno más

cadena=input("Introduce una cadena ")
contador=0
# recorrer las letras de una cadena -> resuelto
for letra in cadena:
    print(letra)
    # Si una letra es una a contar uno más ->resuelto
    if letra=="a":
        contador+=1
print(f"Hay {contador} aes en la cadena")

"""Desarrolla un programa que recorra un rango de números del 1 al 10
 y muestre el cuadrado de cada número en una línea separada."""

# recorrer los números del 1 al 10 ->  resuelto
# saber el cuadrado de un número -> resuelto

for numero in range(1,11):
    print(numero*numero)
    print(numero**2)


"""Crea un programa que pida números positivos al usuario
y nos diga después cual es el número mayor y el menor.
Hasta que pnga cero."""

numero=int(input("Introduce número "))
mayor=numero
menor=numero
# como hago yo un bucle hasta que el usuario me de 0 -> resuelto
while numero!=0:
    # si el numero que me dan es mayor que el que tengo lo cambio
    numero = int(input("Introduce número "))
    if numero!=0:
        if numero>mayor:
            mayor=numero
        if numero<menor:
            menor=numero

print("El numero mayor que me has dicho es el ",mayor)
print("El numero menor que me has dicho es el ",menor)

"""Crea un programa que solicite al usuario un número entero positivo
 y luego muestre una cuenta regresiva desde ese número hasta 1. Por ejemplo,
 si el usuario ingresa 5, el programa debe mostrar “5, 4, 3, 2, 1”."""

# pedir un número
# bucle desde el número hasta el 1

numero=int(input("Introduce un número "))

"""
while numero>0:
    print(numero)
    numero-=1
"""
for i in range(numero,0,-1):
    print(i)

"""Un programa que le pida al usuario un número y nos imprima su factorial
. El factorial de 5 es 5*4*3*2*1."""

numero=int(input("Introduce un número "))
factorial=1
for i in range(numero,0,-1):
    factorial*=i

print(factorial)


"""Un programa que pida al usuario
un número y nos imprima su tabla de multiplicar"""

numero=int(input("Introduce un número "))

# recorrer los numeros del 1 al 10 -> resuelto
for i in range(1,11):
    print(f"{i} x {numero} = {i*numero}")
    # print(i," x ",numero, " = ",i*numero)

"""Pedir al usuario un número y decir si es primo o no"""

# ¿Qué es un número primo: solo es divisible por el mismo y la unidad

# recorrer todos los números desde el 1 hasta el propio número -> solucionado
# y voy a ver si es divisible por alguno
# si es divisible no es primo
# Si no hay ninguno sí que es primo

numero=int(input("Numero "))
esprimo=True
for i in range(2,numero):
    if numero % i==0: # que sí que es divisible y por lo tanto NO ES PriMO
        esprimo=False
        break

if esprimo:
    print("El número es primo")
else:
    print("El número no es primo")

Códigos while y for

# bucle while ejecuta mientras se cumpla una condicion

cont=1
numero=7
print(f"Tabla de multiplicar del {numero}")
while cont<=10:
    print(f"{cont} x {numero} = {cont*numero}")
    # Dentro del bucle while tengo que modificar algo de la condicion
    cont+=1

total=0
num=int(input("Introduce un numero (0 para salir) "))

while num!=0:
    total+=num
    num = int(input("Introduce un numero (0 para salir) "))
print("La suma total es",total)


import random

numero_secreto = random.randint(1, 100)
print(numero_secreto)
intentos = 0
intento=0
while intento != numero_secreto:
    intento = int(input("Intenta adivinar el número (entre 1 y 100): "))
    if intento<1 or intento>100:
        print('ERROR: Numeros entre 1 y 100')
        continue # Sáltate el resto de líneas y vuelve al principio

    intentos += 1
    if intento == numero_secreto:
        print(f"Felicitaciones, ¡adivinaste el número {numero_secreto} en {intentos} intentos!")
        break # Sal del bucle
    elif intento>numero_secreto-5 and intento<numero_secreto+5:
        print("Estás cerca")
    elif intento < numero_secreto:
        print("El número es mayor. Intenta de nuevo.")
    else:
        print("El número es menor. Intenta de nuevo.")

lista=[1,2,3,4,5,6,7]

for elemento in lista:
    print(elemento)

alumnos=["Ana","Juan","Eva","Pep"]

for alumno in alumnos:
    print(alumno)

cant="hola que tal"

for n in cant:
    print(n)

for i in range(len(alumnos)):
    print(alumnos[i])

for i in range(1,6):
    print(i)

for i in range(1, 6,2):
    print(i)

"""Escribe un programa que recorra una lista de números
 y calcule la suma de todos los números pares en la lista.
 También la media """

lista=[1,2,3,4,5,6,7,100,90,3]

suma=0
cont=0
for elemento in lista:

    print(elemento)
    if elemento%2==0:
        suma+=elemento
        cont+=1

print("Total",suma)
print("Media",suma/cont)

Soluciones if

"""Desarrolla un programa que pida al usuario un número entero y determine si es par o impar. Si es par,
muestra “Es un número par”, si es impar, muestra “Es un número impar”."""

numero=int(input("Introduce un número"))
if numero%2==0:
    print("par")
else:
    print ("impar")

"""Escribe un programa que solicite al usuario su calificación en un examen y determine si ha aprobado o reprobado. 
Si la calificación es igual o superior a 60, muestra “Aprobado”, de lo contrario, muestra “Reprobado”."""

calificacion=float(input("Introduce nota"))

if calificacion>=60:
    print("Aprobado")
else:
    print("Reprobado")

"""Desarrolla un programa que pida al usuario dos números enteros y 
determine si al menos uno de ellos es positivo y par. 
Si alguna de estas condiciones se cumple, muestra 
“Al menos uno de los números es positivo y par”, 
de lo contrario, muestra “Ninguno de los números cumple con las condiciones”."""

a=int(input("Introduce numero 1 "))
b=int(input("Introduce numero 2 "))

# NO hace falta paréntesis
if (a%2==0 and a>0) or (b%2==0 and b>0):
    print("Positivo y par")
else:
    print("No positivo y par")

Código de hoy: if


edad = 17

if edad >= 18:
    print("Eres mayor de edad.")
else:
    print("Eres menor de edad")

    """
if edad<18:
    print("Eres menor de edad")
    print("Por lo tanto no puedes entrar a la discoteca")
    print("Cuando crezcas")
    if edad==17:
        print("Te falta poco")
"""
print("fin de programa")

sueldo=5000

if sueldo>600 and sueldo<1500:
    print('Sueldo bajo')
elif sueldo<3000:
    print('Sueldo medio')
else:
    print('Sueldo alto')

# Pido un sueldo y a) compruebo que sea legal
# b) si es menor de 2000 aplico un 15% de irpf
# c) si es mayor aplico un 25%

sueldo=int(input("introduce tu sueldo "))



if sueldo<1000:
    print('Sueldo ilegal')
else:
    print('Sueldo correcto. El sueldo neto es', end=' ')
    if sueldo<2000:
        print(sueldo*.85)
    else:
        print(sueldo*.75)
        print('Enhorabuena')
        print('Campeón')

    print('Donde estoy?') # Cuando el sueldo >=1000
print('Y yo?') # Siempre porque está sin ningún margen

edad = 25
tiene_licencia = False

# Combinación de condiciones con 'and'
if edad >= 18 and tiene_licencia:
    print("Puede conducir un automóvil.")
else:
    print("No puede conducir un automóvil.")

es_estudiante = False
es_empleado = False

# Combinación de condiciones con 'or'
if es_estudiante or es_empleado:
    print("Es estudiante o empleado.")
else:
    print("No es estudiante ni empleado.")"""Escribe un programa que solicite al usuario su edad y determine si
es menor o igual a 18 años. Si es menor o igual a 18 años, muestra el mensaje
“Eres menor de edad”, de lo contrario, muestra “Eres mayor de edad”."""

# Solicitar edad al usuario

edad=int(input("Introduce tu edad"))

# Comprobar si es menor o igual a 18 y en ese caso imprimir menor
if edad<=18:
    print("Eres menor de edad")
# Caso contrario imprimir mayor
else:
    print("Eres mayor de edad")

"""Crea un programa que pida al usuario dos números
 y determine cuál es el mayor de los dos números.
Si son iguales, muestra un mensaje que indique que los números son iguales."""

# Pedir dos numeros
a=int(input("Introduce el primer numero"))
b=int(input("Introduce el segundo numero"))

print(a,b)
# decir cual es el mayor
if a>b:
    print('El mayor es el primero')
if b>a:
    print('El mayor es el segundo')
# Si son iguales decir que son iguales
if a==b:
    print('Son iguales')

if a>b:
    print('El mayor es el primero')
elif b>a:
    print('El mayor es el segundo')
else:
    print('Son iguales')

if a==b:
    print('Son iguales')
elif b>a:
    print('El mayor es el segundo')
else:
    print('El mayor es el primero')

# Pedir un usuario y un password y si son 1234 1234 acceder

usuario=input("Introduce el usuario")
password=input("Introduce el password")

if usuario=='1234' and password=='1234':
    print ("P'alante")
else:
    print('No puedes entrar')

Solución ejercicios


"""Escribe un programa que tome una entrada del usuario como una
cadena que represente un número entero, conviértela a un entero y
luego multiplique ese número por 2. Finalmente, muestra el resultado."""

# pido un número
numero=input("Introduce un numero")
# lo convierto a entero
int_numero=int(numero)
# lo multiplico
int_numero=int_numero*2
# lo muestro
print(int_numero)

numero=int(input("numero"))
print(numero*2)

print(int(input("numero"))*2)

"""Crea un programa que tome un número decimal como entrada del usuario (por ejemplo, 3.14)
 y conviértelo en un entero. Luego, muestra el número entero resultante."""

numero=input("Dame un numero decimal")
dec_numero=float(numero)
int_numero=int(dec_numero)
print(int_numero)

print(int(float(input("Numero decimal"))))

"""Escribe un programa que tome una cadena de caracteres que
represente “True” o “False” (en minúsculas o mayúsculas)
como entrada del usuario, conviértela a un valor booleano
y luego muestre  la variable resultante."""

variable=input("Dame true o false")
bool_variable=variable=='True'
print(bool_variable)

Código Básico Python

# variables
# Importante: Sensibles a mayúsculas y minúsculas

# Numéricas

num_entero=900

num_flotante=9.5

numEntero=90

print(num_entero)

print(num_flotante)

# Cadena

nombre="Ana"

apellidos='Pi'

print(nombre,apellidos)

# Booleanas

cierto=True

falso=False

print(cierto)

nombre=input("Introduce tu nombre")

# Que no haga salto de línea al imprimir

print('hola', nombre, end=' ')

# Cadena con formato

print(f" Hola que tal estamos")
print(f"Hola {nombre} ¿Qué tal estás?")

# Cambiar el separador por defecto

print("hola","que","tal")
print("hola","que","tal",sep="|")
print('hola',nombre,sep=' - ')
print(1,2,3,4,5,6,sep=' , ')

edad=input("Dime tu edad")
nombre="Ana"
sueldo=1000
iva=.21
precio=100*iva
tuedad=int(edad)
mayor_edad=tuedad>=18
print("Dentro de 10 años tendrás",tuedad+10)

a = 10
b = 7

print(a + b)
print(a / b)
## Ejemplo de los coches: si tengo 10 coches a repartir entre 7 personas
## Le toca un coche a cada uno (divisón entera //)
## Y sobran 3 (módulo %)
print(a // b)
print(a % b)

numero = 9
print(numero % 2)
numero = 4
print(numero % 2)

# 2 elevado a 4
print(2 ** 4)

numero = numero + 5
print(numero)
numero += 5
print(numero)

mayordeedad=True

dinero=False

print(mayordeedad and dinero)
print(mayordeedad or dinero)
print(not dinero)