def decoupage2(ch):
liste = list(ch)
tab = []
mot = ''
for i in range (len(liste)):
if liste[i].isalpha()==True:
mot += liste[i]
else:
if mot not in tab:
tab3 = []
tab3.append(mot)
tab3.append(abs(i-len(mot)))
tab.append(tab3)
else:
for i in tab:
for g in i:
if g == mot:
tab.append(abs(i-len(mot)))
mot = ''
return tab
Je l'ai un peu modifiée par rapport a hier mais bon ....
SOprax a écrit:
> Je l'ai un peu modifiée par rapport a hier mais bon ....
À ta place je travaillerais avec un dictionnaire qui associe à chaque mot la liste de ses indices dans la chaîne.
Aussi, j'éviterais de construire la variable mot au fur et à mesure et me contenterais de deux indices : les positions de début et de fin de chaque mot, pour ainsi faire un slicing (ch[debut:fin]) au moment de connaître le mot (quand tu tombes sur un caractère non alphabétique).
Au passage, il n'est pas utile de convertir ta chaîne de caractères en liste, ch est déjà itérable.
Et je remplacerais for i in range(len(liste)) par for i, car in enumerate(ch). Avec car étant le caractère en cours (plus besoin de liste[i]).
FabriceTuitui a écrit:
> Bonjour, pouvez-vous m'aider à faire cet exercice s'il vous plait !!!
Salut, je voulais savoir si vous pouviez me dire où était la coquille car j'ai une indication qui dit "Traceback (most recent call last): File "python", line 10, in <module> TypeError: unsupported operand type(s) for /: 'function' and 'int'".
Je vois pas du tout d'où ça vient...
notes = [0, 3, 13, 13, 7, 9, 19, 3, 13, 10, 14, 15, 3, 11, 19, 13, 11, 1, 6, 20, 4]
def somme(n):
so=0
for i in range (len(n)):
so=so+i
return somme
print(somme(notes) / len(notes))
petit code pour calculer les matrices d'ordre 2 et 3
attention : au niveau de la matrice d'ordre 3 cest juste la comatrice qui vous ai donne c'est a vous de faire la transposer et de multiplier par l'inverse du determinant qui vous ai aussi donne
tkt cest comprehensible
print("calcul d'une matrice")
matrice = input("matrice d'ordre M2/M3 ?")
if matrice == "M2" or matrice == "m2" or matrice == "2":
print("saisissez les valeurs de la premiere colone")
a = int(input('saisir la valeur 1 de la premiere colone'))
b = int(input('saisir la valeur 2 de la premiere colone'))
print('saisir les valeurs de la seconde colone')
c = int(input("saisir la valeur 1 de la seconde colone"))
d = int(input("saisir la valeur 2 de la seconde colone"))
print("le determinant est", " ", "Det", "=", (a*d)-(c*b))
print("la matrice inverse est", " ", "M-1", "=", "(", (d/((a*d)-(c*b))), ";", (-b/((a*d)-(c*b))), ";", (-c/((a*d)-(c*b))), ";", (a/((a*d)-(c*b))), ")")
elif matrice == "M3" or matrice == "m3" or matrice == "3":
print("saisissez les valeurs de la premiere colone")
a = int(input('saisir la valeur 1 de la premiere colone'))
b = int(input('saisir la valeur 2 de la premiere colone'))
c = int(input('saisir la valeur 3 de la premiere colone'))
print("saisissez les valeurs de la seconde colone")
d = int(input('saisir la valeur 1 de la premiere colone'))
e = int(input('saisir la valeur 2 de la premiere colone'))
f = int(input('saisir la valeur 3 de la premiere colone'))
print("saisissez les valeurs de la troisieme colone")
g = int(input('saisir la valeur 1 de la premiere colone'))
h = int(input('saisir la valeur 2 de la premiere colone'))
i = int(input('saisir la valeur 3 de la premiere colone'))
Det = a*(e*i-f*h)-b*(d*i-f*g)+c*(d*h-e*g)
print("le determinant est", " ", "Det", "=", a*(e*i-f*h)-b*(d*i-f*g)+c*(d*h-e*g))
premiere_ligne = e*i-f*h, -b*i+c*h, b*f-c*e
seconde_ligne = f*g-d*i, a*i-c*g, c*d-a*f
troisieme_ligne = d*h - e*g, b*g-a*h, a*e-b*d
print("com(M", "=", "(", premiere_ligne, "seconde ligne", seconde_ligne, "troisieme ligne", troisieme_ligne)
- Edité par FortuneEwolo 8 janvier 2020 à 22:24:15
Je débute dans l'apprentissage de l'algorithmique. Je débute donc aussi dans la manipulation de Python et du logicielflowgorithm.
Je souhaiterais, à l'aide du logiciel flowgorithm, créer l'algorithme (sous forme d'un ordinogramme(pas le programme/code source) ) du cas suivant:
"On vous demande de permettre à un utilisateur de calculer les périmètres et les aires de carrés et de rectangles. N'oubliez pas d'afficher les résultats et de donner des instructions à l'utilisateur pour qu'il sache ce qu'il doit faire."
Je vous remercie beaucoup pour l'attention que vous porterez à ce post et à l'aide éventuelle que vous pourrez me donner.
from random import randrange
n = randrange(100)
# randrange permet de creer un nombre au hasard
a = int(input("premier joueur veillez saisir un nombre de 0 a 100"))
# le premier joueur saisi son nombre
continuer_partie = True #ceci permet en quelque sorte de creer une condition un choix dont la valeur conditione l'execution du code
while continuer_partie == True: #on initialise cette contition vrai donc en clair tant que cest vrai en gros le code est executer
while a > 100 or a < 0:
print("nombre non compris dans l'intervale")
a = int(input("premier joueur veillez saisir un nombre de 0 a 100"))
b = int(input("second joueur veuille saisir un nombre de 0 a 100"))
while b > 100 or b < 0:
print("nombre non compris dans l'intervale")
b = int(input("second joueur veillez saisir un nombre de 0 a 100"))
if abs(n-a) > abs(n-b): #ladifference la plus proche de n
print("joueur gagnant 2 avec son nombre ", b, "plus proche du choix", n, "de la machine")
elif abs(n-b) > abs(n-a):
print("joueur gagnant 1 avec son nombre ", a, "plus proche du choix", n, "de la machine")
quitter = input("voulez vous arretez une partie o/n?")
if quitter == "n" or quitter == "non" or quitter == "no":
continuer_partie = True
elif quitter == "o" or quitter == "0" or quitter == "oui" or quitter == "yes":
continuer_partie = False
break
- Edité par FortuneEwolo 8 janvier 2020 à 23:11:18
bylola a écrit:
> Je vois pas du tout d'où ça vient...
so et somme sont deux noms différents. Le premier référence le nombre calculé, le second est le nom de la fonction. return somme renvoie donc une fonction.
Par ailleurs, cette ligne est mal indentée car devrait se trouver en dehors de la boucle.
FortuneEwolo a écrit:
> exemple de solution a ton exercice
Ça ne répond pas à son exercice, et je ne vois pas quel intérêt il y aurait à lui donner une réponse toute faite.
Python sait très bien qu'il s'agit d'entiers, il n'y a aucun problème avec ça.
so est défini dès le départ comme un entier (0), et ne lui sont ajoutés que des entiers.
Par contre en relisant le code, je remarque que tu calcules la somme des indices et non celle des notes.
Il faudrait remplacer for i in range (len(n)) par for i in n.
(des noms de variables plus explicites seraient préférables).
Ben non, tu donnes un jeu en plusieurs manches (avec en plus une réponse affichée à la fin de la première), qui ne respecte pas les conditions sur l'intervalle du nombre tiré au hasard.
Ben non, tu donnes un jeu en plusieurs manches (avec en plus une réponse affichée à la fin de la première), qui ne respecte pas les conditions sur l'intervalle du nombre tiré au hasard.
Quand je dis randrange(100) ca cree un hasard sur 100 donc c'est dans l'intervalle choisit
Et pour ton reproche sur le fait que j'ai fait le jeu en plusieurs manche c'est justement pour creer des manche la fin d'une precedente au lieu que le programme s'arrete a la fin de l'execution du programme l'interpreteur demande si oui ou non il doit continuer soit arreter le programme en cas de refus de la part de l'utilisateur
randrange(100) va renvoyer un nombre compris entre 0 et 99, donc une valeur qui ne fait pas partie de l'intervalle, et une valeur de l'intervalle qui ne pourra jamais être tirée.
Et je dis juste que le code proposé avec le système de manches ne répond pas au problème.
Et dans tous les cas ça n'est pas la question, il n'est jamais utile de donner en réponse un code tout fait à quelqu'un qui se pose une question sur un exercice.
randrange(100) va renvoyer un nombre compris entre 0 et 99, donc une valeur qui ne fait pas partie de l'intervalle, et une valeur de l'intervalle qui ne pourra jamais être tirée.
Et je dis juste que le code proposé avec le système de manches ne répond pas au problème.
Et dans tous les cas ça n'est pas la question, il n'est jamais utile de donner en réponse un code tout fait à quelqu'un qui se pose une question sur un exercice.
en meme temps c'est ce qu'il a demander il voulais un code je le lui ai donner au fil du temps en s'ameliorant il va comprendre le truc c'est mon avis
L'auberge dans laquelle vous avez prévu de passer la nuit ce soir propose des tarifs très intéressants, pour peu que l'on n'arrive pas trop tard. En effet, plus on arrive tôt moins on devra payer. Vous essayez de construire un programme vous donnant directement le prix à payer en fonction de votre heure d'arrivée.
Ce que doit faire votre programme :
Votre programme lira un entier, l'heure d'arrivée, qui sera compris entre 0 et 12 inclus. 0 correspond à midi, 1 à 1h de l'après-midi, etc. et 12 à minuit.
Le prix de la chambre est de 10 pièces à midi, et augmente de 5 pièces chaque heure après midi. Il est donc de 15 pièces à 13h, etc. Il ne peut cependant pas dépasser 53 pièces.
Votre programme devra afficher le prix à payer correspondant à l'heure d'arrivée donnée.
Exemples
Exemple 1
entrée :
7
sortie :
45
Exemple 2
entrée :
10
sortie :
53
Bonjour je suis totalement perdue on peux m'aider ?
Je suis en train de faire le TP "Dictionnaire ordonné".
En fait je n'ai pas réussi à le coder comme dans la solution, je lui fait hériter de la classe dict et j'ai rajouté comme attributs un tableau clés et un tableau valeur dans le constructeur, alors que pour la solution proposée on ne fait pas d'héritage.
J'ai étudié toute la correction et je n'ai toujours pas compris quelle est la méthode appelée par :
fruits["pomme"] = 52 fruits["poire"] = 34
...
et comment peut-on le savoir
Je pense avoir compris pas mal de choses, la notion d'attributs, de constructeur, de méthodes de classes... Du coup pour ajouter des valeurs au dictionnaire comme dans l'exemple, il faut une méthode de classe, que je n'arrive pas à trouver ni à coder. Logiquement c'est une méthode de la classe dict que je dois réécrire, je ne trouve pas laquelle. A priori ce n'est pas __add__
de plus : quand on regarde la correction :
def __add__(self, autre_objet):
"""On renvoie un nouveau dictionnaire contenant les deux
dictionnaires mis bout à bout (d'abord self puis autre_objet)"""
if type(autre_objet) is type(self):
raise TypeError( \
"Impossible de concaténer {0} et {1}".format( \
type(self), type(autre_objet)))
else:
nouveau = DictionnaireOrdonne()
J'ai l'impression que ce n'est pas __add__ qu'il faut réécrire, parce que d'après la ligne :
if type(autre_objet) is type(self):
self et autre_objet doivent être des objets de même type
Bref je suis complètement paumée, merci beaucoup d'avance si vous pouvez m'aider
En fait j'ai du mal avec les méthodes spéciales et les propriétés, j'ai trouvé de bons tutos et je vais jeter un coup d'oeil aux tutos dans ta signature, y'a du boulot !
Je débute en Python, j'en suis à la partie sur le labyrinthe.
J'ai tenter de faire la programmation, mais quand je lance un run avec IDLE, j'ai des messages d'erreurs. J'aurais besoin d'un peu d'aide.
Voici la capture du resultats
Et voici mon code, si vous voyez des incohérences dites-le moi.
# -*-coding:Utf-8 -*-
import os
os.chdir(os.path.dirname(os.path.realpath(__file__)))
from carte import *
from labyrinthe import *
def labyrinth(niveau):
try:
niveau = int(niveau)
assert 0 < niveau < 3
except ValueError:
print('Il faut choisir un chiffre')
except AssertionError:
print('Le chiffre doit être 1 ou 2')
if niveau == 1:
with open('facile.txt', 'r') as facile:
contenu_facile = facile.read()
return contenu_facile
elif niveau == 2:
with open('prison.txt', 'r') as prison:
contenu_prison = prison.read()
return contenu_prison
#fonction permettant de transformer le labyrinthe en liste
def strToList(niveau_str):
niveau_list = niveau_str.split('\n')
return niveau_list
#Recuperé les lignes et les colonnes du labyrinthe
def positionLabyrinthe(list_object, position):
for index_ligne, lignes in enumerate(list_object):
for index_colonne, colonnes in enumerate(lignes):
if colonnes == position:
return index_ligne, index_colonne
############################################################################
partie = labyrinthe(1)
labyrinthe = strToList(partie)
while True:
perso = 'X'
x_perso, y_perso = positionLabyrinthe(labyrinthe, perso)
print('\n'.join(labyrinthe))
#print(type(labyrinthe_liste[x_perso][y_perso])) str
#print(type(labyrinthe_liste)) list
deplacement_joueur = input('deplacement: ')
#Permet de vérifier les cases autour du joueur
if deplacement_joueur == 'e':
print(labyrinthe[x_perso] [y_perso + 1]) #affiche la case à droite
elif deplacement_joueur =='o':
print(labyrinthe[x_perso] [y_perso - 1]) #affiche la case à gauche
elif deplacement_joueur == 'n':
print(labyrinthe[x_perso - 1] [y_perso]) #affiche la case au dessus
elif deplacement_joueur == 's':
print(labyrinthe[x_perso + 1] [y_perso]) #affiche la case en dessous
# -*-coding:Utf-8 -*
"""Ce module contient la classe Labyrinthe."""
import os
os.chdir(os.path.dirname(os.path.realpath(__file__)))
from carte import *
class labyrinthe(Carte):
"""Classe représentant un labyrinthe."""
def __init__(self, chaine):
self.robot = "X"
self.mur = "O"
self.porte = "."
self.sortie = "U"
self.liste_passage = []
self.labyrinthe = ""
Carte.__init__(self, chaine)
def commandes(self, commande):
try:
if commande.lower() == "q":
print("Vous avez sauvegardé et quittez la partie")
elif commande.lower() == "n":
for indice, ligne in enumerate(self.ligne_liste):
ligne_affiche = " "
if self.robot in ligne:
indice -= 1
if indice < 0:
raise IndexError("")
if True in self.liste_passage:
indice += 1
ligne_affiche = "."
ligne_principale = self.ligne_liste[indice]
ligne_principale = list(ligne_principale)
ligne_indice = ligne.index(self.robot)
indice -= 1
ligne_nord = self.ligne_liste[indice] # ligne_nord est la ligne au dessus de la liste principale
if ligne_nord[ligne_indice] == self.mur:
pass
else:
indice += 1
if ligne_nord[ligne_indice] == self.sortie:
self.liste_passage.append(self.sortie)
ligne_principale[ligne_indice] = ligne_affiche # Si on se déplace à nouveau, le "." réapparait à sa position initiale
ligne_principale_2 = "".join(ligne_principale) # ligne principale 2 est une chaîne de caractère
self.ligne_liste[indice] = ligne_principale_2 # On modifié directement dans notre liste de départ notre ligne principale par notre ligne principale avec un "."
self.liste_passage.pop(0) # On enlève passage de la liste
passage_2 = 4
self.liste_passage.append(passage_2)
indice -= 1
ligne_nord = self.ligne_liste[indice] # ligne_nord est la ligne au dessus de la liste principale
ligne_indice = ligne.index(self.robot) # ligne_indice est égal à la position du robot dans la liste
ligne_affiche = ligne_nord[ligne_indice] # ligne_affiche pointe sur l'indice où était placé le robot une ligne plus bas
if ligne_affiche == self.mur:
print("Vous ne pouvez pas aller par là, il y a un mûr")
else:
if ligne_affiche == self.porte:
ligne_affiche = " "
passage = True
self.liste_passage.append(passage)
indice += 1
if not 4 in self.liste_passage:
ligne_principale = self.ligne_liste[indice] # ligne_principale où est X
ligne_principale = list(ligne_principale) # ligne_principale devient une liste
if ligne_affiche == self.sortie:
ligne_principale[ligne_indice] = " "
self.liste_passage.append(self.sortie)
else:
ligne_principale[ligne_indice] = ligne_affiche # On retire le robot de sa position initial
ligne_principale_2 = "".join(ligne_principale) # ligne_principale_2 est la ligne principale sans le X
self.ligne_liste[indice] = ligne_principale_2 # On met notre ligne principale sans X dans notre liste de départ
else:
if self.sortie in self.liste_passage:
self.liste_passage.clear()
self.liste_passage.append(self.sortie)
else:
self.liste_passage.pop(0)
indice -= 1
ligne_nord = list(ligne_nord) # ligne_nord devient une liste
ligne_nord[ligne_indice] = "X" # On place le robot sur l'indice de la ligne nord d'où il était placé une ligne plus bas
ligne_nord_2 = "".join(ligne_nord) # ligne_nord_2 est la ligne_nord avec le robot
self.ligne_liste[indice] = ligne_nord_2 # On modifie directement dans notre liste de départ notre ligne nord par notre ligne nord avec le robot
elif commande.lower() == "e":
for indice, ligne in enumerate(self.ligne_liste):
ligne_affiche = " "
if self.robot in ligne:
if True in self.liste_passage:
ligne_affiche = "."
ligne_indice = ligne.index(self.robot) # ligne_indice est égal à la position du robot dans la liste
ligne_principale = self.ligne_liste[indice] # ligne_principale où est X
ligne_principale = list(ligne_principale) # ligne_principale devient une liste
if ligne_principale[ligne_indice + 1] == self.mur:
pass
else:
ligne_principale[ligne_indice] = ligne_affiche # Si on se déplace à nouveau, le "." réapparait à sa position initiale
if ligne_principale[ligne_indice + 1] == self.sortie:
self.liste_passage.append(self.sortie)
ligne_principale[ligne_indice + 1] = self.robot # On met le robot une case à droite de sa position initiale
ligne_principale_2 = "".join(ligne_principale) # ligne principale 2 est une chaîne de caractère
self.ligne_liste[indice] = ligne_principale_2 # On modifié directement dans notre liste de départ notre ligne principale par notre ligne principale avec un "."
self.liste_passage.pop(0) # On enlève passage de la liste
passage_2 = 4
self.liste_passage.append(passage_2)
ligne_principale = self.ligne_liste[indice] # ligne_principale où est X
ligne_indice = ligne.index(self.robot) # ligne_indice est égal à la position du robot dans la liste
ligne_affiche = ligne_principale[ligne_indice + 1] # ligne_affiche pointe un indice à droite du robot
if ligne_affiche == self.mur:
print("Vous ne pouvez pas aller par là, il y a un mûr")
else:
if ligne_affiche == self.porte:
ligne_affiche = " "
passage = True
self.liste_passage.append(passage)
if not 4 in self.liste_passage:
ligne_principale = list(ligne_principale) # ligne_principale devient une liste
if ligne_affiche == self.sortie:
ligne_principale[ligne_indice] = " "
self.liste_passage.append(self.sortie)
else:
ligne_principale[ligne_indice] = ligne_affiche # On retire le robot de sa position initial
ligne_principale[ligne_indice + 1] = self.robot # On met le robot un indice à côté d'où il était à l'origine
ligne_principale_2 = "".join(ligne_principale) # ligne_principale_2 est la ligne principale modifié
self.ligne_liste[indice] = ligne_principale_2 # On met notre ligne principale modifié dans notre liste de départ
else:
if self.sortie in self.liste_passage:
self.liste_passage.clear()
self.liste_passage.append(self.sortie)
else:
self.liste_passage.pop(0)
elif commande.lower() == "s":
for indice, ligne in enumerate(self.ligne_liste):
ligne_affiche = " "
if self.robot in ligne:
indice += 1
if True in self.liste_passage:
indice -= 1
ligne_affiche = "."
ligne_principale = self.ligne_liste[indice]
ligne_principale = list(ligne_principale)
ligne_indice = ligne.index(self.robot)
indice += 1
ligne_sud = self.ligne_liste[indice] # ligne_sud est la ligne en dessous de la liste principale
if ligne_sud[ligne_indice] == self.mur:
pass
else:
indice -= 1
if ligne_sud[ligne_indice] == self.sortie:
self.liste_passage.append(self.sortie)
ligne_principale[ligne_indice] = ligne_affiche # Si on se déplace à nouveau, le "." réapparait à sa position initiale
ligne_principale_2 = "".join(ligne_principale) # ligne principale 2 est une chaîne de caractère
self.ligne_liste[indice] = ligne_principale_2 # On modifié directement dans notre liste de départ notre ligne principale par notre ligne principale avec un "."
self.liste_passage.pop(0) # On enlève passage de la liste
passage_2 = 4
self.liste_passage.append(passage_2)
indice += 1
ligne_sud = self.ligne_liste[indice] # ligne_sud est la ligne en dessous de la liste principale
ligne_indice = ligne.index(self.robot) # ligne_indice est égal à la position du robot dans la liste
ligne_affiche = ligne_sud[ligne_indice] # ligne_affiche pointe sur l'indice où était placé le robot une ligne plus haut
if ligne_affiche == self.mur:
print("Vous ne pouvez pas aller par là, il y a un mûr")
else:
if ligne_affiche == self.porte:
ligne_affiche = " "
passage = True
self.liste_passage.append(passage)
indice -= 1
if not 4 in self.liste_passage:
ligne_principale = self.ligne_liste[indice] # ligne_principale où est X
ligne_principale = list(ligne_principale) # ligne_principale devient une liste
if ligne_affiche == self.sortie:
ligne_principale[ligne_indice] = " "
self.liste_passage.append(self.sortie)
else:
ligne_principale[ligne_indice] = ligne_affiche # On retire le robot de sa position initial
ligne_principale_2 = "".join(ligne_principale) # ligne_principale_2 est la ligne principale sans le X
self.ligne_liste[indice] = ligne_principale_2 # On met notre ligne principale sans X dans notre liste de départ
else:
if self.sortie in self.liste_passage:
self.liste_passage.clear()
self.liste_passage.append(self.sortie)
else:
self.liste_passage.pop(0)
indice += 1
ligne_sud = list(ligne_sud) # ligne_sud devient une liste
ligne_sud[ligne_indice] = "X" # On place le robot sur l'indice de la ligne sud d'où il était placé une ligne plus haut
ligne_sud_2 = "".join(ligne_sud) # ligne_sud2 est la ligne_sud avec le robot
self.ligne_liste[indice] = ligne_sud_2 # On modifie directement dans notre de départ notre ligne sud par notre ligne sud avec le robot
break
elif commande.lower() == "o":
for indice, ligne in enumerate(self.ligne_liste):
ligne_affiche = " "
if self.robot in ligne:
if True in self.liste_passage:
ligne_affiche = "."
ligne_indice = ligne.index(self.robot) # ligne_indice est égal à la position du robot dans la liste
ligne_principale = self.ligne_liste[indice] # ligne_principale où est X
ligne_principale = list(ligne_principale) # ligne_principale devient une liste
if ligne_principale[ligne_indice - 1] == self.mur:
pass
else:
if ligne_principale[ligne_indice - 1] == self.sortie:
self.liste_passage.append(self.sortie)
ligne_principale[ligne_indice - 1] = self.robot # On met le robot une case à gauche de sa position initiale
ligne_principale[ligne_indice] = ligne_affiche # Si on se déplace à nouveau, le "." réapparait à sa position initiale
ligne_principale_2 = "".join(ligne_principale) # ligne principale 2 est une chaîne de caractère
self.ligne_liste[indice] = ligne_principale_2 # On modifié directement dans notre liste de départ notre ligne principale par notre ligne principale avec un "."
self.liste_passage.pop(0) # On enlève passage de la liste
passage_2 = 4
self.liste_passage.append(passage_2)
ligne_principale = self.ligne_liste[indice] # ligne_principale où est X
ligne_indice = ligne.index(self.robot) # ligne_indice est égal à la position du robot dans la liste
ligne_indice -= 1
if ligne_indice < 0:
raise IndexError("")
ligne_affiche = ligne_principale[ligne_indice] # ligne_affiche pointe un indice à gauche du robot
ligne_indice += 1
if ligne_affiche == self.mur:
print("Vous ne pouvez pas aller par là, il y a un mûr")
else:
if ligne_affiche == self.porte:
ligne_affiche = " "
passage = True
self.liste_passage.append(passage)
if not 4 in self.liste_passage:
ligne_principale = list(ligne_principale) # ligne_principale devient une liste
if ligne_affiche == self.sortie:
ligne_principale[ligne_indice] = " "
self.liste_passage.append(self.sortie)
else:
ligne_principale[ligne_indice] = ligne_affiche # On retire le robot de sa position initial
ligne_principale[ligne_indice - 1] = self.robot # On met le robot un indice à côté d'où il était à l'origine
ligne_principale_2 = "".join(ligne_principale) # ligne_principale_2 est la ligne principale modifié
self.ligne_liste[indice] = ligne_principale_2 # On met notre ligne principale modifié dans notre liste de départ
else:
if self.sortie in self.liste_passage:
self.liste_passage.clear()
self.liste_passage.append(self.sortie)
else:
self.liste_passage.pop(0)
except IndexError:
print("Vous ne pouvez pas aller par là")
compteur = 0
self.labyrinthe = ""
while compteur != len(self.ligne_liste):
self.labyrinthe += self.ligne_liste[compteur] + "\n"
compteur += 1
if self.sortie in self.liste_passage:
self.labyrinthe += "\n"
self.labyrinthe += "\n"
self.labyrinthe += "Félicitations ! Vous avez gagné !"
voici le code pour les cartes :
# -*-coding:Utf-8 -*
"""Ce module contient la classe Carte."""
class Carte:
"""Objet de transition entre un fichier et un labyrinthe."""
def __init__(self, chaine):
self.ligne_liste = self.creer_labyrinthe_depuis_chaine(chaine)
def __repr__(self):
return "{}".format(self.labyrinthe)
def creer_labyrinthe_depuis_chaine(self, chaine):
ligne_liste = chaine.split("\n")
return ligne_liste
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
Je l'ai un peu modifiée par rapport a hier mais bon ....
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
Deep Learning
Deep Learning
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
Deep Learning
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
Deep Learning
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
Deep Learning
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
Deep Learning
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
Deep Learning
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique