Créer image PGM
Résolu/Fermé
bendrop
Messages postés
12590
Date d'inscription
jeudi 30 juin 2005
Statut
Contributeur
Dernière intervention
1 novembre 2024
-
Modifié le 13 avril 2022 à 19:05
bendrop Messages postés 12590 Date d'inscription jeudi 30 juin 2005 Statut Contributeur Dernière intervention 1 novembre 2024 - 14 avril 2022 à 07:54
bendrop Messages postés 12590 Date d'inscription jeudi 30 juin 2005 Statut Contributeur Dernière intervention 1 novembre 2024 - 14 avril 2022 à 07:54
A voir également:
- Créer image PGM
- Créer un compte gmail - Guide
- Créer un compte google - Guide
- Créer un groupe whatsapp - Guide
- Créer un compte instagram sur google - Guide
- Créer une adresse hotmail - Guide
2 réponses
mamiemando
Messages postés
33346
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
8 novembre 2024
7 803
Modifié le 13 avril 2022 à 21:39
Modifié le 13 avril 2022 à 21:39
Re bonjour bendrop,
Voici comment j'aurais écrit ton programme (et là, le résultat est correct) :
Je te laisse comparer le résultat obtenu avec les deux programmes pour comprendre où est ton erreur.
Bonne chance
Voici comment j'aurais écrit ton programme (et là, le résultat est correct) :
#!/usr/bin/env python3 import sys def write_pgm(filename, w=800, h=800, n=255): with open(filename, "w") as f: print( "\n".join([ "P2", " ".join([str(w), str(h)]), str(n), "\n".join( " ".join( str((i ** 2 + j ** 2) % n) for j in range(w) ) for i in range(h) ) ]), file=f ) write_pgm("resultat.pgm")
Je te laisse comparer le résultat obtenu avec les deux programmes pour comprendre où est ton erreur.
Bonne chance
mamiemando
Messages postés
33346
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
8 novembre 2024
7 803
13 avril 2022 à 19:57
13 avril 2022 à 19:57
Bonjour,
Si tu ouvres ton fichier, tu comprendras le problème ;
Par ailleurs, tu peux améliorer ton programme comme suit
Le fichier devient exploitable avec la première correction, mais même si le rendu ressemble à ce que tu attends, ce n'est pas le résultat que tu attends. Vérifie qu'il y a le bon nombre de valeurs pour chaque ligne.
Bonne chance
Si tu ouvres ton fichier, tu comprendras le problème ;
- Il manque des espaces entre les valeurs assignées à chacun de tes pixels.
Par ailleurs, tu peux améliorer ton programme comme suit
- Pour ouvrir et fermer le fichier, il vaudrait mieux utiliser un context manager (en python :
with open("resultat.pgm") as f:
) - Pour écrire dans ton fichier, tu peux directement utiliser ton descripteur de fichier avec
print
:print("plop", file=f)
). Il est possible d'omettre le retour chariot en cas de besoin (print("plop", end="")
).
Le fichier devient exploitable avec la première correction, mais même si le rendu ressemble à ce que tu attends, ce n'est pas le résultat que tu attends. Vérifie qu'il y a le bon nombre de valeurs pour chaque ligne.
Bonne chance
bendrop
Messages postés
12590
Date d'inscription
jeudi 30 juin 2005
Statut
Contributeur
Dernière intervention
1 novembre 2024
8 290
13 avril 2022 à 20:20
13 avril 2022 à 20:20
Merci mamiemando,
Je verrai cela demain ou après demain et je reviendrai dire ce qu’il en est.
Cdlt.
Je verrai cela demain ou après demain et je reviendrai dire ce qu’il en est.
Cdlt.
Modifié le 14 avril 2022 à 16:27
Je regarderai cela de près.
Cordialement.