CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[python] besoin d'aide sur un programme

Platizor
Platizor
Niveau 41
01 avril 2017 à 18:04:17

def o (l) :
....n= len (l)
....k= l[0:(n//2)]
....j=l[(n//2):n]
....m=l
....for i in range (0,(n//2)) :
........m[2*i] = k[i]
........m[2*i+1] = j[i]
.....return (m)
:d) ce programme permet de mélanger une liste comme ça : de [0,1,2,3] en [0,2,1,3] et marche bien

def retour(a) :
....b=[]
....for i in range (a): :d) pour construire la liste juste en entrant un nombre
........b=b + [i]
....c=0 :d) compteur à 0 : compte le nombre de fois où on va appliquer o
....m=o(b) :d) on mélange telle la fonction o
....for i in range (a) : :d) on balaye tous les termes de la liste
.........while m[i] != b[i] : :d) pour chaque terme on vérifie s'il est identique à la liste de départ
............m=o(m) :d) si c'est pas le cas on réapplique la fonction o (bug ici a priori)
............c= c+1

....return (c)

:d) celui là compte le nombre de fois où on applique la fonction o pour remettre la liste dans le bon ordre, mais je pense avoir fait une erreur de débutant à un endroit puisque après 1h à tourner en rond j'ai l'impression que la commande o(m) ne s'exécute jamais...
j'ai sûrement dû faire une erreur de syntaxe ou autre si quelqu'un pouvait m'aider c'est assez frustrant surtout que j'ai vraiment cherché et je vois pas...
le programme me renvoie toujours c=0

Message édité le 01 avril 2017 à 18:06:49 par Platizor
MrGreez94
MrGreez94
Niveau 10
01 avril 2017 à 18:32:00

Copie ton code sur https://pastebin.com/

Ce sera plus lisible et il y aura pas de poisson :hap:

Platizor
Platizor
Niveau 41
01 avril 2017 à 20:29:20

Voilà [[sticker:p/1kkn]]
https://pastebin.com/LfRBs0iB

MrGreez94
MrGreez94
Niveau 10
01 avril 2017 à 22:19:49

Prends le réflexe donner des noms explicites à tes variables et fonctions.
Quel est ton objectif exactement ?
Avoir les nombres impair dans la première partie de ta liste et les nombres pair dans la seconde partie ?

Platizor
Platizor
Niveau 41
01 avril 2017 à 23:03:29

nan en gros la 1ere fonction c'est juste pour mélanger une liste un peu bizarrement en coupant la liste en 2 moitiés.Ensuite on fait une nouvelle liste dans laquelle on enchaîne 1er terme de la 1ere moitié puis 1er terme de la 2e moitié puis 2e terme de la 1ere moitié puis 2e terme de la 2e moitié....
la 2e fonction c'est pour calculer, après avoir appliqué la 1ere fonction à une liste de "a" termes, en combien de fois en réappliquant la fonction on revient à la liste qu'on avait au départ[[sticker:p/1kkn]]
désolé si c'est pas très bien écrit en python je suis pas pro :hap:

Message édité le 01 avril 2017 à 23:04:30 par Platizor
Platizor
Platizor
Niveau 41
02 avril 2017 à 11:12:01

Bon j'ai trouvé :-)
le problème venait du faire que j'avais mis dans la "même case mémoire" mes 2 listes donc la modification de l'une entraînait la modification de l'autre. Je suis quand même étonné il me semblait avoir compris qu'il se passait ce genre de chose uniquement pour les matrices,c'est pour ça qu'il y a la commande copy()...:doute:

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment