IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

problème de débutant


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 9
    Par défaut problème de débutant
    Bonjour à tous, je suis étudiant en maths spé. je commence la programmation en python. Je bloque sur un exercice et je voulais avoir votre aide. L'énoncé est le suivant:
    "On définit:

    def antomeblan(L1, L2):
    ✳✳✳✳LV=[]
    ✳✳✳✳if len(L1)>len(L2)
    ✳✳✳✳✳✳✳✳for k in range(len(L2)):
    ✳✳✳✳✳✳✳✳✳✳✳✳LV=LV+[L1[k]]+[L2[k]]
    ✳✳✳✳else:
    ✳✳✳✳✳✳✳✳for k in range(len(L1)):
    ✳✳✳✳✳✳✳✳✳✳✳✳LV=LV+[L1[k]]+[L2[k]]
    ✳✳✳✳return(LV)

    Que donne print(antomeblan([1,2,3,4,5],[2,3,4,5])) ?
    Que donne L=[1,2,3,4,5] print(antomeblan(L, antomeblan(L,L)) ?"

    Je travaille sous pyzo 3.6 . Mon problème est que lorsque j’exécute le programme, il y a un message d'erreur:

    " In [1]: (executing lines 1 to 9 of "<tmp 1>")
    File "<tmp 1>", line 3
    if len(L1)>len(L2)
    ^
    SyntaxError: invalid syntax"

    Où est le problème,
    Par ailleurs, pouvez vous m'expliquer ce que fait ce programme car je ne m'y retrouve pas.
    Merci.

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Il manque le double-point à la fin de cette ligne.

    Quand le code sera fonctionnel, avec le résultat tu devrais comprendre ce qu'il fait.

    Par ailleurs, ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    LV=LV+[L1[k]]+[L2[k]]
    sera plus pythonique ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    LV.append([L1[k]]+[L2[k]])

  3. #3
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 068
    Par défaut
    Citation Envoyé par VinsS Voir le message
    sera plus pythonique ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LV.append([L1[k]]+[L2[k]])
    Hmmm ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LV.extend((L1[k],L2[k]))

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Citation Envoyé par josmiley Voir le message
    Hmmm ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LV.extend((L1[k],L2[k]))
    Je pense plutôt qu'il y a des crochets en trop dans le code original.

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 9
    Par défaut
    C'est bon, j'ai réussi! Merci beaucoup!
    Par ailleurs avez vous des conseils pour m'entraîner efficacement à la programmation sur Python?
    Merci!

  6. #6
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Citation Envoyé par parrax Voir le message
    C'est bon, j'ai réussi! Merci beaucoup!
    Par ailleurs avez vous des conseils pour m'entraîner efficacement à la programmation sur Python?
    Merci!
    Si tu veux, je travaille avec ces documents avec mes étudiants de cpge :
    http://obelix56.free.fr/spip.php?article55

  7. #7
    Membre émérite
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Par défaut
    Citation Envoyé par parrax Voir le message
    def antomeblan(L1, L2):
    ✳✳✳✳LV=[]
    ✳✳✳✳if len(L1)>len(L2)
    ✳✳✳✳✳✳✳✳for k in range(len(L2)):
    ✳✳✳✳✳✳✳✳✳✳✳✳LV=LV+[L1[k]]+[L2[k]]
    ✳✳✳✳else:
    ✳✳✳✳✳✳✳✳for k in range(len(L1)):
    ✳✳✳✳✳✳✳✳✳✳✳✳LV=LV+[L1[k]]+[L2[k]]
    ✳✳✳✳return(LV)

    Que donne print(antomeblan([1,2,3,4,5],[2,3,4,5])) ?
    Que donne L=[1,2,3,4,5] print(antomeblan(L, antomeblan(L,L)) ?"

    Par ailleurs, pouvez vous m'expliquer ce que fait ce programme car je ne m'y retrouve pas.
    Bonjour,
    Utiliser le bouton "#" dans l'éditeur permet de rendre le code disponible et d'éviter les "*".
    Sinon, un bloc "if" est:
    "if condition:"
    C'est le ":" terminal qui est oublié.

    Clodion

    PS: ce que fait le code:
    Si le paramètre L1 est plus long que le paramètre L2, on construit une liste qui alterne chacun des éléments de chacune des deux listes en s’arrêtant lorsque la fin de la liste L2 est atteinte.
    Si ce n'est pas le cas, c'est lorsque la fin de la liste "L1" est atteinte que la boucle se termine.

Discussions similaires

  1. requete, problème de débutant
    Par focus dans le forum Access
    Réponses: 4
    Dernier message: 16/02/2006, 05h51
  2. Problème de débutant dans une requête
    Par decour dans le forum Access
    Réponses: 7
    Dernier message: 14/10/2005, 14h17
  3. [C#][service windows] problème de débutant avec 1 timer
    Par Nycos62 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 14/10/2005, 11h22
  4. Réponses: 3
    Dernier message: 24/09/2005, 09h34
  5. [DB2] problèmes de débutant
    Par rémi_tounul dans le forum DB2
    Réponses: 4
    Dernier message: 21/04/2005, 17h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo