Ma liste contient 4 termes.
(len(L)) vaut la longueur de la liste L.
L[6] est la dernière valeur connue de la liste
L contient 5 termes .
Tous les termes de la liste sont 1,2,4,5,3.
L[0] = 1
L[1] = 2
L[2] = 4
L[3] = 5
L[4] = 3
L[5] = (len(L))+1
L[6] = (len(L)) +2
Le terme L[5] ne figure pas dans (len(L)) et pour l'obtenir il faut ajouter un terme. C'est le même principe pour L[6].
Merci beaucoup Zedmat pour tes explications qui me sont très utiles. Effectivement, j'ai du mal avec les boucles (nouveau pour moi) et je mets peut être du temps à comprendre mais j'ai l'intention d'y arriver. Que Carpediem ne perde pas patience non plus.
def list_pas_ordre (L)
T = False
for i in range (len(L)-1) :
if L[i] >= L[i+1]
T=True
return T
Pas mal !!
As tu testé ce script avec des listes ? liste=[10,2,12,20,5] donne quoi ?
Satisfait ?
J'ai copié collé (tel quel) puis testé le code inséré dans ton message... j'ai obtenu : SyntaxError: invalid syntax mais au premier coup d'oeil tu devrais trouver où est (sont) le(s) problème(s) de syntaxe.
Si Carpediem est d'accord, il serait intéressant de finaliser l'autre méthode avec while.
Bon courage.
Oui j'avais testé avec une liste simple et je viens de tester avec la liste=[10,2,12,20,5], cela fonctionne.
def liste_pas_ordre (L):
T = False
for i in range (len(L)-1):
if L[i]>=L[i+1]:
T = True
return T
Ha, vu, il manque les ":".
Le code que tu mets dans tes messages, est ce que tu le saisis à nouveau ? Si oui, change de méthode :
* sous python tu copies (CTRL+C) ton code une fois sélectionné.
* puis sur Ile aux Maths, tu colles (CTRL+V) . Pour avoir les indentations, il suffit de mettre ce code collé (ou à coller) entre les balises </> qui se trouvent dans les outils sous la fenêtre où tu écris ton message. Tu sais faire ?
ne vous inquiétez pas, je suis de retour et merci à ZEDMAT d'avoir pris le relai
quant au pb soulevé par ZEDMAT : oui Franca26 bien faire attention aux types de variables avec lesquelles tu travailles : entier, booléen, liste, élément d'une liste, ... et ne pas les mélanger !!
bien connaitre ensuite les bornes dans les boucles ou les variables "indiciables" comme une liste : c'est une des erreur les plus fréquentes (et que nous faisons tous)
et comme tu le vois même en algo il est utile voire nécessaire de prendre un papier et un crayon pour visualiser les choses
ok ton script marche mais il reste une dernière petite erreur mathématique et une indication pour te mettre sur la piste (car avec l'éducation de maintenant il te sera difficile de la trouver) :
pour tout nombre a : qui se traduit en français a est inférieur à a" et à ne pas confondre avec
qui se traduit par a est inférieur strictement à b
pour le script avec un while on en est à
def liste_blabla (L) :
T = False
i = 0
while L(i) <= L(i + 1) and i < ... : pour le pb de la borne !! tu sais quoi chercher maintenant
i = i + 1
if i ?? ... : trouver le bon test !!
T = ...
return T
Zedmat Non, je ne connaissais pas l'astuce pour les indentations, j'essaierai la prochaine fois. Merci
Carpediem, pour le premier script, c'est du coup if L[i]>L[i+1]:
J'ai continué à chercher pour l'autre:
def liste_pas_ordre_deux (L):
T = True
i = 0
while L[i]<=L[i+1] and i<i+1:
i=i+1
if i == i+1:
T = False
return T
Je pense que j'y suis presque mais je ne sais pas quoi modifier et comment. Python me le donne sans erreurs mais le résultat est toujours vrai.
donc tu as déjà oublié tout le travail que nous t'avons fait faire pour contrôler quand le test entre deux éléments de la liste est possible
def liste_blabla (L) :
T = False
i = 0
while L(i) <= L(i + 1) and i < len (L) - 2 : pour le pb de la borne !!
i = i + 1
if i < len (L) - 1 :
T = True
return T
D'accord, merci.
Je pensais à len(L)-1 mais je n'aurai pas pensé à mettre len(L)-2. J'ai compris le script et cela m'a permis d'apprendre Python avec while que je n'avais encore pas vu en cours.
REM : les deux scripts risque cependant de poser un pb si la liste ne contient que 1 (ou 2 ?) élément(s) ...
à toi d'essayer ...
Zedmat, oui, j'ai testé avec les deux résultats possibles en prenant une liste. Aucun problème.
Carpediem, avec deux éléments, cela fonctionne et avec un élément, non mais cela n'est plus une liste donc cela me parait normal.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :