Bonjour, je viens ici car j'essaye de faire exécuter un programme de tri mais j'ai pleins d'erreurs soulignés:
from typing import List
def quicksort(alist: List[int], start: int, end: int):
Sorts
the
list
from indexes start
to
end - 1
inclusive.
:param
alist:
:param
start:
:param
end:
:return:
if end - start > 1:
p = partition(alist, start, end)
quicksort(alist, start, p)
quicksort(alist, p + 1, end)
def partition(alist: List[int], start: int, end: int):
:param
alist:
:param
start:
:param
end:
:return:
pivot = alist[start]
i = start + 1
j = end - 1
while True:
while i <= j and alist[i] <= pivot:
i = i + 1
while i <= j and alist[j] >= pivot:
j = j - 1
if i <= j:
alist[i], alist[j] = alist[j], alist[i]
else:
alist[start], alist[j] = alist[j], alist[start]
return j
mylist = input('Enter the list of numbers: ').split()
mylist_toInt = [int(x) for x in mylist]
quicksort(mylist_toInt, 0, len(mylist_toInt))
print('Sorted list: ', end='')
print(mylist_toInt)
Tes deux dernières lignes, c'est un anti-patern. Utilise plutôt print(f"Sorted list: {myList_toInt}").
C'est ce que je vois. Tu parles d'erreurs soulignées, tu est sans doute sous PyCharm ou apparenté : place la souris sur les endroits soulignés pour avoir plus de détails. Aussi, quelles sont exactement les lignes soulignées ?
C'est sans doute un copier-coller raté car ça ne ressemble pas à du code Python bien formé. On voit que c'était du Python à l'origine, mais l'indentation est partie à certains endroits, et après les déclarations de fonctions il y a des trucs qui pourraient être des docstrings qui ont perdu leurs guillemets.
J'aimerais juste savoir pk lorsque je renomme ma variable en paramètre, cette dernière change de couleur, (elle passe au gris), cela change-t-il qq chose lors de l'exécution de mon code SVP ?
Difficile à dire, si tu n'as pas modifié le nom de la variable dans le corps de la fonction, ça peut être un moyen d'indiquer que la variable n'est pas utilisée.
Mais la coloration n'est qu'un indicateur fait par un programme externe (c'est pas l'interpréteur Python qui gère ça), donc ça n'influencera pas son exécution.
Oui merci j'ai réglé ça finalement par contre, avec le programme, lorsque je test mon tri, cela fonctionne pas, est-ce normal ?
Auriez-vous un petit programme fonctionnel pour tester mon algo svp ?
Car celui-ci semble pas fonctionner:
mylist = input('Enter the list of numbers: ').split()
mylist_toInt = [int(x) for x in mylist]
Tri_rapide (mylist_toInt, 0, len(mylist_toInt))
print('Sorted list: ', end='')
print(mylist_toInt)
en effet, lorsque je teste, j'ai ceci:
C:\Users\utilisateur\PycharmProjects\conversion\venv\Scripts\python.exe C:/Users/utilisateur/.PyCharmCE2018.3/config/scratches/TEST2.py
Enter the list of numbers: 987654321
Sorted list: [987654321]
Process finished with exit code 0
Regarde le contenu de la variable myList juste après la ligne 57.
Enfin, c'est même pas utile tu vois que tu as une liste d'un seul élément, et tu voulais sans doute une liste des chiffres entrés ?
En fait split utilisée sans argument découpe les chaînes selon les espaces et les sauts de lignes, donc si tu n'en met pas dans ta chaîne, tu n'as qu'un seul élément.
Soit tu veux les chiffres un par un, et tu peux juste supprimer split (parce que la chaîne de caractères est itérable comme une liste), soit non, et à ce moment là tu met des espaces (ou autre séparateur) l'input de ton programme.
- Edité par LoupSolitaire 24 mai 2019 à 18:11:30
Blond, bouclé, toujours le sourire aux lèvres...
Erreur prog
× 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.
typage structurel ftw
Blond, bouclé, toujours le sourire aux lèvres...
typage structurel ftw
Blond, bouclé, toujours le sourire aux lèvres...
Blond, bouclé, toujours le sourire aux lèvres...