Bonjour,
Inutile de citer l'intégralité de mes messages, ça surcharge pour rien ta réponse. Ne le fais que si tu as quelque chose à commenter dedans, mais même dans ce cas, ne cite que la partie incriminée.
Pour en revenir à ton problème, a priori, il vient de l'instruction if i['Pclass'] == 'classe':, il faut enlever les guillemets
if i['Pclass'] == classe:
mais les mettre dans l'appel
print(survivantsClasse('1'))
par exemple.
Mais !
J'ai fait des essais et ça marche bien avec le script suivant
import csv
# ouverture du fichier csv
fichier=open('titanic.csv', 'r')
titanic = csv.DictReader(fichier)
fichier.close
def survivantsClasse(classe):
"""
classe -- '1' , '2' ou '3'
renvoie la proportion de survivants de la classe demander .
"""
CClasse = 0 #on crées 2 compteur
CSurviant = 0
for i in titanic:
if i['Pclass'] == classe:
CClasse += 1
if i['Survived'] == '1':
CSurviant += 1
return (CSurviant/CClasse*100)
print(survivantsClasse('1'))
Par contre, si je rajoute la partie précédente , ça ne va plus. Pareil, dans le script avec "with", ça ne fonctionne pas non plus. Pour faire cette partie, tu la mets à la suite de l'autre ou tu crées un nouveau script ?
Cela dit, je suis loin d'être un spécialiste de Python, je bricole, quand ça marche, c'est bien, mais quand il y a un problème un peu compliqué, je ne sais pas l'expliquer, donc pas le résoudre.