Associer une ligne à un chiffre
Résolu/FerméPierrotLeFou - 11 mars 2023 à 17:30
- Associer une ligne à un chiffre
- Aller à la ligne excel - Guide
- Excel trier par ordre croissant chiffre - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Partager photos en ligne - Guide
- Vente en ligne particulier - Guide
6 réponses
Pour ton premier problème je ne suis pas certain de ce que tu veux faire.
Il me semble que c'est simple d'initialiser un compteur à 0 et de l'incrémenter juste avant ou après la lecture.
Et tu peux afficher le compteur dans le print.
Pour ton second probllème, tu as deux solutions.
Ou bien tu fais un replace de '\n' par ''
Ou bien tu ajoutes le paramètre end='' dans le print.
liste_aleatoire est une liste, pas un nombre.
On l'initialise comme suit:
liste_aleatoire = [] # Une liste vide.
Modifié le 8 mars 2023 à 10:25
Bonjour,
Pour afficher les lignes en les numérotant, tu peux faire ça:
with open('C:\\Users\\Lucas\\Desktop\\data_fr.txt') as f: for n, ligne in enumerate(f, 1): print('{} : {}'.format(n, ligne[:-1]))
8 mars 2023 à 11:05
Bonjour,
Tu peux écrire ceci :
with open("data_fr.txt", "r") as f: data = [ line.strip() for line in f ] print(data)
... et si tu veux ignorer les lignes blanches :
with open("data_fr.txt", "r") as f: data = [ line.strip() for line in f if line.strip() ] print(data)
Exemple :
(mando@silk) (~) $ cat data_fr.txt
bouger
commencer
(mando@silk) (~) $ python3 toto.py
['bouger', 'commencer']
Bonne chance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionJe ne suis pas certain que ce soit une bonne idée de séparer la version française et la version anglaise sur un autre fichier.
Suppose que tu ajoutes un mot en français et que tu oublies la traduction anglaise, ou que tu la places au mauvais endroit,
que se passera-t-il selon toi?
Si tu choisis le mot français avec un numéro (ou le nom).
L'idée est de compter jusqu'à l'endroit désiré en comparant le compteur avec la valeur désirée et de sortir de la boucle.
Ensuite, tu pourrais faire la même chose avec le dictionnaire anglais.
Tu comptes les lignes (ou mots) lues et tu t'arrêtes quand tu as atteint la ligne désirée.
attendue = ... ligne désirée ...
actuel = 0
while True:
# lire la ligne
actuel += 1
if actuel == attendu:
break
Modifié le 11 mars 2023 à 15:46
Ok super, j'ai réussi à un peu avancer, j'ai demandé à mon programme de lire une ligne aléatoire mais j'aimerai faire en sorte qu'il ne lise pas 2 fois la même ligne.
voici ce que j'ai fait :
import linecache import random randomline = random.randint(1,2) print(randomline) data = linecache.getline("C:\\Users\\Lucas\\Desktop\\data_fr.txt", randomline) data = data.replace("\n", "") print(data) anwser = input("recopier : ") if anwser == data: print("good") else: print("nop")
En fait ce que je pensais faire c'était que lorsque qu'il générait un chiffre aléatoire, il aille vérifier que ce n'est pas un nombre qu'il à déjà fait et qu'il en regénère un nouveau. Mais je ne sais pas trop comment faire ça...
Merci d'avance pour votre aide
Chaque fois que tu génères un nombre aléatoire, tu l'insères dans une liste initialement vide avec append.
Ensuite tu peux boucler en vérifiant si le nombre est dans la liste:
nouveau = ... valeur aléatoire ...
while nouveau in liste_aleatoires:
nouveau = ... nombre aléatoire ...
liste_aleatoire.append(nouveau)
11 mars 2023 à 17:08
J'ai fait ça :
liste_aleatoires = 0 nouveau = random.randint(1, Counter) while nouveau in liste_aleatoires: nouveau = random.randint(1, Counter) liste_aleatoires.append(nouveau)
Mais j'ai cette erreur :
Traceback (most recent call last):
File "c:\Users\Lucas\Desktop\import linecache.py", line 21, in <module>
while nouveau in liste_aleatoires:
^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: argument of type 'int' is not iterable
8 mars 2023 à 17:09
En fait, mon projet est de faire une app pour s'entrainer à apprendre du vocabulaire en anglais. Pour cela il va récupérer un mot dans un fichier (data_fr) et sa traduction dans un autre (data_en).
J'aimerai qu'il nous donne un des deux mots aux hasard et qu'il nous demande sa traduction (donc son équivalent dans l'autre fichier).
C'est pour ça que mon idée était que le programme donne un chiffre à chaque ligne (non visible dans le print) et que donc il associe la 1ere ligne du fichier fr à celle du en et ainsi de suite.