Créer image PGM
Résolu/Fermé
bendrop
Messages postés
12619
Date d'inscription
jeudi 30 juin 2005
Statut
Contributeur
Dernière intervention
14 janvier 2025
-
Modifié le 13 avril 2022 à 19:05
bendrop Messages postés 12619 Date d'inscription jeudi 30 juin 2005 Statut Contributeur Dernière intervention 14 janvier 2025 - 14 avril 2022 à 07:54
bendrop Messages postés 12619 Date d'inscription jeudi 30 juin 2005 Statut Contributeur Dernière intervention 14 janvier 2025 - 14 avril 2022 à 07:54
A voir également:
- Créer image PGM
- Créer un compte google - Guide
- Créer un compte gmail - Guide
- Comment créer un groupe whatsapp - Guide
- Créer un compte instagram sur google - Guide
- Créer une image iso - Guide
2 réponses
mamiemando
Messages postés
33459
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
8 janvier 2025
7 813
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
33459
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
8 janvier 2025
7 813
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
12619
Date d'inscription
jeudi 30 juin 2005
Statut
Contributeur
Dernière intervention
14 janvier 2025
8 312
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.