Bonjour, j'apprend le langage python au lycée, on nous a donner une exercice dans lequel il s'agit de convertir des nombres shadocks en base 10. Les shadocks connaissent les nombres 0,1,2 et 3 qu'ils lisent respectivement GA, BU, ZO et MEU
J'essaye d'abord de convertir le nombre entré en liste mais je n'arrive pas a recuperer 2 lettres par 2 lettres pour former la liste :
pour ZOZOMEU par exemple je voudrais avoir [ZO,ZO,ME], or je n'arrive qu'a obtenir [Z,O,Z,O,M,E,U]
Je pense que tu vas te retrouver confronté à un autre problème puisque «MEU» fait justement 3 caractères et non 2. Mais pour ta demande présente, le code suivant devrait convenir:
C'est clair que le MEU est un problème, il en faut bien, sinon l'exercice serait bien trop simple...
Voici ma solution
SHADOCKS = [
'GA',
'BU',
'ZO',
'MEU'
]
TEST = 'MEUZOMEU'
def getIndex(myString, keyShadock):
length = len(keyShadock)
index = myString.find(keyShadock)
n = 1
result = []
while index != -1:
if n >= 2:
index += index + length
result.append(index)
myString = myString[index+length:]
index = myString.find(keyShadock)
n += 1
return result
def shaToDec(myString):
res = [None for i in range(len(myString) * 3)]
for sha in SHADOCKS:
index = getIndex(myString, sha)
if index:
for i in index:
res[i] = str(SHADOCKS.index(sha))
res = [n for n in res if n != None]
return ''.join(res)
print(shaToDec(TEST))
Je l'ai fais en 5 minutes, il y a sans doute des choses améliorables, mais il fonctionne.
ceci sert a executer la fonction c'est bien ça ? Pourquoi ne peut-on donc pas tout simplement mettre test() ?
Le __name__ est une propriété du module python que tu appelles. Lorsque tu exécutes directement un script Python, son __name__ vaut "main", d'où cette condition qui nous dit quoi faire lorsqu'on exécute le script.
Mais suppose que tu veux importer dans un autre script une fonction de ce module. Il ne faudrait pas que test soit appelé lors de l'import, ce que permet d'éviter l'utilisation de cette condition.
D'accord, merci beaucoup pour tous ces renseignements !
Sylvia
Creer une liste a partir d'un string
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique