Python et les listes

Signaler
-
Messages postés
2
Date d'inscription
dimanche 29 décembre 2013
Statut
Membre
Dernière intervention
30 mai 2015
-
Bonjour,

Je suis debutant en programmation

je suis entrain d'écrire une programme pour faire des sondages:
les questions de sondages:
Nom:
Sexe:
Question (O ou N):

la réponse donnée par le utilisateur sera sauvegardé dans un fichier txt

puis le but de ce programme c'est de verifier si le Nom et sexe existe dans le fichier txt (il faut pas prendre compte de O ou N)
le fichier txt ressemble a ca

nom1;F;O
nom2;H;N


voici les lignes de code que j'ai écrits qui ne fonctionne pas (il prend en compte le O ou N moi je veux juste verifier le nom et le sexe)


nom= raw_input('votre nom: ')
sexe = raw_input('votre sex: ')
r1 = raw_input('votre r1: ')
infos = nom+";"+sexe+";"+r1

#lecture du fichier txt

f=open("test.txt","r")
contenu = f.read()
f.close()



if infos in contenu:
print "existe"
else:
f=open("test.txt","a")
f.write(infos)
f.write('\n')
f.close()


Merci d'avance,

1 réponse

Messages postés
69
Date d'inscription
mercredi 1 novembre 2000
Statut
Membre
Dernière intervention
1 juin 2018
6
Salut bala,

il y a un moyen de résoudre ton problème:

# -*- coding: cp1252 -*-
nom = raw_input('votre nom: ')
sexe = raw_input('votre sex: ')
r1 = raw_input('votre r1: ')
infos = nom+";"+sexe+";"+r1+'\n' #<- rajout du retour chariot dès le début

#lecture du fichier txt
f = open("test.txt","r")

ligne = ' ' #<- contiendra chaque ligne du fichier text
dejaSondee = False #<- booleen pour savoir si on doit sauvegarder la/le sondé(e)

# on lit chaque ligne du fichier tant que celle-ci n'est pas vide
while ligne != '':
    ligne = f.readline() 
    listLigne = ligne.split(';') #<- on crée une liste qui contient tous les mots de la ligne séparés par le ';'
    # on accède au premier indice de cette liste : nom
    # et au deuxième : sexe
    if listLigne[0] == nom and listLigne[1] == sexe:
        print 'personne déja sondée.'
        dejaSondee = True
        break
f.close()

# si la/le sondé(e) n'a pas déjà été recensé(e), on la/le sauvegarde
if not dejaSondee:
    f = open("test.txt","a")    
    f.write(infos)
    f.close()    


--
Messages postés
2
Date d'inscription
dimanche 29 décembre 2013
Statut
Membre
Dernière intervention
30 mai 2015

merci beaucoup