Problème code pipotron

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Salut à tous,

j'ai voulu créer un pipotron modulaire (avec les verbes et noms dans deux fichiers différents) seulement je tombe sur une erreur que je ne comprend pas dans le code suivant :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#pipotron
import random
import os

#déclaration variables + ouvertures fichier
i_noms=0
i_verbes=0
noms = open("noms.txt","r")
verbes = open("verbes.txt","r")
verbe1=""
verbe2=""
noms1=""
noms2=""
continuer="oui"

#calcul nombre de ligne de chaque fichier
for ligne in noms:
    i_noms+=1
for ligne in verbes:
    i_verbes+=1

while continuer == "oui":   
    #randomisation
    n_verbe1=int(random.randint(1,i_verbes))
    n_verbe2=int(random.randint(1,i_verbes))

    n_noms1=int(random.randint(1,i_noms))
    n_noms2=int(random.randint(1,i_noms))

    #choix mots
    verbe1=verbes.readline()[n_verbe1]
    verbe2=verbes.readline()[n_verbe2]
    noms1=verbes.readline()[n_noms1]
    noms2=verbes.readline()[n_noms2]

    #phrase
    print("Il faut ",verbe1," ",noms1," pour ",verbe2," ",noms2)

    #continue
    continuer=input("Pour recommencer tappez oui : ")

os.system("pause")

J'ai une erreur :

1
2
3
4
Traceback (most recent call last):
  File "C:\Users\apiloy\Desktop\pipotron.py", line 31, in <module>
    verbe1=verbes.readline()[n_verbe1]
IndexError: string index out of range

Pourtant j'ai bien une valeur qui me semble numérique et non un string donc je ne comprend pas …

Merci par avance à ceux qui pourront m'aider :)

+0 -0
Auteur du sujet

Ah effectivement j'ai utilisé readline()[] suite à une discussion sur le forum pour obtenir une info d'une ligne en fonction de son numéro mais je vais tester ta solution nohar ça me parait 10 fois plus simple :)

EDIT: Ca fonctionne

Code pour les intéressés :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#pipotron
import random
import os

#déclaration variables + ouvertures fichier

noms = open("noms.txt").read().splitlines()
verbes = open("verbes.txt").read().splitlines()
verbe1=""
verbe2=""
noms1=""
noms2=""
continuer="oui"


while continuer == "oui":   

    #choix mots
    verbe1=random.choice(verbes)
    verbe2=random.choice(verbes)
    noms1=random.choice(noms)
    noms2=random.choice(noms)

    #phrase
    print("Il faut ",verbe1," ",noms1," pour ",verbe2," ",noms2)

    #continue
    continuer=input("Pour recommencer tappez oui : ")

os.system("pause")

Édité par alliocha1805

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte