Partage
  • Partager sur Facebook
  • Partager sur Twitter

[EXERCICE] manipuler les listes

Débutant

Sujet résolu
1 février 2011 à 11:56:41

Salut les Zéros! :p

Je vous propose un exercice niveau débutant pour apprendre à manipuler un peu les listes. :)

ENNONCE:
1/ Constituez une liste semaine contenant les 7 jours de la semaine. A partir de cette liste, comment récupérer seulement les cinq premiers jours de la semaine d'une part et ceux du week-end d'autres part (en utilisant l'indiçage)? cherchez un autre moyen pour arriver au même résultat (en utilisant un autre indiçage).

semaine=["Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi","Dimanche"]

print semaine[0:5]
print semaine[5:7]

print semaine[-7:-2]
print semaine[-2:]


2/ Trouvez 2 manières pour accéder au dernier jour de la semaine.

semaine=["Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi","Dimanche"]

# Si on veut récupérer la liste contenant le dernier jour de la semaine:
print semaine[-1:]
print semaine[6:]

# Si on veut récupérer la chaîne de caractère du dernier élément de la liste semaine:
print semaine[-1]
print semaine[6]


3/ Inversez les jours de la semaine en une seule commande python.
semaine=["Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi","Dimanche"]

print semaine[-1:-8:-1]
print semaine [::-1]


Bon entraînement!
  • Partager sur Facebook
  • Partager sur Twitter
1 février 2011 à 12:58:33

Pour le premier code, le 0 devant les : n'est pas nécessaire, idem pour le 7 après.
Pour le deuxième, tes deux expressions n'ont pas le même résultat.
Pour le troisième, je pense que tu ne l'as pas testé : il ne donne pas le résultat souhaité.
  • Partager sur Facebook
  • Partager sur Twitter
1 février 2011 à 13:42:44

Salut,

Citation : Maxibolt


Pour le premier code, le 0 devant les : n'est pas nécessaire, idem pour le 7 après.


Certes, mais cet exercice étant pour débutant, je pense que pour bien comprendre le mécanisme des listes et de l'indiçage il est préférable de laisser ces valeurs.

Citation : Maxibolt

Pour le deuxième, tes deux expressions n'ont pas le même résultat.


Petite erreur réparée.

Citation : Maxibolt

Pour le troisième, je pense que tu ne l'as pas testé : il ne donne pas le résultat souhaité.



D'autant que j'ai perdue l'énoncée de la question 3 entre temps. o_O . Hop, j'enlève ça pour le moment! Dès que j'aurai remis la main sur mon énnoncé "3/", je le posterai.
  • Partager sur Facebook
  • Partager sur Twitter
1 février 2011 à 15:51:32

Pour la première question, dans certains cas tu l'enlèves : je pense qu'il est bien aussi d'apprendre à ne pas écrire de trucs inutiles. Enlever le 0 a pour moi un sens sémantique plus fort qu'un simplet sucre syntaxique : "on prend tous les éléments jusqu'à", plutôt que "on prend les éléments de 0 à".
Pour la deuxième question, je pense que récupérer juste le dernier élément plutôt que la liste qui contient juste cet élément est plus logique (une liste dont on sait qu'elle ne contiendra aucun élément n'a pas un grand intérêt).

Au passage, j'espère ne décourager personne : c'est pas parce que je fais des commentaires qu'il ne faut pas lire et comprendre.
  • Partager sur Facebook
  • Partager sur Twitter
1 février 2011 à 17:46:28

1)
>>> semaine = ["Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"]
>>> semaine[:5]
['Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi']
>>> semaine[:-2]
['Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi']
>>> semaine[5:]
['Samedi', 'Dimanche']
>>> semaine[-2:]
['Samedi', 'Dimanche']


2)
>>> semaine = ["Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"]
>>> semaine[6]
'Dimanche'
>>> semaine[-1]
'Dimanche'
  • Partager sur Facebook
  • Partager sur Twitter
2 février 2011 à 17:44:07

@maxibolt: j'ai mis les deux versions pour la correction de l'exercice numéro 2 comme ça y a pas de jaloux! :p
  • Partager sur Facebook
  • Partager sur Twitter
2 février 2011 à 17:55:58

J'avais pas vu le 3ème.
>>> semaine = ["Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"]
>>> semaine[::-1]
['Dimanche', 'Samedi', 'Vendredi', 'Jeudi', 'Mercredi', 'Mardi', 'Lundi']
  • Partager sur Facebook
  • Partager sur Twitter
2 février 2011 à 17:56:09

Si ça t'amuse, mais récupérer une liste ne contenant qu'un seul élément (à moins qu'on veuille rajouter des trucs dedans après) n'a pas d'intérêt ;)
Pour la dernière questions, tu peux encore mettre liste[::-1]. C'est d'ailleurs plus clair : les indices inutiles nuisent à la compréhension. Ne pas mettre d'indice, comme je le disais plus haut, ça a un sens, ce n'est pas juste "prendre la valeur par défaut".
  • Partager sur Facebook
  • Partager sur Twitter
2 février 2011 à 17:56:27

EDIT : Double post, désolé, bug de connexion.
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
2 février 2011 à 20:27:26

Citation

semaine=["Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi","Dimanche"]

print semaine[-1:-8:-1]



mieux est

semaine.reverse()

fonction plus généraliste, permettant entre autre de ne pas se prendre la tête avec des indices et le slicing

  • Partager sur Facebook
  • Partager sur Twitter
2 février 2011 à 21:16:47

semaine[::-1] et semaine.reverse() ne font absolument pas la même chose. Et en plus, je ne vois pas en quoi c'est plus généraliste ou prise de tête... Il n'y a aucun indice à gérer.
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
2 février 2011 à 21:18:48

Regarde la citation...
  • Partager sur Facebook
  • Partager sur Twitter
3 février 2011 à 6:57:17

semaine[::-1] et print semaine.reverse() ne font absolument pas la même chose. Et en plus, je ne vois pas en quoi c'est plus généraliste ou prise de tête... Il n'y a aucun indice à gérer.

Ok, j'ai rajouté un mot. Mais le précédent reste vrai, et ton code est alors doublement faux.
  • Partager sur Facebook
  • Partager sur Twitter
3 février 2011 à 8:18:20

@fred1599: Ce sont des petits exercices de prise en main pour débutant, du coup je n'aborde pas les méthode associées aux listes pour le moment. L'idée est plutôt une prise en main basique de ces structures de données (pour un vrai zéro qui débarque sur le langage python ^^ ).

@ Maxibolt:

Citation : Maxibolt

Pour la dernière questions, tu peux encore mettre liste[::-1]. C'est d'ailleurs plus clair : les indices inutiles nuisent à la compréhension. Ne pas mettre d'indice, comme je le disais plus haut, ça a un sens, ce n'est pas juste "prendre la valeur par défaut".



Pas faux et ajouté. :)
  • Partager sur Facebook
  • Partager sur Twitter
3 février 2011 à 15:57:32

Citation

@fred1599: Ce sont des petits exercices de prise en main pour débutant, du coup je n'aborde pas les méthode associées aux listes pour le moment. L'idée est plutôt une prise en main basique de ces structures de données (pour un vrai zéro qui débarque sur le langage python ^^ ).


Non mais même indépendamment de ça, son code ne fait pas ce qu'il faut.
  • Partager sur Facebook
  • Partager sur Twitter
17 avril 2011 à 11:07:01

et voilà ma solution:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

jours = ['samedi', 'dimanche', 'lundi', 'mardi', 'mercredi' ,'jeudi' ,'vendredi']
#jours = ['dimanche', 'lundi', 'mardi', 'mercredi' ,'jeudi' ,'vendredi', 'samedi']
#jours = ['lundi', 'mardi', 'mercredi' ,'jeudi' ,'vendredi', 'samedi', 'dimanche']

if jours[0].lower().startswith('samedi'):
	# Si la semaine commence par Samedi
	print 'Les cinq premiers jours de la semaine sont:'
	for jour in jours[0:5]:
		print jour.capitalize(),
	print '\nWeek-end:'
	for jour in jours[5:]:
		print jour,

elif jours[0].lower().startswith('dimanche'):
	# Si la semaine commence par Dimanche
	print 'Les cinq premiers jours de la semaine sont:'
	print jours[0], jours[1], jours[2], jours[3], jours[6]
	print '\nWeek-end:'
	print jours[4], jours[5]

elif jours[0].lower().startswith('lundi'):
	# Si la semaine commence par Lundi
	print 'Les cinq premiers jours de la semaine sont:'
	print jours[:3], jours[5:]
	print '\nWeek-end:'
	print jours[3:5]

else:
	print '!!!!'
  • Partager sur Facebook
  • Partager sur Twitter
27 juillet 2011 à 21:07:43

Salut,

Je suis actuellement entrain d'apprendre Python et je croche sur le 3ème problème. Je n'ai pas vu cela dans le tutoriel officiel.
semaine=["Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi","Dimanche"]

print semaine[-1:-8:-1]
#Le premier paramètre est pour partir du dernier élément de la liste
#Le deuxième paramètre pour savoir jusqu'à où print doit parcourir la liste
#Le troisième paramètre pour indiquer le sens dans lequel parcourir la liste (par défaut 1).
print semaine [::-1]
#Ici on indique juste de parcourir à l'envers


Est-ce que mes commentaires sont justes ? Existe-il un quatrième paramètre ? Plus ?

Merci d'avance et @+
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
27 juillet 2011 à 21:25:12

Citation : Feanor13

Je suis actuellement entrain d'apprendre Python et je croche sur le 3ème problème. Je n'ai pas vu cela dans le tutoriel officiel.



Même si le tutoriel n'est pas la perfection incarnée, il n'est juste là que pour te donner des bases, à toi de tester pour découvrir certaines choses, voir la doc officielle.

  • Partager sur Facebook
  • Partager sur Twitter
27 juillet 2011 à 21:34:42

Merci pour la réponse.

@+
  • Partager sur Facebook
  • Partager sur Twitter
10 septembre 2011 à 23:00:23

Pour le 3ème exercice j'utiliserais plutôt la méthode reverse :

>>> days = ["Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"]
>>> days.reverse()
>>> days
['Dimanche', 'Samedi', 'Vendredi', 'Jeudi', 'Mercredi', 'Mardi', 'Lundi']


Ou alors au moins mettre une note dans la correction.
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
11 septembre 2011 à 0:28:18

Comme le disait Maxibolt, à l'époque, list[::-1] et list.reverse() n'ont pas le même effet. L'un crée une nouvelle liste tandis que l'autre modifie la liste.
  • Partager sur Facebook
  • Partager sur Twitter
7 octobre 2011 à 12:04:03

Salut à tous. je debute avec python. voici mes solution:

liste_semaine = ["Lundi", "Mardi", "Mercredi", "jeudi", "Mercredi" "Jeudi", "Vendredi", "samedi", "Dimanche"]

print (liste_semaine[0:5])
print (liste_semaine[5:])
  • Partager sur Facebook
  • Partager sur Twitter
31 août 2013 à 2:19:19

Bonjour,

Je viens de faire l'achat du livre apprenez à programmer en python !

Super livre !!!!

Mais j'ai déjà un petit soucis à un exercice du chapitre 4...

En effet le else: ou else : ne fonctionne pas :'(

J'ai comme réponse :

>>> age = 21

>>> if age >= 18:

print("vous êtes majeur.")

else:

SyntaxError: invalid syntax

Pas moyen de taper la suite du code....

Pourriez-vous m'aider ???

Merci d'avance

  • Partager sur Facebook
  • Partager sur Twitter
31 août 2013 à 2:33:42

sarifvssck a écrit:

Bonjour,

Je viens de faire l'achat du livre apprenez à programmer en python !

Super livre !!!!

Mais j'ai déjà un petit soucis à un exercice du chapitre 4...

En effet le else: ou else : ne fonctionne pas :'(

J'ai comme réponse :

>>> age = 21

>>> if age >= 18:

print("vous êtes majeur.")

else:

SyntaxError: invalid syntax

Pas moyen de taper la suite du code....

Pourriez-vous m'aider ???

Merci d'avance

Bonjour.

Ce n'est pas le topic approprié mais je vais répondre quand même :

Il ne faut pas indenter le 'else'. c-à-d qu'il doit être dans la même colonne que le 'if'. ;)

  • Partager sur Facebook
  • Partager sur Twitter
31 août 2013 à 2:44:45

J'ai créer le sujet dans le forum.

J'ai aussi un soucis avec le false et true.

Je vous remercie pour votre aide, mais je n'y suis pas arriver :'(

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
31 août 2013 à 11:10:06

Bonjour tu peux regarder du côté d'un topic qu'on a créé exprès pour les débutants.

Bonne continuation...

(Merci la prochaine fois de faire une recherche et de créer un nouveau topic si tu ne trouves pas de réponses adaptées à ton problème)

  • Partager sur Facebook
  • Partager sur Twitter
31 août 2013 à 19:57:02

fred1599 a écrit:

Bonjour tu peux regarder du côté d'un topic qu'on a créé exprès pour les débutants.

Bonne continuation...

(Merci la prochaine fois de faire une recherche et de créer un nouveau topic si tu ne trouves pas de réponses adaptées à ton problème)


Toute mes excuses, j'ai essayé de faire une recherche sur la fonction Else et malheureusement je ne suis pas tombé sur le topic
  • Partager sur Facebook
  • Partager sur Twitter
21 septembre 2015 à 14:14:10

banale          

-
Edité par KarimaElTaousi 21 septembre 2015 à 14:14:58

  • Partager sur Facebook
  • Partager sur Twitter
12 juin 2016 à 18:05:50

Voilà mon code:

#/usr/bin/python
#*-*coding:utf-8*-*

# Excercice Python sdz no1 par JeroomuSama

liste_semaine = ['Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi','Dimanche']
last_day = len(liste_semaine) - 1

#Excercice 1 (j'ai fait appel à des boucles, je sais pas si j'en avais le droit ?!)
print "Liste complète: \n"
for i in xrange(0,len(liste_semaine)):
	print liste_semaine[i]
print "\nListe semaine: \n"
for i in xrange(0,5):
	print liste_semaine[i]
print "\nListe Week-End: \n"
for i in liste_semaine[5:]:
	print i

# --- Une façon d'afficher uniquement le dernier jour de la semaine:
print "\nDernier jour de la semaine: ",liste_semaine[last_day:]," !\n"
# --- Une autre, moins prise de tête (mais moins optimisée si on décide de changer la taille de la liste):
print "\nDernier jour de la semaine: ",liste_semaine[-1:]," !\n"

# --- Affcher la liste à l'envers en une seule ligne:
print liste_semaine[::-1]

:)

C'est sympa ces exercices, quand on reprend la programmation après un petit moment... Ca permet de se refaire la main, merci !

ps: Par contre j'espère que j'ai bon et que malgré mes petits ajouts, j'ai tout de même su respecter les consignes ...

edit: Ah, merde, je me rends compte que ces topics datent un peu ... Je suis navré si j'ai remonté un truc qui n'intéresse plus personne... Dans le cas contraire je m'intéresse à toute critique.

-
Edité par jeroomusama 12 juin 2016 à 18:13:00

  • Partager sur Facebook
  • Partager sur Twitter
8 novembre 2023 à 11:02:41

Avec Python, répondez à la question suivante en une seule commande. Combien y a-t-il de nombres pairs dans l’intervalle [2 , 10000] inclus ?
  • Partager sur Facebook
  • Partager sur Twitter