Python - Regresando el resultado de una función (def - return)

 
Vista:
sin imagen de perfil
Val: 36
Ha aumentado su posición en 17 puestos en Python (en relación al último mes)
Gráfica de Python

Regresando el resultado de una función (def - return)

Publicado por Alexander (8 intervenciones) el 23/10/2020 20:14:57
Buen día a todos

Les escribo porque necesito de su ayuda por fa, no puedo resolver este ejercicio, lo he intentado pero me salta que no reconoce el dato que le estoy ingresando. Por aquí les dejo el ejercicio, muchas gracias de ante mano por el apoyo.

EJERCICIO PLANTEADO

Escenario
Tu tarea es escribir y probar una función que toma un argumento (un año) y devuelve True si el año es un año bisiesto, o False sí no lo es.

Parte del esqueleto de la función ya está en el editor.

Nota: también hemos preparado un breve código de prueba, que puedes utilizar para probar tu función.

El código utiliza dos listas: una con los datos de prueba y la otra con los resultados esperados. El código te dirá si alguno de tus resultados no es válido.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def isYearLeap(year):
#
# coloca tu código aquí
#
 
testData = [1900, 2000, 2016, 1987]
testResults = [False, True, True, False]
for i in range(len(testData)):
	yr = testData[i]
	print(yr,"->",end="")
	result = isYearLeap(yr)
	if result == testResults[i]:
		print("OK")
	else:
		print("Error")
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 62
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

Regresando el resultado de una función (def - return)

Publicado por Germán (16 intervenciones) el 23/10/2020 23:26:07
1
2
3
4
5
6
7
8
import datetime
 
def isYearLeap(year):
    try:
        x = datetime.datetime(year, 2, 29)
        return True;
    except:
        return False;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Regresando el resultado de una función (def - return)

Publicado por David (2 intervenciones) el 05/08/2021 22:30:36

Solucion



- Es bisiesto si es divisible entre 4.
- Pero no es bisiesto si es divisible entre 100.
- Pero sí es bisiesto si es divisible entre 400. (2000 y 2400 sí son bisiestos son divisibles entre 100 pero también entre 400).

Año bisiesto: https://es.wikipedia.org/wiki/A%C3%B1o_bisiesto

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
testYears = [1900, 2000, 2016, 1987]
testResults = [False, True, True, False]
def leapYear(year):
    if year % 4 != 0:
        return False
    elif year % 100 != 0:
        return True
    elif year % 400 != 0:
        return False
    else:
        return True
for i in range(len(testYears)):
    year = testYears[i]
    result = leapYear(year)
    if result == testResults[i]:
        if result == True:
            print(f'{year} --> Is a leap year.')
        elif result == False:
            print(f'{year} --> Its not a leap year.')
    else:
        print('The process was unsuccessful')
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar