Pas besoin de join, il suffit simplement d'utiliser print couplé à l'unpacking et de modifier le paramètre sep:
lst = [1, 3, 5, 7, 9, 11]
print(*lst, sep=" ")
Sinon dans ton code, plusieurs astuces. La première c'est de mettre directement le append dans la condition (au lieu d'utiliser une variable intermédiaire). Ça te permettra d'avoir un code moins lourd:
for n in range(x,y+1):
if n%2 != 0:
L.append(n)
Ensuite la fonction range peut prendre un 3ème paramètre qui est le pas entre deux valeurs. Ainsi plus besoin de la condition:
for n in range(x, y+1, 2):
L.append(n)
Enfin, tu peux directement convertir le range en liste grâce à la fonction list (donc plus besoin de boucle) :
lst = list(range(x, y + 1, 2))
print(*lst, sep=" ")
Merci coni63, j'ai tenté avec join mais, apparemment avec des entiers, python affiche un message d'erreur. Merci beaucoup, Olygrim pour le couplage unpacking et le paramètre sep. Mon programme affiche désormais ce que je veux. Le fait de pouvoir rentrer un pas dans l'intervalle me sera utile de même que la conversion range en liste. Je n'avais pas précisé mais je m'étais mis comme contrainte d'utiliser des boléens. J'ai bien fait de ne pas le préciser au finish tes conseils me seront très utiles.
On peut utiliser le fait que True et False ont une valeur numérique. C'est crade je trouve, mais ça fonctionne :
if x > y:
x, y = y, x
list(range(x + (x%2 == 0), y+1, 2))
Précepte: Le mieux est l'ennemi du bien
pb de liste
× 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.
CodeWe is an open-source live code-sharing website.