Couleures unicode non fonctionnelles.

RoueSoify -  
Furansujean Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, lorsque je fais tourner le programme suivant, je n'arrive pas à obtenir différents cubes de couleurs à la suite, je demande votre aide, je viens de commencer ce projet et me
heurte déjà à des difficultées.
Les valeurs du fichier File.txt sont, lignes par lignes :
0,1,2,3,4,5,6,1

class colors:
    LBLUE = '\033[96m'
    PURPLE = '\033[95m'
    DBLUE = '\033[94m'
    GREEN = '\033[92m'
    YELLOW = '\033[93m'
    RED = '\033[91m'
    WHITE = '\033[0m'

def Colour(h) :
  if h == "0" :
      h = f"{colors.WHITE}■"
  elif h == "1" :
      h = f"{colors.LBLUE}■"
  elif h == "2" :
      h = f"{colors.PURPLE}■"
  elif h == "3" :
      h = f"{colors.DBLUE}■"
  elif h == "4" :
      h = f"{colors.GREEN}■"
  elif h == "5" :
      h = f"{colors.YELLOW}■"
  elif h == "6" :
      h = f"{colors.RED}■"
  return h

def Thing(j) :
  j = j.replace("\\", "")
  j = j.replace("[", "")
  j = j.replace("]", "")
  j = j.replace("n", "")
  j = j.replace("'", "")
  j = j.replace(",", "")
  j = j.replace(" ", "")
  return j

do = 0
s = 0
S = 0
t = 0
T = 0
y = 0
Y = 0
b = 0
B = 0
while do != "Afficher" and do !="afficher" and do !="A" and do !="a" and do !="créer" and do !="Créer" and do !="creer" and do !="Creer" and do !="c" and do !="C" :
  do = input("Voulez vous afficher ou créer une image ?\n")
  if do != "Afficher" and do !="afficher" and do !="A" and do !="a" and do !="créer" and do !="Créer" and do !="creer" and do !="Creer" and do !="c" and do !="C" :
      print("\nVous ne pouvez entrer que : Afficher, afficher, A, a, Créer, Creer, créer, creer, C ou c.\n")
  else :
      break
if do == "Afficher" or do =="afficher" or do =="A" or do =="a" :
  n = 0
  F = open("File.txt", "r")
  s = str(F.readlines(1))
  s = Thing(s)
  s = Colour(s)
  S = str(F.readlines(2))
  S = Thing(S)
  S = Colour(S)
  t = str(F.readlines(3))
  t = Thing(t)
  t = Colour(t)
  T = str(F.readlines(4))
  T = Thing(T)
  T = Colour(T)
  y = str(F.readlines(5))
  y = Thing(y)
  y = Colour(y)
  Y = str(F.readlines(6))
  Y = Thing(Y)
  Y = Colour(Y)
  b = str(F.readlines(7))
  b = Thing(b)
  b = Colour(b)
  B = str(F.readlines(8))
  B = Thing(B)
  B = Colour(B)
  print(s+S+t+T+y+Y+b+B)


Configuration: Windows / Firefox 76.0

3 réponses

  1. Furansujean Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   5
     
    Bonsoir RoueSoify,

    le problème se trouve à cet endroit (et sur les autres lignes qui ressemblent) :
    F.readlines(2)

    Tu demandes à récupérer les 2 lignes là où
    F
    s'est arrêté, pas la 2e ligne comme tu t'y attendais.

    Donc :
    • soit tu utilises
      F.readline()
      à chaque itération.
    • soit tu utilises un
      for
      :
      for ligne in F:
      . Et là tu réduiras la taille de ton code. :-)
    0
    1. RoueSoify
       
      Merci pour tes solutions, mais cela n'affiche maintenant plus que la 6, le 0 du début a disparu, est-ce que mon programme n'est pas faisable, ou bien je m'y prends mal ?
      0
    2. Furansujean Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   5 > RoueSoify
       
      Bonjour,
      Peux-tu montrer l'extrait de code que tu as modifié ?
      0
    3. RoueSoify > Furansujean Messages postés 58 Date d'inscription   Statut Membre Dernière intervention  
       
      Voici la version que j'ai fait avec et sans les nombres :
      F = open("File.txt", "r")
        s = str(F.readline())
        s = Thing(s)
        s = Colour(s)
        S = str(F.readline())
        S = Thing(S)
        S = Colour(S)
        t = str(F.readline())
        t = Thing(t)
        t = Colour(t)
        T = str(F.readline())
        T = Thing(T)
        T = Colour(T)
        y = str(F.readline())
        y = Thing(y)
        y = Colour(y)
        Y = str(F.readline())
        Y = Thing(Y)
        Y = Colour(Y)
        b = str(F.readline())
        b = Thing(b)
        b = Colour(b)
        B = str(F.readline())
        B = Thing(B)
        B = Colour(B)


      Merci de m'aider.
      0
    4. Furansujean Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   5 > RoueSoify
       
      C'est quelque chose comme ça que tu voulais non ?

      En respectant bien l'indentation, et avec le print final, c'est ce que j'obtiens avec ton code.
      0
    5. RoueSoify > Furansujean Messages postés 58 Date d'inscription   Statut Membre Dernière intervention  
       
      Bonjour, serait-ce possible que tu me réponde le code que tu éxécute, voir si il marche de mon côté. Merci d'avance.
      0