8 2 15 validation impossible cause python2 dans codecademy


#1



Etant donné la fonction floor() différente selon les versions de python, et ayant décidé d'apprendre Python3 (composant déjà avec les raw_input des exos de codecademy), j'aimerai connaître si possible le code de déblocage pour cet exercice s-v-p (je ne peux le valider car python 2 et la fonction floor() renvoie un float et mon code est en python3 avec la fonction floor() qui renvoie un int)

https://www.codecademy.com/fr/courses/python-intermediate-fr-FR-py0yl/2/5?curriculum_id=5370f030fed2a866a2000001#

Oups, merci de réessayer. Votre fonction mediane prend-elle exactement un argument (une liste de nombres) ? Votre code indique une erreur "list indices must be integers, not float".

from math import floor
from math import ceil


def mediane(liste):
	liste.sort()
	if len(liste) % 2 != 0:
		resultat = floor(len(liste) / 2)
		return liste[resultat]
	else:
		resultat_temp_a = floor(len(liste) / 2 - 1)
		resultat_temp_b = floor(len(liste) / 2)
		resultat = (liste[resultat_temp_a] + liste[resultat_temp_b]) / 2
		return resultat

alpha = [5, 12, 9, 1, 89, 7, 3]

print(mediane(alpha))


#2

up please , still waiting to validate


#3

Tu peux convertir (caster) le résultat en entier. Par exemple:

pourrait s'écrire:

resultat = int(floor(len(liste) / 2))

#4

oui je sais, ca passe pas non plus même en le faisant partout
l'interpêteur me met le résultat mais j'ai encore un message d'erreur:
Oups, merci de réessayer. Votre fonction a échoué sur [4, 5, 5, 4] comme entrée car votre fonction indique une erreur "'int' object is not callable".


#5

There is a bug in the SCT. The only way of circumventing it is to crash the SCT which will give you a green light and let you move on.

Credit to @appylpye for this remedy...

Add to top of code so it will crash the SCT:

class str:
    pass

#6

thank u very much :slight_smile: