Couleures unicode non fonctionnelles.

Fermé
RoueSoify - 11 mai 2020 à 17:53
Furansujean Messages postés 58 Date d'inscription lundi 1 juillet 2019 Statut Membre Dernière intervention 12 septembre 2022 - 16 mai 2020 à 17:46
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
A voir également:

3 réponses

Excusez-moi.
0
Furansujean Messages postés 58 Date d'inscription lundi 1 juillet 2019 Statut Membre Dernière intervention 12 septembre 2022 5
11 mai 2020 à 21:29
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
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
Furansujean Messages postés 58 Date d'inscription lundi 1 juillet 2019 Statut Membre Dernière intervention 12 septembre 2022 5 > RoueSoify
12 mai 2020 à 12:34
Bonjour,
Peux-tu montrer l'extrait de code que tu as modifié ?
0
RoueSoify > Furansujean Messages postés 58 Date d'inscription lundi 1 juillet 2019 Statut Membre Dernière intervention 12 septembre 2022
12 mai 2020 à 17:44
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
Furansujean Messages postés 58 Date d'inscription lundi 1 juillet 2019 Statut Membre Dernière intervention 12 septembre 2022 5 > RoueSoify
12 mai 2020 à 21:28
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
RoueSoify > Furansujean Messages postés 58 Date d'inscription lundi 1 juillet 2019 Statut Membre Dernière intervention 12 septembre 2022
14 mai 2020 à 13:43
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